Bloque de control de procesos
De Wiki de Sistemas Operativos
Revisión del 17:48 2 mar 2011 de Ajaest (discusión | contribuciones)
Para llevar acabo la gestión de un proceso, es necesario que el sistema operativo guarde cierta información necesaria. A ésta estructura se le conoce como el bloque de control del proceso o PCB (Process Control Block).
El bloque de control de procesos difiere mucho de un sistema a otros pero existen contenidos comunes:
- Identificador del proceso: Identificar de forma unívoca al proceso en el sistema, generalmente se emplea un entero sin signo que se denomina PID (Process IDentifier).
- Estado del proceso para el planificador de procesos (preparado, activo o bloqueado).
- Contexto de la ejecución: valor de los registros del procesador, bits de estados, etc.
- Aspectos relacionados con la administración de memoria, tales como el espacio de direcciones y la cantidad de memoria asignada a un proceso.
- Aspectos relacionados con la administración de ficheros, tales como los ficheros con los que el proceso está actualmente operando.
- En caso de soportar el sistema multiprocesador, los procesadores en los que el proceso puede ejecutarse.
- En el caso de un sistema operativo tipo UNIX, el proceso padre de dicho proceso y la relación de procesos hijos.
- Estadísticas temporales: Tiempo de lanzamiento del proceso, tiempo en estado activo, etc.
En Linux, al PCB se le denomina Task Struct, se puede consultar dicha estructura en:
http://lxr.linux.no/#linux+v2.6.37.2/include/linux/sched.h#L1182
En el núcleo de Minix, al PCB se le denomina Process table, puede consultarse su implementación en el siguiente enlace:
http://www.cise.ufl.edu/~cop4600/cgi-bin/lxr/http/source.cgi/kernel/proc.h