Portada » Informática » Gestión de Procesos en Sistemas Operativos
Un Sistema Operativo (SO) ejecuta una variedad de programas:
Proceso y Trabajo se utilizan a menudo para decir lo mismo. Sin embargo, un proceso es más que un programa en ejecución, debe tener un progreso secuencial.
Un proceso se compone de varias partes:
Un programa es una entidad pasiva almacenada en disco (archivo ejecutable), mientras que un proceso es activo. Un programa llega a ser un proceso cuando el archivo ejecutable se carga en memoria. La ejecución de un programa se puede realizar vía GUI (clicks de ratón), línea de comandos, etc. Un programa puede tener diferentes procesos, por ejemplo, varios usuarios utilizando el mismo programa.
Cuando un proceso se ejecuta, cambia de estado:
El PCB (Bloque de Control del Proceso) contiene información asociada a cada proceso (también se llama task control block).
El PCB almacena:
Cuando la CPU cambia a otro proceso, el sistema debe salvar el estado del proceso antiguo y cargar el estado guardado del proceso nuevo a cargar, vía cambio de contexto. El Contexto de un proceso se presenta en el PCB. El Cambio de contexto suele ser pesado para el sistema, lo que significa que no trabaja bien en esos cambios. La parte más compleja de los SO y el PCB es la duración del cambio de contexto. El tiempo depende del Hardware, a veces el HW provee una serie de registros de CPU que permiten múltiples cambios cargados a la vez. El intercambio de procesos suele ser costoso en cuanto a recursos.
Los Threads o hilos, son como entidades de procesos más pequeñas, con menos recursos.
El objetivo de la planificación de procesos es maximizar el uso de CPU, realizando un rápido intercambio de procesos en la CPU para tiempo compartido.
El planificador de procesos (scheduler) selecciona entre los procesos disponibles para su próxima ejecución en la CPU.
El planificador mantiene las siguientes colas de planificación de los procesos:
Los procesos migran entre las distintas colas.
Descripción de los Procesos:
El Planificador a Largo plazo se esfuerza de realizar una buena mezcla de procesos.
Algunos dispositivos móviles (antiguos iOS y Android) permitían sólo un proceso en ejecución, los otros suspendidos.
En iOS, debido a las limitaciones de la pantalla, las interfaces de usuario proveían:
Android ejecuta procesos foreground y background, con menos límites: