martes, 31 de agosto de 2010

Estados y Transiciones de un Proceso

Estados: Las personas en su vida laboral tienen distintos estados: pueden estar estables, inestables, cesantes, y otras más. Los procesos también tienen estados, y vendrían siendo las siguientes:

  • En Ejecución: el proceso se esta ejecutando (trabajando).
  • Listo o preparado: tiene todos los recursos necesarios listos para su trabajo, solo falta la CPU.
  • Bloqueado (Locked): el programa no cumple con un recurso para su ejecución.

Estos son los tres estados más "típicos".
Transiciones de estado de los proceso: volviendo al tema laboral como ejemplo, una persona puede estar felizmente y establemente trabajando, pero esto puede en algún momento cambiar, es decir, de un trabajo estable a cesante. Esto es una transición de estado.

En el caso de los procesos, existen como ejemplo de transiciones:

  • De ejecución á Bloqueado: al iniciar una operación de E/S, al realizar una operación WAIT sobre un semáforo a cero.
  • De ejecución á Listo: por ejemplo, en un sistema de tiempo compartido, cuando el proceso que ocupa la CPU lleva demasiado tiempo ejecutándose continuamente el sistema operativo decide que otro proceso ocupe la CPU, pasando el proceso que ocupaba la CPU a estado listo.
  • De Listo á en ejecución: cuando lo requiere el planificador de la CPU (veremos el planificador de la CPU en el tema de planificación de procesos).
  • De Bloqueado á Listo: se dispone del recurso por el que se había bloqueado el proceso. Por ejemplo, termina la operación de E/S, o se produce una operación SIGNAL sobre el semáforo en que se bloqueó el proceso, no habiendo otros procesos bloqueados en el semáforo.
Esta explicación la encontre en internet, y esta muy buena, el único problema es que aún no explicamos lo que son los semáforos, pero lo veremos a su debido tiempo.

No hay comentarios:

Publicar un comentario