Modelo de dos estados y de cinco estados
Es el modelo más simple. En este modelo, un proceso puede estar ejecutándose o no. Cuando se crea un nuevo proceso, se pone en estado de No ejecución. En algún momento el proceso que se está ejecutando pasará al estado No ejecución y otro proceso se elegirá de la lista de procesos listos para ejecutar para ponerlo en estado Ejecución.
Modelo de cinco estados:
En este modelo se necesita un estado en donde los procesos permanezcan esperando la realización de la operación de Entrada /Salida por parte del Sistema Operativo hasta que puedan proseguir. Se divide entonces al estado No ejecución en dos estados: Listo y Espera y se agregan además un estado Nuevo y otro Terminado.
Los cinco estados de este diagrama son los siguientes:
– Ejecución: el proceso está actualmente en ejecución. Listo: el proceso está listo para ser ejecutado.
– Espera: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como la finalización de una operación de Entrada/Salida solicitada por una llamada al sistema operativo.
– Nuevo: El proceso fue creado recientemente y todavía no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal.
– Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque terminó o por alguna falla, como un error de protección, aritmético, etc.
También los procesos suspendidos (Hold) en el que dos o más procesos pueden cooperar mediante señales de forma que uno obliga a detenerse a los otros hasta que reciban una señal para continuar.
Se usa una variable de tipo Semáforo para sincronizar los procesos. Si un proceso está esperando una señal, se suspende (Hold) hasta que la señal se envíe (SIGNAL).
Se mantiene una cola de procesos en espera en el semáforo.
La forma de elegir los procesos de la cola en ESPERA es mediante una política FIFO (First In First Out) también llamada FCFS (First Come First Served), Round Robin, etc.
La sincronización explícita entre procesos es un caso particular del estado «bloqueado». En este caso, el suceso que permite desbloquear un proceso no es una operación de entrada/salida, sino una señal generada a propósito por el programador desde otro proceso.
Fuente: Apuntes de la materia Sistemas Operativos Multiusuario de la FCA – UNAM