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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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!