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 <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 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