Bloque de control de proceso
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 (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.
El núcleo de un sistema operativo almacena PCB en una tabla de procesos.
El directorio de trabajo actual de un proceso es una de las propiedades que el kernel almacena en la PCB del proceso.
Rol
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 con 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 correcta y eficiente del proceso. Aunque los detalles de estas estructuras dependen del sistema, los elementos comunes se dividen en tres categorías principales:
- Identificación de procesos
- Estado del proceso
- Control de procesos
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.
Losdatos 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 y el grupo de usuarios. identificador, etc. La identificación del proceso es particularmente relevante ya que a menudo se usa para hacer referencias cruzadas a las tablas definidas anteriormente, p. mostrando qué proceso está utilizando qué dispositivos de E/S o áreas de memoria.
Losdatos 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 lainformación de control de procesos para gestionar el proceso en sí. Esto incluye:
- Estado de programación de procesos – El estado del proceso en términos de "listo", "suspendido", etc., y otra información de programación, como el valor prioritario, la cantidad de tiempo transcurrido desde que el proceso ganó el control de la CPU o desde que fue suspendido. Además, en caso de un proceso suspendido, los datos de identificación de eventos deben ser registrados para el evento que el proceso está esperando;
- Información de estructuración del proceso – los niños del proceso id's, o el id de otros procesos relacionados con el actual de alguna manera funcional, que pueden ser representados como cola, un anillo u otras estructuras de datos;
- Interprocesar información de comunicación – banderas, señales y mensajes asociados a la comunicación entre procesos independientes;
- Privilegios de Procesos: acceso permitido/discapacitado a los recursos del sistema;
- Estado del proceso: nuevo, listo, corriendo, esperando, muerto;
- Número de proceso (PID) – número de identificación único para cada proceso (también conocido como ID de proceso);
- Program Counter (PC) – un puntero a la dirección de la siguiente instrucción que se ejecutará para este proceso;
- CPU Registros - conjunto de registro donde el proceso debe ser almacenado para la ejecución para el estado en ejecución;
- CPU Información de programación – tiempo de programación de información CPU;
- Gestión de memoria Información – tabla de página, límites de memoria, tabla de segmentos;
- Información de contabilidad: cantidad de CPU utilizada para la ejecución de procesos, plazos, identificación de ejecución, etc.;
- I/O Status Information – lista de dispositivos I/O asignados al proceso.
Ubicació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 en la parte inferior de la pila de proceso.