Diferencia entre revisiones de «Bloque de control de procesos»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
Línea 22: Línea 22:
  
 
http://lxr.linux.no/#linux+v2.6.37.2/include/linux/sched.h#L1182
 
http://lxr.linux.no/#linux+v2.6.37.2/include/linux/sched.h#L1182
 +
 
http://lxr.linux.no/linux+v3.0.4/include/linux/sched.h#L1220
 
http://lxr.linux.no/linux+v3.0.4/include/linux/sched.h#L1220
  

Revisión del 17:16 6 oct 2011

Para llevar a cabo 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

http://lxr.linux.no/linux+v3.0.4/include/linux/sched.h#L1220

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