Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porOsvaldo Del Toro Modificado hace 10 años
1
Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Funciones Útiles Señales Sistemas Operativos
2
Señales – Caso base inicio procedimiento1() procedimiento2() imprimir(); fin Proceso Ejecutar proceso Fin proceso Sistema Operativo Espera…
3
Señales – Caso base INTERRUPCIÓN (SIGINT) while(1) { printf (Hola mundo\n); } Proceso El sistema operativo se comunica con los procesos en ejecución mediante señales
4
Señales – Caso base Una vez recibida la señal el proceso puede decidir dependiendo de su estado Ignorarla Ejecutar una rutina Ejecutar la operación por defecto
5
Señales – Ejemplo void main () { signal(SIGINT, rutina); signal(SIGUSR1, rutina); while(1) { printf(Hola Mundo\n); } void rutina (int n) { switch (n) { case SIGINT: printf(No salgo nada… te cabio\n); break; case SIGUSR1: printf(LLEGO SIGUSR1\n); break; }
6
Señales – Ejemplo signal(SIGINT, rutina); … while(1) { printf (Hola mundo\n); } … SIGINT void rutina (int n) { switch (n) { case SIGINT: printf(No salgo nada…); break; … 2 rutina (SIGINT) 3 1 4 Recibida la señal el programa ejecuta la rutina. Concluida la ejecución retorna al punto del programa donde fue interrumpido
7
Señales – Notas Una señal intenta no interrumpir instrucciones en ejecución pero hay situaciones donde la señal interrumpe syscalls (send(), recv(), select()). Esta situación debe ser avalada por el código de lo contrario el programa va a abortar la ejecución. Existen señales que no son ignorables, SIGKILL por ejemplo.
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.