Buscar este blog

sábado, 15 de enero de 2011

2.3 Estados de Procesos Sistemas Operativos
·         Ejecución: si suponemos un computador con un único procesador, entonces sólo podrá haber un proceso en este estado.
·         Listo: proceso que está preparado para ejecutar, en cuanto se le dé la oportunidad
·         Bloqueados: proceso que no puede ejecutar hasta que se produzca cierto suceso, como la terminación de una operación de E/S.
·         Nuevo: proceso que se acaba de crear, pero que aún no ha sido admitido por el sistema operativo en el grupo de procesos ejecutables.
·         Terminado: un proceso que ha sido excluido del grupo de procesos ejecutables, porque se detuvo o porque fue abandonado por alguna razón.
Si un nuevo usuario intenta conectarse a un sistema de tiempo compartido o si un nuevo trabajo por lotes es remitido para su ejecución. El sistema operativo puede definir un nuevo proceso en dos pasos. Primero, el S.O: lleva a acabo algunas tareas necesarias de gestión interna Se le asocia un identificador al proceso y se construyen y asignan algunas tablas necesarias para gestionar el proceso. En este punto, el proceso estará en el estado Nuevo. Esto significa que se han llevado a cabo las acciones necesarias para crear el proceso pero no se ha comprometido aún a su ejecución.
Asimismo, un proceso sale de un sistema en dos pasos. Primero, el proceso termina cuando llega al punto normal de terminación, cuando se abandona debido a un error irrecuperable o cuando otro proceso con la debida autoridad hace que el proceso abandone. La terminación pasa el proceso al estado Terminado. En este punto, el proceso ya no se elige más para la ejecución. Sin embargo, las tablas y otra información asociada con el trabajo son conservadas temporalmente. Esto le da tiempo a otros programas auxiliares o de soporte para extraer la información necesaria.
Cola de Listos y Bloqueados
A medida que se admiten procesos en el sistema, se sitúan en la cola de Listo. Cuando llega el momento de que el S.O. escoja otro proceso para ejecutar, se selecciona uno de la cola de Listos. En ausencia de un esquema de prioridades, ésta puede ser una simple cola FIFO. Cuando un proceso que está ejecutándose es apartado de la ejecución, se lo da por terminado o se lo pone en la cola de Listos o Bloqueados, dependiendo de las circunstancias.
Por último, cuando se produce un suceso, todos los procesos de la cola de Bloqueados que están esperando a dicho suceso se pasan a la cola de Listos. Esta última medida significa que, cuando se produce un suceso, el sistema operativo debe recorrer toda la cola de Bloqueados, buscando aquellos que esperaban al suceso. En un S.O. grande, puede haber demasiada cantidad de procesos en dichas cola y, por lo tanto, sería más eficiente tener una varias colas de Bloqueados, una por cada suceso.
Procesos suspendidos
Consideremos un sistema que no utiliza memoria virtual. Cada proceso que va a ejecutarse debe ser cargado por completo en la memoria principal. La memoria contiene varios procesos y el procesador puede dedicarse a otro proceso cuando uno esté esperando. Pero si el procesador es tan rápido en comparación con E/S, todos los procesos de memoria estarán esperando este recurso. Así pues, incluso con multiprogramación, el procesador podría estar desocupado la mayor parte del tiempo.
Una solución es el intercambio, que significa mover una parte o todo el proceso de la memoria principal a disco. Cuando ninguno de los procesos en memoria está en estado Listo, el sistema operativo expulsa a disco a uno de los procesos que esté Bloqueado y lo pasa a una cola de Suspendidos. Al realizar la transferencia del proceso a disco, entonces el espacio que se libera de la memoria principal puede ser utilizado para traer otro proceso. En este modelo vemos que se ha agregado un estado Suspendido.
Hemos visto dos conceptos independientes: si un proceso está esperando un suceso (bloqueado o no) y si un proceso ha sido expulsado de la memoria principal (suspendido o no). Para realizar las combinaciones de estos conceptos, hacen falta los cuatro estados siguientes:
·         Listo: el proceso está en memoria principal y listo para la ejecución.
·         Bloqueado: el proceso está en memoria principal esperando un suceso
·         Bloqueado y suspendido: el proceso está en memoria secundaria esperando un suceso.
·         Listo y suspendido: el proceso está en memoria secundaria pero está disponible para su ejecución tan pronto como se cargue en memoria principal.

No hay comentarios:

Publicar un comentario