Un bloque de control de proceso ( 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 (se inicializa o se instala), 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 las PCB en una tabla de procesos. [2]
El directorio de trabajo actual de un proceso es una de las propiedades que el núcleo almacena en la PCB del proceso. [3]
El papel de las PCB es central en la gestión de procesos : la mayoría de las empresas de servicios públicos acceden a ellas y/o las modifican, en particular aquellas involucradas 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 de procesos correcta y eficiente. [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 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 buffers de memoria utilizados para ellas, etc.
Los datos de identificación de proceso incluyen un identificador único para el proceso (casi invariablemente un número entero) y, en un sistema multiusuario-multitarea, datos tales como el identificador del proceso padre, el identificador de usuario, el identificador de grupo de usuarios, etc. El identificador de proceso es particularmente relevante ya que a menudo se utiliza para hacer referencias cruzadas de las tablas definidas anteriormente, por ejemplo, mostrando qué proceso está utilizando qué dispositivos de E/S o áreas de memoria.
Los datos de 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 propósito general, la palabra de estado del proceso de CPU, los punteros de pila y de marco, etc. Durante el cambio de contexto , el proceso en ejecución se detiene y se ejecuta otro proceso. El núcleo 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 guardarse en un área de la memoria protegida del acceso normal de los procesos. En algunos sistemas operativos, la PCB se coloca en la parte inferior de la pila de procesos . [5]
{{cite book}}
: CS1 maint: varios nombres: lista de autores ( enlace )