Un bloque de control de procesos ( PCB ), también llamado a veces descriptor de proceso, es una estructura de datos utilizada por un sistema operativo de computadora para almacenar toda la información sobre un proceso .
Cuando se crea un proceso (inicializado o instalado), el sistema operativo crea un bloque de control de proceso correspondiente, que especifica y rastrea el estado del proceso (es decir, nuevo, listo, en ejecución, en espera o finalizado). Dado que se utiliza para rastrear la información del proceso, la PCB desempeña un papel clave en el cambio de contexto . [1]
El núcleo de un sistema operativo almacena PCB en una tabla de procesos. [2]
El directorio de trabajo actual de un proceso es una de las propiedades que el kernel almacena en la PCB del proceso. [3]
El papel de los PCB es central 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 aquellos involucrados en la programación y la gestión de recursos.
En los sistemas operativos multitarea , la PCB almacena los datos necesarios para una gestión correcta y eficiente de los procesos. [4] Aunque los detalles de estas estructuras dependen del sistema, los elementos comunes se dividen en tres categorías principales:
Existen tablas de estado para cada entidad relevante, como descripciones de memoria, dispositivos de E/S, archivos y 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 buffers de memoria utilizados para ellas, 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. La identificación del proceso es particularmente relevante. ya que a menudo se utiliza para hacer referencias cruzadas de las tablas definidas anteriormente, por ejemplo, mostrando qué proceso utiliza qué dispositivos de E/S o áreas de memoria.
Los datos del estado del proceso definen el estado de un proceso cuando se suspende, lo que permite que el sistema operativo lo reinicie más tarde. Esto siempre incluye el contenido de los registros de CPU de uso general, la palabra de estado del proceso de la CPU, 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:
La PCB debe mantenerse en un área de la memoria protegida del acceso normal al proceso. En algunos sistemas operativos, la PCB se coloca en la parte inferior de la pila de proceso . [5]
{{cite book}}
: Mantenimiento CS1: varios nombres: lista de autores ( enlace )