2.2. Estados y Transiciones de los Procesos
El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En un entorno de multiprogramación, el procesador intercalará la ejecución de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso. Aunque cada proceso se una entidad independiente, con su propio contador de programa y estado interno, los procesos a menudo necesitan interactuar con otros procesos. Un proceso podría generar ciertas salidas que otro proceso utilizan como entradas, en el comando de Shell.
Cuando un proceso se bloquea, lo que hace porque le es
imposible continuar lógicamente, casi siempre porque está separando entradas
que todavía no están disponibles, también puede ser que un programa que
conceptualmente está listo y en condiciones de ejecutarse sea detenido porque
el sistema operativo ha decidido asignar la CPU a otro proceso durante un
tiempo. Estas dos condiciones son totalmente distintas, en el primer caso, la
suspensión es inherente al problema. En el segundo caso, se trata de un
tecnicismo del sistema (no hay suficiente: CPU para darle a cada proceso su
propio procesador privado).
- Ejecutándose (usando realmente la CPU en este instante).
- Listo (se puede ejecutar, pero se suspendió temporalmente para dejar que otro proceso se ejecute).
- Bloqueo (no puede ejecutarse en tanto no ocurra algún evento externo).
- Puede haber cuánto transiciones entre estos tres estados, como se muestra.
La transacción 1 ocurre cuando un proceso descubre que no
puede continuar. En algunos sistemas el proceso debe ejecutar una llamada al
sistema, block, para pasar al estado bloqueado. En otros sistemas, incluido
MINIX, cuando un proceso lee de un
conducto o de un archivo especial y no hay entradas disponibles, se bloquea
automáticamente.
- Las transiciones 2 y 3 son causadas por el planificador de procesos, un parte del sistema operativo, sin que el proceso se entere siquiera de ellas.
- La transición 2 ocurre cuando el planificador decide que el proceso en ejecución ya se ejecutó durante suficiente tiempo y es ahora de dejar que otros procesos tengan algo de tiempo de CPU.
- La transacción 3 ocurre cuando todos los demás procesos han disfrutado de una porción justa y es hora de que el primer proceso reciba otra vez la CPU para ejecutarse. La transacción 4 ocurre cuando acontece el suceso externo que un proceso estaba esperando (como la llegada de entrada). Sin ningún otro proceso se está ejecutando en ese instante, se dispara de inmediato la transacción 3 y el proceso comienza a ejecutarse. En caso contrario, el proceso tal vez tenga que esperar en el estado listo durante cierto tiempo hasta que la CPU esté disponible. Usando el modelo de procesos, es mucho más fácil visualizar lo que está sucediendo dentro del sistema.
Estado de los Procesos
Los estados de los procesos se pueden
dividir en dos tipos: activos e inactivos.
1.- Estados activos
Son aquellos que compiten con el procesador o están en
condiciones de hacerlo. Se dividen en:
- Ejecución: Estado en el que se encuentra un proceso cuando tiene el control del procesador. En un sistema monoprocesador este estado sólo lo puede tener un proceso.
- Preparado: Aquellos procesos que están dispuestos para ser ejecutados, pero no están en ejecución por alguna causa (Interrupción, haber entrado en cola estando otro proceso en ejecución, etc.).
- Bloqueado: Son los procesos que no pueden ejecutarse de momento por necesitar algún recurso no disponible (generalmente recursos de entrada/salida).
2.- Estados inactivos
Son aquellos que no pueden competir por el procesador, pero
que pueden volver a hacerlo por medio de ciertas operaciones. En estos estados
se mantiene el bloque de control de proceso aparcado hasta que vuelva a ser
activado. Se trata de procesos que no han terminado su trabajo que lo han
impedido y que pueden volver a activarse desde el punto en que se quedaron sin
que tengan que volver a ejecutarse desde el principio.
Son de dos tipos:
- Suspendido bloqueado: Es el proceso que fue suspendido en espera de un evento, sin que hayan desaparecido las causas de su bloqueo.
- Suspendido programado: Es el proceso que han sido suspendido, pero no tiene causa parta estar bloqueado.
Información asociada con cada proceso:
- Estado del proceso.
- Program counter.
- Registros del CPU.
- Información de planificación del CPU.
- Memoria.
- Información para administración.
- Información de estatus de E/S.
Creación de Procesos
- Crear un proceso implica operaciones como:
- Dar un nombre a un proceso.
- Insertarlo en la lista de procesos conocidos del sistema (o tabla de procesos)
- Determinar la prioridad inicial de proceso.
- Crear el bloque de control de proceso.
- Asignar los recursos iniciales al proceso.
Un proceso puede crear
un nuevo proceso. Si lo hace el proceso creador se denomina proceso padre, y el
proceso creado, proceso hijo. Sólo se necesita un padre para crear un hijo. Tal
creación origina una estructura jerárquica de procesos. No se puede destruir un
proceso cuando este ha creado otros procesos.
Comentarios
Publicar un comentario