SISTEMAS OPERATIVOS UNIDAD III SISTEMA DE LLAMADAS Y SEÑALES
ING. AGUILERA SERGIO OMAR
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
SYSTEM CALL CONJUNTO DE FUNCIONES QUE PERMITEN LA GESTION DE LOS SERVICIOS EN MODO KERNEL POR PARTE DE LOS PEDIDOS QUE SE REALIZAN DESDE EL MODO USUARIO.
PROCESO
ATRIBUTOS
Ing. Sergio Omar Aguilera
PID (ID del proceso) PPID (ID del Padre) UID (ID del Usuario Real) EUID (ID del Usuario Efectivo) GID (ID del Grupo Real) EGIT (ID del Grupo Efectivo) Unidad III Sistema de Llamadas y Señales
2
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
SYSTEM CALL FORMATO GENERAL: CREAT(2) crear un archivo nuevo. SYNOPSIS # include # include # include int creat (const char *pathname, mode_t mode); DESCRIPTION La función Creat crea un archivo regular nuevo, o prepara para volver a escribir uno ya existente. ERRORS [ENOSPC] no hay suficiente espacio en el sistema de archivos. [EACCES] no se tiene permiso de acceso. RETURN VALUE Si no hay error retorna el file descriptor, si hay error retorna -1, y se guarda en la variable errno la causa del error. SEE ALSO chmod(2), close,… Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
3
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
SYSTEM CALL LOS PROCESOS TIENEN
FILE DESCRIPTOR
STDIN_FILENO (0) – Entrada Standard
STDOUT_FILENO (1) – Salida Standard STDERR_FILENO (2) – Error Standard
Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
4
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
SYSTEM CALL SYSTEM CALL PARA ACCESO A ARCHIVOS
open ( ) – Abrir archivo read ( ) – Lectura archivo close ( ) – Cerrar archivo lseek ( ) – Posicionar un archivo unlink ( ) – Destrucción enlace a directorio SYSTEM CALL PARA CONTROL DE PROCESOS exec ( ) – Ejecuta un proceso main ( ) – Recibe argumentos desde linea de ejecución fork ( ) – Crea un proceso wait ( ) – Espera fin de un proceso exit ( ) – Fin de un proceso Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
5
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
SYSTEM CALL SYSTEM CALL PARA COMUNICACION ENTRE ARCHIVOS
dup ( ) – Redirección de mensajes dup2 ( ) – idem. pipe ( ) – Idem IPC OTROS SYSTEM CALL time ( ) – Retorna valor en sg desde 1/1/1970 gettimeofday ( ) – Hora actual, resolución en microsg perror ( ) – Muestra info sobre error en proceso chdir ( ) – Cambio de directorio de trabajo getenv ( ) – Acceso al valor de una variable de entorno del proceso setenv ( ) – Cambio en variables de entorno. exit ( ) – Fin de un proceso Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
6
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
SYSTEM CALL SYSTEM CALL PARA TRANSFERIR SEÑALES signal ( ) – usa signal.h LISTADO DE SEÑALES SIGHUP – Colgar. Desconexión de terminal SIGINT – Interrupción. Generada por el teclado SIGILL – Instrucción ilegal. No capturable SIGFPE - Excepción aritmética, de coma flotante o división por cero SIGKILL – Matar proceso. No se captura ni se ignora. SIGBUS – Error en el Bus SIGSEGV – Violación de Segmentación. SIGPIPE – Escritura en un pipe para el cual no hay lectores. SIGALRM – Alarma de reloj SIGTERM – Terminación de un programa. Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
7
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
INTERRUPCIONES EVENTO QUE ALTERA LA FRECUENCIA/SECUENCIA DE EJECUCION DE INSTRUCCION
UMC IRQ
ZONA DE USR
SP DIR
PRG
XX
APP INTERRUMP
TDI ZONA PROTEGIDA DEL SOP
ROM/HD Ing. Sergio Omar Aguilera
256
VI
0 Unidad III Sistema de Llamadas y Señales
8
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
INTERRUPCIONES POR HW BUS DE DIRECCIONES
UMC
MICROPROCESADOR
E/S
BUS DE DATOS
PIC 8259
RD (LECT) INTA (ACEP) INTR (PEDIDO)
Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
9
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
INTERRUPCIONES: CLASIFICACION IRQ (EXTERNAS AL PROC.)
NMI (NO MASK IRQ)
IRQ SEGUN SU ORIGEN
IRQ SEGUN PRIORIDAD
EXCEPCIONES (INT. AL PROC.)
MI (MASK IRQ)
SVC (SUPERVISOR CALL) I/O (HW DE I/O) EXTERNAS (SW DE I/O) IRQ EN SISTEMAS NO PC
RE-BOOT VERIF. DE PRG (SW DE APP) VERIF. DE HW)
SVC (SUPERVISOR CALL) Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
10
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
INTERRUPCIONES: ALGORITMO FUNCIONAL Ciclo de lectura
Ciclo de ejecución
Ciclo de interrupción
Interrupciones inhabilitadas
INICIO
Leer la instrucción siguiente
Ejecutar la instrucción
Interrupciones habilitadas
Comprobación de interrupción; interrupción del proceso
FIN Figura 1.7. Ciclo de instrucción con interrupciones. Williams Stallings SISTEMAS OPERATIVOS. Principios de diseño e interioridades. 4ta ed. Pearson Eduación S.A. Madrid, 2001 ISBN: 84-2053177-4
Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
11
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA INTERRUPCIONES: SECUENCIA DE EJECUCION Programa de usuario
Programa de E/S
Orden de E/S
ESCRIBIR
Programa de usuario
Programa de E/S
ESCRIBIR
Orden de E/S
Programa de usuario
Programa de E/S
ESCRIBIR
Orden de E/S
FIN Rutina de tratamiento de interrupciones
ESCRIBIR
ESCRIBIR
Rutina de tratamiento de interrupciones
ESCRIBIR FIN
ESCRIBIR
ESCRIBIR (a) Sin interrupciones
FIN
ESCRIBIR
(b) Con interrupciones y corta espera de E/S
(c) Con interrupciones y larga espera de E/S Williams Stallings SISTEMAS OPERATIVOS. Principios de diseño e interioridades. 4ta ed. Pearson Eduación S.A. Madrid, 2001 ISBN: 84-2053177-4
Figura 1.5. Flujo de control del programa con y sin interrupciones. Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
12
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA INTERRUPCIONES MULTIPLES Programa de usuario
Rutina X de tratamiento de interrupciones Williams Stallings SISTEMAS OPERATIVOS. Principios de diseño e interioridades. 4ta ed. Pearson Eduación S.A. Madrid, 2001 ISBN: 84-2053177-4
RutinaY de tratamiento de interrupciones
(a) Tratamiento secuencial de interrupciones Programa de usuario
Rutina X de tratamiento de interrupciones
RutinaY de tratamiento de interrupciones
(b) Tratamiento de control con múltiples interrupciones
Figura 1.12. Transferencia de control con múltiples interrupciones. Ing. Sergio Omar Aguilera Unidad III Sistema de Llamadas y Señales
13
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
IRQs LINUX Procesador Aritmético Disco Flexible
Teclado etc.
EJECUCIÓN DEL PROGRAMA PRINCIPAL si
?
IRQ
Reconocimiento del Pedido
No
IRQ
Señal de pedido de Atención de Interrupción para el Procesador
IRQ
Programa de Respuesta (tratamiento del Pedido)
? No
IRQ ? = ¿Está activa la Señal?
? No
Pedido y satisfacción de IRQ
DISPOSITIVO (por ejemplo: Sistema sensor de existencia de papél de la impresora)
0 1 2
CANAL
MEMORIA
de ENTRADA
PAI
IRQ
PROCESADOR CENTRAL
PAI = Pedido de Atención de Interrupción Ej.: 0 = Hay PapéI 1 = No Hay PapéI
Ing. Sergio Omar Aguilera
FIG. A
Unidad III Sistema de Llamadas y Señales
14
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
IRQs LINUX VARIOS CICLOS
PRODUCEN
DE RELOJ
UN CICLO DE MAQUINA
(3 a 6)
VARIOS CICLOS
PRODUCEN UN CICLO DE INSTRUCCIÓN
DE MAQUINA (1 a 5) FIG. C Ciclos de Reloj
RST
Ciclo de máquina
Ciclo de Instrucción Fig. D
Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
15
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
IRQs LINUX MICROPROCESADOR 0
4
Periférico 0 1
0
2
0
3
INTA
1
CANAL "OR"
y 2
0
5
DECODIFICADOR 1
1
RST
3
1 0
Periférico 7
6
0
4
Periférico 6
Int
0
5
DECODIFICADOR
BUS DE DATOS
0
JUMP al Programa de Cada Periférico provee una señal: 0 = inactiva, 1 = activa,
Ing. Sergio Omar Aguilera
La señal de pedido de RESTART (nnn)
tratamiento
identifica 110 en base 2
Unidad III Sistema de Llamadas y Señales
FIG. B1.39
16
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
IRQs LINUX Programa Principal en Ejecución
MEMORIA CENTRAL
4 JUMP SR6 Ocurrencia de la Interrupción del Periférico 6
S6=48
Área de Vector de Interrupciones
5 Comienzo Programa de
Subrutina SR6
Tratamiento de Interrupción 6
4
RETURN
6 Dirección de Retorno
Área del STACK
FIG. F
Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
17
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
BIBLIOGRAFIA DE REFERENCIA 1.
Manual de Actualización y reparación de PCs, 12va. Ed. Scott Mueller. Que. Pearson, Prentice Hall. Mexico, 2001.
2.
Sistemas de Computadoras, un enfoque estructurado. 7ma ed. Andrew Tannenbaum. Prentice Hall, 1994.
3.
Operating Systems, 2da. Ed. William Stallings. Prentice Hall. 1995.
4.
Sistemas Operativos, 4ta ed. William Stallings. Pearson, Prentice Hall. Madrid, 2001.
5.
Sistemas Operativos. 5ta Ed. William Stalling. Pearson Prentice Hall. Madrid. 2006
6.
Unix, Sistema V Versión 4. Rosen,Rozinsky y Farber.McGraw Hill. NY 2000.
7.
Lunix, Edición especial. Jack Tackett, David Guntery Lance Brown. Ed. Prentice Hall. 1998.
8.
Linux, Guía del Administrador avanzado. Facundo Arena. MP ediciones. BsAs. 2000.
Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
18
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
FIN UNIDAD III SISTEMA DE LLAMADAS Y SEÑALES
Ing. Sergio Omar Aguilera
Unidad III Sistema de Llamadas y Señales
19