Un bloque de control de procesos (PCB) es una estructura de datos utilizada por los sistemas operativos de las computadoras para almacenar toda la información sobre un proceso . También se conoce como descriptor de proceso .
- Cuando se crea un proceso (inicializado o instalado), el sistema operativo crea un bloque de control de proceso correspondiente.
- La información de un bloque de control de proceso se actualiza durante la transición de los estados del proceso.
- Cuando el proceso termina, su PCB se devuelve al grupo de donde se extraen nuevos PCB.
- Cada proceso tiene un solo PCB.
Papel
La función de los PCB es fundamental en la gestión de procesos : la mayoría de las empresas de servicios públicos acceden a ellos y / o los modifican, en particular los implicados en la programación y la gestión de recursos.
Estructura
En los sistemas operativos multitarea , la PCB almacena los datos necesarios para una gestión de procesos correcta y eficiente. [1] Aunque los detalles de estas estructuras dependen del sistema, los elementos comunes se dividen en tres categorías principales:
- Identificación de proceso
- Estado de proceso
- Control de procesos
Existen tablas de estado para cada entidad relevante, como la descripción de la memoria, los dispositivos de E / S, los archivos y los procesos.
Las tablas de memoria, por ejemplo, contienen información sobre la asignación de memoria principal y secundaria (virtual) para cada proceso, atributos de autorización para acceder a áreas de memoria compartidas entre diferentes procesos, etc. Las tablas de E / S pueden tener entradas que indiquen la disponibilidad de un dispositivo o su asignación a un proceso, el estado de las operaciones de E / S, la ubicación de los búferes de memoria utilizados para ellos, etc.
Los datos de identificación del proceso incluyen un identificador único para el proceso (casi invariablemente un número entero) y, en un sistema multiusuario y multitarea, datos como el identificador del proceso principal, el identificador del usuario, el identificador del grupo de usuarios, etc. El identificador del proceso es particularmente relevante ya que a menudo se usa para hacer referencias cruzadas a las tablas definidas anteriormente, por ejemplo, mostrando qué proceso está usando qué dispositivos de E / S o áreas de memoria.
Los datos de estado del proceso definen el estado de un proceso cuando está suspendido, lo que permite que el sistema operativo lo reinicie más tarde. Esto siempre incluye el contenido de los registros de la CPU de propósito general, la palabra de estado del proceso de la CPU, los punteros de pila y marco, etc. Durante el cambio de contexto , el proceso en ejecución se detiene y se ejecuta otro proceso. El kernel debe detener la ejecución del proceso en ejecución, copiar los valores de los registros de hardware a su PCB y actualizar los registros de hardware con los valores de la PCB del nuevo proceso.
El sistema operativo utiliza la información de control de procesos para gestionar el proceso en sí. Esto incluye:
- Estado de programación del proceso: el estado del proceso en términos de "listo", "suspendido", etc., y también otra información de programación, como el valor de prioridad, la cantidad de tiempo transcurrido desde que el proceso obtuvo el control de la CPU o desde fue suspendido. Además, en caso de un proceso suspendido, los datos de identificación del evento deben registrarse para el evento que el proceso está esperando.
- Información de estructuración del proceso: los identificadores secundarios del proceso o los identificadores de otros procesos relacionados con el actual de alguna manera funcional, que pueden representarse como una cola, un anillo u otras estructuras de datos.
- Información de comunicación entre procesos: banderas, señales y mensajes asociados con la comunicación entre procesos independientes
- Privilegios de proceso: acceso permitido / no permitido a los recursos del sistema
- Estado del proceso: nuevo, listo, en ejecución, en espera, muerto
- Número de proceso (PID): número de identificación único para cada proceso (también conocido como ID de proceso )
- Contador de programa (PC): un puntero a la dirección de la siguiente instrucción que se ejecutará para este proceso
- Registros de CPU: conjunto de registros donde el proceso debe almacenarse para su ejecución para el estado de ejecución
- Información de programación de la CPU: información que programa el tiempo de la CPU
- Información de gestión de memoria: tabla de páginas, límites de memoria, tabla de segmentos
- Información de contabilidad: cantidad de CPU utilizada para la ejecución del proceso, límites de tiempo, ID de ejecución, etc.
- Información de estado de E / S: lista de dispositivos de E / S asignados al proceso.
Localización
La PCB debe mantenerse en un área de la memoria protegida del acceso normal al proceso. En algunos sistemas operativos, la PCB se coloca al comienzo de la pila del núcleo del proceso. [2]