Estructura y Gestión del Bloque de Control de Procesos (PCB) en Sistemas Operativos
Enviado por Comunidad Xuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 5,54 KB
Estructura y Gestión del Bloque de Control de Procesos (PCB)
El Bloque de Control de Procesos (PCB) es una estructura de datos fundamental donde se almacenan todos los atributos de un proceso, es decir, la información asociada necesaria para su administración. En un sistema de multiprogramación, se requiere una gran cantidad de información detallada de cada proceso para su correcta gestión.
Tabla de Procesos
El conjunto de todos los PCB se guarda en una estructura del Sistema Operativo (S.O.) denominada tabla de procesos.
- El acceso a los PCB debe ser rápido.
- Cuando un proceso finaliza, el S.O. lo remueve de la tabla de procesos y libera todos los recursos que tenía asignados.
- El conjunto de los bloques de control de procesos define el estado del sistema operativo en un momento dado.
Estructura del Bloque de Control de Procesos (PCB)
El PCB suele estar estructurado en tres partes principales:
1. Identificación del Proceso
A cada proceso se le asigna un identificador numérico único (tan simple como un índice en la tabla de procesos).
2. Información del Estado del Proceso (Contexto)
Se almacena toda la información relativa al contenido de los registros del procesador. Cuando se interrumpe un proceso, el contenido de estos registros debe guardarse de forma que pueda restaurarse cuando el proceso reanude su ejecución.
3. Información de Control del Proceso
Información necesaria para que el sistema operativo controle y coordine los diferentes procesos.
Detalle de la Información Contenida en el PCB
Identificador de Procesos
- Identificador de este proceso.
- Identificador del proceso que creó a este proceso (proceso padre).
- Identificador de usuario.
Información de Estado del Procesador (Contexto)
- Registros generales: visibles para el usuario.
- Contador de programa: contiene la dirección de la próxima instrucción a ejecutar.
- Códigos de condición: muestran el resultado de la operación aritmética o lógica más reciente (signo, cero, acarreo, desbordamiento).
- Información de estado: indicadores de habilitación e inhabilitación de interrupciones; puntero de pila.
Información de Control de Proceso
- Estado del proceso: preparado, en ejecución, suspendido, etc.
- Prioridad de un proceso.
- Información de planificación: depende del algoritmo de planificación (ejemplo: cantidad de tiempo que el proceso ha estado esperando y cuándo se ejecutó la última vez).
- Suceso (evento): identidad del suceso que el proceso está esperando antes de reanudarse (solicitudes de E/S pendientes).
- Mapa de memoria: memoria de código, memoria de datos y memoria de pila.
Operaciones sobre Procesos
Creación de Procesos
Cuando un nuevo proceso se agrega a los que actualmente están siendo administrados, el sistema de operación construye las estructuras de datos usadas para administrar los procesos (PCB) y le asigna espacio de direcciones. Estas acciones constituyen la creación de un nuevo proceso. Esta creación implica una serie de pasos:
- Dar un identificador único al nuevo proceso.
- Reservar espacio en memoria.
- Rellenar los datos del PCB.
- Establecer los enlaces adecuados de este proceso con otros.
- Crear las estructuras de datos vinculadas al propio proceso.
Situaciones que pueden llevar a la creación de un proceso
- Por la entrada de un trabajo en modo batch.
- Por la conexión de un nuevo usuario al sistema.
- Por el propio S.O. para dar respuesta a alguna necesidad.
- Puede ser creado a partir de uno ya existente.
Destrucción de Procesos
Implica eliminar el proceso de las tablas y devolver al sistema los recursos que estuviese utilizando. La destrucción de un proceso implica la destrucción de sus procesos hijos.
Razones por las que puede terminar un proceso
- En forma normal:
exit(),halt(): llamadas al sistema que desasignan los recursos del proceso. - Memoria no disponible: el proceso requiere más memoria de la que el sistema puede proveerle.
- Violación de límites: el proceso trata de acceder una dirección de memoria que no se le permite acceder.
- Error de protección: el proceso trata de usar un recurso o un archivo que no le es permitido acceder o trata de usarlo en forma incorrecta.
- Errores aritméticos.
- Falla de E/S.
- Instrucción inválida o privilegiada.
- Error en dato.
- Intervención del S.O.
- Terminación del padre.
Más Operaciones de Gestión sobre los Procesos
Otras operaciones esenciales incluyen:
- Suspender un proceso.
- Reanudar un proceso.
- Cambiar su prioridad.
- Bloquear un proceso.
- Despertar un proceso.
- Despachar un proceso.
- Implementar un sistema de comunicación entre procesos.
La creación de procesos a partir de un primer proceso padre da lugar a una estructura jerárquica de procesos; cada padre puede tener múltiples hijos, pero cada hijo solo tiene un padre.