Señales

Solo disponible en BuenasTareas
  • Páginas : 5 (1072 palabras )
  • Descarga(s) : 0
  • Publicado : 18 de febrero de 2011
Leer documento completo
Vista previa del texto
SO2 Sistemas operativos II

Llamadas al sistema
Índice
– Señales

Unidad Temática 3

S02 Sistemes operatius II

Llamadas al sistema: Señales

Bibliografía
“UNIX Programación Práctica”. Kay A. Robbins, Steven Robbins. Prentice Hall. ISBN 968-880-959-4. Capítulo 5. Páginas de manual de cualquier distribución Linux. Documentación del estándar POSIX. (http://sop.upv.es/posix)

Equipodocente de “Sistemas Operativos DISCA/DSIC”
Universidad Politécnica de Valencia

Señales
Motivación
– ¿Como puede manejar un s.o. las siguientes situaciones anormales?
Un programa que no acaba nunca i se quiere interrumpir... Un programa que realiza un error no previsto y provoca una excepción, como p.e.:

Señales
Concepto
– Evento que interrumpe la ejecución normal de un proceso – Laacción por defecto es matar el proceso – Pueden manejarse

S02 Sistemes operatius II

S02 Sistemes operatius II

– Un error matemático: división por cero, etc. – Accesos a memoria no permitidos: ‘Segmentation fault’, punteros “mareados”.

– Pueden filtrarse mediante una máscara

– ¿O como puede enterarse de eventos externos i tratarlos adecuadamente?
Se ha cortado la conexión con laterminal: la red ha fallado, la ventana ha sido cerrada. Se ha interrumpido la comunicación con un tubo Han muerto todos los hijos

Máscara de P1 Proceso P1
Ejecución normal

Solució
– Disponer de un mecanismo para poder actuar sobre un programa en ejecución e interrumpirlo Señal
El efecto, en la mayoria de casos, ha de ser eliminar el proceso, aunque en otros puede interesar manejarla.manejador

Señales
Generación de señales Máscara de señales Manejo de señales
manejador(...) Se ejecuta el manejador

Señales

Señales kill
Enviar una señal Generar una alarma (señal de reloj) Iniciar una máscara para que no tenga señales seleccionadas Iniciar una máscara para que contenga todas las señales Poner una señal específica en un conjunto de señales Quitar una señal específica en unconjunto de señales Consultar si una señal pertenece a un cto. de señales Examinar/modificar máscara de señales Capturar/manejar señales Esperar señales

S02 Sistemes operatius II

S02 Sistemes operatius II

alarm sigemptyset sigfillset sigaddset sigdelset sigismember sigprocmask sigaction sigsuspend

. . .
Definición máscara

SIG_IGN SIG_DFL

Se ignora Acción de defecto (exit: matael proceso)

• Terminal • Errores • Software

. . .

kill(...) alarm(..)

sigemptyset(...) sigfillset(..) sigaddset(..) sigdelset(..) sigismemeber(...)
Establecimiento máscara

Establecer manejador

sigaction(...)
Espera de señales

sigprocmask(...)

pause(...) sigsuspend(…)

Señales
Lista de señales
Nº 1 Señal SIGHUP SIGINT SIGQUIT SIGABRT SIGKILL SIGPIPE SIGALRM SIGTERMSIGUSR1 Descripción Colgado/muerte terminal control CTRL-C de teclado (interrupción) CTRL-\ de teclado (int. con core) Terminación anormal como con abort Terminación. No manejable ni ignorable Escritura en tubo sin lector Alarma temporizada programada por alarm Terminación por software Señal 1 definida por el usuario

Señales
Lista de señales / control de trabajos
DFL. exit exit core core exitexit exit exit exit
Nº 20 Señal SIGCHLD SIGCONT SIGSTOP SIGTSTP Descripción Terminación/suspensión del proceso hijo CTRL-C de teclado (interrupción) Alto (no puede capturarse ni ignorarse) Alto de teclado CTRL-z

DFL.
ignore continue stop stop

S02 Sistemes operatius II

2 3 6 9 13 14 15 -

S02 Sistemes operatius II

19 17 18

Control de trabajos en bash
$ cat > text CTRL-Z [1]+Stopped cat > text $ jobs [1]+ Stopped cat > text $ bg [1]+ cat > text & $ fg %1 cat > text $ cat > text CTRL-Z [1]+ Stopped $ jobs [1]+ Stopped $ kill %1 [1]+ Terminated

cat > text cat > text cat > text

Señales
kill: enviar una señal
#include #include

Señales
kill
Valor de retorno – 0 si la señal es enviada y –1 si error. Errores – Número de señal no válido – Permisos

S02 Sistemes...
tracking img