Post on 30-Jul-2022
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera
Unidad 5:SysCall &
Signals 1
UNIDAD 5
SISTEMAS DE LLAMADAS Y SEÑALES
SISTEMAS OPERATIVOS
La Victoria de la búsqueda, es la búsqueda en si misma.
(Paul Auster)
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 2
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.
ATRIBUTOS
�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)
PROCESO
SYSTEM CALL
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 3
FORMATO GENERAL: CREAT(2) crear un archivo nuevo. SYNOPSIS # include <sys/types.h> # include <sys/stat.h> # include <fcntl.h> 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 d e 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,…
SYSTEM CALL
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 4
LOS PROCESOS TIENEN
FILE DESCRIPTOR
STDIN_FILENO (0) – Entrada Standard
STDOUT_FILENO (1) – Salida Standard
STDERR_FILENO (2) – Error Standard
SYSTEM CALL
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 5
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
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 6
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
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 7
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.
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 8
INTERRUPCIONES
EVENTO QUE ALTERA LA FRECUENCIA/SECUENCIA DE EJECUCION DE
INSTRUCCION
ZONA DE USR
ZONA PROTEGIDA
DEL SOP
VI 256
0
IRQ
TDI
APP INTERRUMP
XX
PRG DIR
ROM/HD
SP
UMC
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 9
PIC 8259 MICROPROCESADOR
UMC E/S
BUS DE DATOS
RD (LECT)
INTA (ACEP)
INTR (PEDIDO)
BUS DE DIRECCIONES
INTERRUPCIONES POR HW
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 10
IRQ EN SISTEMAS NO PC
SVC (SUPERVISOR CALL)
I/O (HW DE I/O)
EXTERNAS (SW DE I/O)
RE-BOOT
VERIF. DE PRG (SW DE APP)
VERIF. DE HW)
SVC (SUPERVISOR CALL)
IRQ SEGUN SU ORIGEN
IRQ (EXTERNAS AL PROC.)
EXCEPCIONES (INT. AL PROC.)
IRQ SEGUN PRIORIDAD
NMI (NO MASK IRQ)
MI (MASK IRQ)
INTERRUPCIONES: CLASIFICACION
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 11
INICIO
Ciclo de lectura Ciclo de ejecución Ciclo de interrupción
Leer la instrucción siguiente
Ejecutar la instrucción
Comprobación de interrupción;
interrupción del proceso
FIN
Interrupciones inhabilitadas
Interrup- ciones
Figura 1.7. Ciclo de instrucción con interrupciones.
habilitadas
Williams Stallings SISTEMAS OPERATIVOS. Principios de diseño e interioridades. 4ta ed. Pearson Eduación S.A. Madrid, 2001 ISBN: 84-205-3177-4
INTERRUPCIONES: ALGORITMO FUNCIONAL
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 12
Programa de usuario
Programa de usuario
Programa de usuario
Programa de E/S
Programa de E/S
Programa de E/S
Orden de E/S
Orden de E/S
Orden de E/S
FIN
ESCRIBIR
ESCRIBIR
ESCRIBIR
ESCRIBIR
ESCRIBIR
ESCRIBIR ESCRIBIR
ESCRIBIR
ESCRIBIR
FIN FIN
Rutina de tratamiento de interrup-
ciones
Rutina de tratamiento de interrup-
ciones
(a) Sin interrupciones
(b) Con interrupciones y corta espera de E/S
(c) Con interrupciones y larga espera de E/S
Figura 1.5. Flujo de control del programa con y sin interrupciones.
INTERRUPCIONES: SECUENCIA DE EJECUCION
Williams Stallings SISTEMAS OPERATIVOS. Principios de diseño e interioridades. 4ta ed. Pearson Eduación S.A. Madrid, 2001 ISBN: 84-205-3177-4
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 13
Programa de usuario Rutina X de tratamiento
de interrupciones
Programa de usuario
(a) Tratamiento secuencial de interrupciones
(b) Tratamiento de control con múltiples interrupciones
Figura 1.12. Transferencia de control con múltiple s interrupciones.
RutinaY de tratamiento de interrupciones
Rutina X de tratamiento de interrupciones
RutinaY de tratamiento de interrupciones
INTERRUPCIONES MULTIPLES
Williams Stallings SISTEMAS OPERATIVOS. Principios de diseño e interioridades. 4ta ed. Pearson Eduación S.A. Madrid, 2001 ISBN: 84-205-3177-4
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 14
Pedido y satisfacción de IRQ
Procesador Aritmético
Disco Flexible
Teclado
etc.
IRQ
IRQ
IRQ
IRQ
Señal de pedido de Atención de
Interrupción para el Procesador
?
?
?
si Reconocimiento
del Pedido
Programa de Respuesta
(tratamiento del Pedido)
EJECUCIÓN DEL PROGRAMA PRINCIPAL
No
No
No
? = ¿Está activa la Señal?
FIG. A
CANAL
de
ENTRADA
IRQ PAI
PAI = Pedido de Atención de Interrupción Ej.: 0 = Hay PapéI
1 = No Hay PapéI
PROCESADOR
MEMORIA
CENTRAL
DISPOSITIVO
(por ejemplo: Sistema sensor de existencia de papél de la impresora)
1 0
2
IRQs LINUX
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 15
PRODUCEN
UN CICLO DE MAQUINA (3 a 6)
DE MAQUINA
(1 a 5)
FIG. C
DE RELOJ
UN CICLO DE INSTRUCCIÓN
VARIOS CICLOS
VARIOS CICLOS PRODUCEN
Ciclos de Reloj
RST
Ciclo de máquina
Ciclo de Instrucción
Fig. D
IRQs LINUX
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 16
FIG. B1.39
Periférico 0
Periférico 7
Periférico 6
1
2
3
4
5
0
0
0
0
0
0
0
1
Cada Periférico provee
una señal: 0 = inactiva,
1 = activa,
CANAL "OR"
y
DECODIFICADOR
RST
DECODIFICADOR BUS DE DATOS
1
4 5 6
3
2
Int INTA
0
1
1
MICROPROCESADOR
JUMP al Programa de
tratamiento La señal de pedido
de RESTART (nnn)
identifica 110 en
base 2
IRQs LINUX
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 17
FIG. F
MEMORIA CENTRAL
Área de
Vector de Interrupciones
Programa Principal en Ejecución
Ocurrencia de la Interrupción del Periférico 6
Comienzo Subrutina SR6 Programa de
Tratamiento de
Interrupción 6
RETURN
Área del STACK Dirección de Retorno
JUMP SR6 S6=48
4
5
6
4
IRQs LINUX
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 18
Bibliografia
1. Programación en Linux, con ejemplos. Kurt Wall. QUE, Prentice Hall. Madrid. 2000.
2. Sistemas Operativos. 5ta Ed. William Stalling. Pe arson Prentice Hall. Madrid. 2006
3. Sistemas Operativos. 7ma Ed. William Stalling. Pe arson Prentice Hall. Madrid. 2012
4. Sistemas Operativos Modernos. Andrew. S. Tanenbaum. Prentice-Hall. Interamericana S.A. Madri d, 2009.
5. Unix, Sistema V Versión 4. Rosen,Rozinsky y Farber.McGraw Hill. NY 2000.
6. Lunix, Edición especial. Jack Tackett, David Gunt ery Lance Brown. Ed. Prentice Hall. 1998.
7. El Libro de Linux. Syed M. Sarwar, Robert Koretsk y y Syed. A. Sarwar. Ed. Addison Wesley. 2007. España.
UNIVERSIDAD DE BELGRANO – FAC. ING. Y TECNOLOGIA INFORMATICA
Ing. Sergio Omar Aguilera Unidad 5:SysCall & Signals 19
May the force be with you
FIN UNIDAD 5
SISTEMAS DE LLAMADAS Y SEÑALES