Jerarquía de procesos, prioridades y colas
Como se mencionó al inicio de este tema un proceso se representa por un conjunto de datos denominado bloque de control de procesos (BCP), estos datos permiten al sistema operativo localizar información sobre el proceso y mantenerlo registrado por si hay que suspender la ejecución temporalmente.
La información contenida es:
– Estado del proceso.
– Estadísticas de tiempo y uso de recursos.
– Ocupación de memoria interna y externa (swapping).
– Recursos en uso.
– Archivos en uso.
– Privilegios.
Los BCP se almacenan en colas y hay una por cada estado posible, se dividen en:
– Activos
– Inactivos
Los activos son aquellos que compiten por el procesador o están en condiciones de hacerlo:
– Ejecución.- cuando un proceso tiene el control del procesador.
– Preparado.- son aquellos procesos que están dispuestos a ser ejecutados.
– Bloqueado.- no pueden ejecutarse por que requieren algún recurso no disponible o están en condiciones de hacerlo.
Los inactivos son aquellos que no pueden competir por el procesador, pero pueden volver a hacerlo si se soluciona el problema que los ha dejado en “suspenso” (falla de un dispositivo de entrada-salida (E/S):
– Suspendido bloqueado.- proceso que ha sido suspendido y que además está a la espera de un evento para desbloquearse.
– Suspendido preparado.- proceso que ha sido simplemente suspendido.
Prioridades
A cada proceso se le asigna una prioridad en función de la urgencia y de los recursos que disponga, lo cual determina la frecuencia de acceso al procesador, las prioridades se clasifican en:
– Asignadas por el sistema operativo: dependiendo de los privilegios de su propietario y del modo de ejecución.
– Asignadas por el propietario: antes de comenzar la ejecución.
– Estáticas: no pueden ser modificadas durante la ejecución.
– Dinámicas: pueden ser modificadas en función de los eventos que se produzcan.
Los procesos, en los diferentes estados que tienen, son agrupados en listas o colas:
– Lista de procesos del sistema (job queue): En esta lista estan todos los procesos del sistema, al crearse un proceso nuevo se agrega el PCB a esta lista, cuando el proceso termina su ejecución es borrado.
– Cola de procesos listos (ready queue): Esta cola se compondrá de los procesos que estén en estado listo, la estructura de esta cola dependerá de la estrategia de planificación utilizada.
– Cola de espera de dispositivos (device queue): Los procesos que esperan por un dispositivo de E/S en particular, son agrupados en una lista específica al dispositivo. Cada dispositivo de E/S tendrá su cola de espera.
Fuente: Apuntes de la materia Sistemas Operativos Multiusuario de la FCA – UNAM