content top

Gestión de procesos del sistema operativo Solaris 10

Cómo gestiona los procesos el Sistema Operativo Solaris 10.

La terminación de un proceso resulta de uno de tres eventos posibles. Por un lado, el proceso puede efectuar el system call exit(), causando que todos sus threads finalicen. Por otro lado, el proceso simplemente puede concluir su ejecución, lo que esencialmente constituye un exit implícito. Finalmente, la otra posible causa de finalización es una llamada a la función abort(), la cual causa que el proceso reciba una señal SIGABRT, cuyo comportamiento es hacer terminar el proceso y crear un archivo core. Independientemente del evento que cause la terminación del proceso, se ejecuta la función exit del kernel, que libera los recursos que hayan sido asignados al proceso, y lo setea al estado zombie. Un proceso zombie es aquel que ha salido y que requiere que el proceso padre emita un system call wait, la cual captura el estatus exit del proceso hijo, y libera la entrada del proceso en la tabla de procesos.

Solaris implementa las señales como  un medio por el cual un proceso o thread puede ser notificado de un evento particular. Las señales se parecen a las interrupciones de hardware, que ocurren cuando un subsistema de hardware genera una interrupción al procesador cuando se completa una operación de I/O. La interrupción causa que el procesador llame a un manejador de interrupciones, que administra el procesamiento subsiguiente, basado en la fuente y la causa de la interrupción.  De manera análoga, cuando se envía una señal a un proceso o thread, el proceso o thread puede entrar en un manejador de señales.

Las señales pueden ocurrir de manera síncrona o asíncrona. Las señales síncronas ocurren como resultado directo de un secuencia de ejecución de instrucciones, donde un error irrecuperable requiere una terminación inmediata del proceso.  Las señales asíncronas son externas al contexto de ejecución del proceso, y por lo general no relacionadas con el mismo.  El ejemplo clásico de señal asíncrona es un proceso o thread enviando a otro una señal kill.

Para todas las señales posibles, la acción a tomar es una de las siguientes:

  • Exit. El proceso termina.
  • Core. Se crea un archivo core imagen del proceso y termina.
  • Stop. Se suspende la ejecución del proceso.
  • Ignore. La señal se descarta y no se toma ninguna acción.
2
Liked it
Etiquetas: , , , ,
votar


Leave a Reply