TEMA 2. GESTIÃN DE PROCESOS - Universidad de AlmerÃa
TEMA 2. GESTIÃN DE PROCESOS - Universidad de AlmerÃa
TEMA 2. GESTIÃN DE PROCESOS - Universidad de AlmerÃa
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Diseño <strong>de</strong> Sistemas Operativos<br />
Tema <strong>2.</strong> Gestión <strong>de</strong> Procesos<br />
• Señales vinculadas con la acción en la que el proceso solicita avisos asociados a una cantidad <strong>de</strong><br />
tiempo transcurrida (alarmas), o cuando un proceso, con capacidad <strong>de</strong> señalizar a otro, le envía una<br />
señal.<br />
• Señales <strong>de</strong> control <strong>de</strong> procesos, generadas por proceso ejecutando en el fondo (background) y que<br />
intentan realizar operaciones asociadas al terminal.<br />
En el archivo <strong>de</strong> cabera están <strong>de</strong>finidas las señales que pue<strong>de</strong> manejar el sistema y sus<br />
nombres. Las 19 señales <strong>de</strong> UNIX System V son:<br />
• SIGHUP. Hangup. Esta señal es enviada cuando un terminal se <strong>de</strong>sconecta <strong>de</strong> todo proceso <strong>de</strong>l que<br />
es terminal <strong>de</strong> control. También se envía a todos los procesos <strong>de</strong> un grupo cuando el lí<strong>de</strong>r <strong>de</strong>l grupo<br />
termina su ejecución. La acción por <strong>de</strong>fecto <strong>de</strong> esta señal es terminar la ejecución <strong>de</strong>l proceso que<br />
la recibe.<br />
• SIGINT. Interrupción. Se envía a todo proceso asociado con un terminal <strong>de</strong> control cuando se pulsa<br />
la tecla <strong>de</strong> interrupción. La acción por <strong>de</strong>fecto <strong>de</strong> esta señal es terminar la ejecución <strong>de</strong>l proceso<br />
que la recibe.<br />
• SIGQUIT. Salir. Similar a SIGINT, pero es generada al pulsar la tecla <strong>de</strong> salida. Su acción por<br />
<strong>de</strong>fecto es generar un archivo core y terminar el proceso.<br />
• SIGILL. Instrucción ilegal. Es enviada cuando el hardware <strong>de</strong>tecta una instrucción ilegal. En los<br />
programas escritos en C suelen producir este error cuando manejamos punteros a funciones que no<br />
han sido correctamente inicializados. Su acción por <strong>de</strong>fecto es generar un archivo core y terminar<br />
el proceso.<br />
• SIGTRAP. Trace trap. Es enviada <strong>de</strong>spués <strong>de</strong> ejecutar cada instrucción, cuando el proceso se está<br />
ejecutando paso a paso. Su acción por <strong>de</strong>fecto es generar un archivo core y terminar el proceso.<br />
• SIGIOT. I/O trap instruction. Se envía cuando se da un fallo <strong>de</strong> hardware. La naturaleza <strong>de</strong> este<br />
fallo <strong>de</strong>pen<strong>de</strong> <strong>de</strong> la máquina. Es enviada cuando llamamos a la función abort, que provoca el<br />
suicidio <strong>de</strong>l proceso generando un archivo core.<br />
• SIGEMT. Emulator trap instruction. También indica un fallo <strong>de</strong> hardware. Raras veces se utiliza.<br />
Su acción por <strong>de</strong>fecto es generar un archivo core y terminar el proceso.<br />
• SIGFPE. Error en coma flotante. Es enviada cuando el hardware <strong>de</strong>tecta un error en coma flotante,<br />
como el uso <strong>de</strong> un número en como flotante con un formato <strong>de</strong>sconocido, errores <strong>de</strong> overflow o<br />
un<strong>de</strong>rflow, etc. Su acción por <strong>de</strong>fecto es generar un archivo core y terminar el proceso.<br />
• SIGKILL. Kill. Esta señal provoca irremediablemente la terminación <strong>de</strong>l proceso. No pue<strong>de</strong> ser<br />
ignorada ni modificarse y siempre que se recibe se ejecuta su acción por <strong>de</strong>fecto, que consiste en<br />
generar un archivo core y terminar el proceso. Esta característica permite al superusuario po<strong>de</strong>r<br />
interrumpir o suspen<strong>de</strong>r la ejecución <strong>de</strong> todo proceso.<br />
• SIGBUS. Bus error. Se produce cuando se da un error <strong>de</strong> acceso a memoria. Las dos situaciones<br />
típicas que las provocan suelen ser intentar acce<strong>de</strong>r a una dirección que físicamente no existe o<br />
intentar acce<strong>de</strong>r a una dirección impar, violando así las reglas <strong>de</strong> alineación que impone el<br />
hardware. Su acción por <strong>de</strong>fecto es generar un archivo core y terminar el proceso.<br />
• SIGSEGV. Violación <strong>de</strong> segmento. Esta señal es enviada a un proceso cuando intenta acce<strong>de</strong>r a<br />
datos que se encuentran fuera <strong>de</strong> su segmento <strong>de</strong> datos. Su acción por <strong>de</strong>fecto es generar un archivo<br />
core y terminar el proceso.<br />
• SIGSYS. Argumento erróneo en una llamada al sistema. No se utiliza.<br />
• SIGPIPE. Intento <strong>de</strong> escritura en una tubería (pipe) <strong>de</strong> la que no hay nadie leyendo. Esto suele<br />
ocurrir cuando el proceso <strong>de</strong> lectura termina <strong>de</strong> una forma anormal. Su acción por <strong>de</strong>fecto es<br />
terminar el proceso.<br />
• SIGALRM. Alarm clock. Esta señal es enviada a un proceso cuando alguno <strong>de</strong> sus temporizadores<br />
<strong>de</strong>scen<strong>de</strong>ntes llega a cero. Su acción por <strong>de</strong>fecto es terminar el proceso.<br />
• SIGTERM. Finalización software. Es la señal utilizada para indicarle a un proceso que <strong>de</strong>be<br />
terminar su ejecución. Esta señal no es tan tajante como SIGKILL y pue<strong>de</strong> ser ignorada. Lo correcto<br />
es que la rutina <strong>de</strong> tratamiento <strong>de</strong> esta señal se encargue <strong>de</strong> tomar las acciones necesarias antes <strong>de</strong><br />
terminar un proceso (como por ejemplo, borrar los archivos temporales) y llame a la rutina exit.<br />
Esta señal es enviada a todos los procesos durante el shutdown o parada <strong>de</strong>l sistema. Su acción por<br />
<strong>de</strong>fecto es terminar el proceso.<br />
Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>2.</strong>54