lunes, 27 de octubre de 2008

2.2 Estados y Transiciones de Procesos

En 1997 Tanenbaum y Woodhull describen los estados de un proceso como un ciclo de vida. Durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellos son:
  • En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando.
  • Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.
  • Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc. El proceso necesita que ocurra algún evento que le permita poder proseguir su ejecución.

Según Tanenbaum y Woodhull (1997) hay otros estados de los procesos, pero en la presente exposición se tratarán estos tres. Por sencillez, se considera un sistema con una sola CPU, aunque no es difícil la extensión a múltiples procesadores. Solamente puede haber un proceso en ejecución a la vez, pero pueden existir varios listos y varios pueden estar bloqueados. Así pues, se forman una lista de procesos listos y otra de procesos bloqueados. La lista de procesos listos se ordena por prioridad, de manera que el siguiente proceso que reciba la CPU será el primero de la lista. La lista de procesos bloqueados normalmente no está ordenada; los procesos no se desbloquean (es decir, no pasan a ser procesos listos) en orden de prioridad, sino que lo hacen en el orden de ocurrencia de los eventos que están esperando. Como se verá más adelante, hay situaciones en las cuales varios procesos pueden bloquearse esperando la ocurrencia del mismo evento; en tales casos es común asignar prioridades a los procesos que esperan.

No hay comentarios: