12.10.2014 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!