Diferencia entre revisiones de «Bloque de control de procesos»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Página nueva: 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 ...)
 
 
(No se muestran 18 ediciones intermedias de 7 usuarios)
Línea 1: Línea 1:
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)'''.
+
Para llevar a cabo la gestión de un proceso, es necesario que el sistema operativo guarde cierta información necesaria. Para ello, existe un registro especial que se conoce como '''el bloque de control del proceso BCP, o PCB en inglés (Process Control Block)'''.  
  
El bloque de control de procesos difiere mucho de un sistema a otros pero existen contenidos comunes:
+
El BCP es creado por el Sistema operativo cada vez que aparece un nuevo proceso. Los procesos son conocidos para el sistema operativo y por tanto elegibles para competir por los recursos del sistema sólo cuando existe un BCP activo asociado a ellos. Cuando el programa termina, el BCP es eliminado para dejar espacio libre en el registro, y usarlo para almacenar otros BCP.
  
. Identificación del proceso: Para identificar el proceso se puede utilizar tanto como un nombre como un número de identificación conocido como pid (process identification number). A veces se usan ambos.
+
El bloque de control de procesos difiere mucho de un sistema a otros, pero existen contenidos comunes:
  
. Prioridad del proceso o el tipo.
+
* '''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 (preparado, activo, suspendido, etc.).
+
* '''Nombre del proceso'''.
  
. Estado actual del procesador (registros, bits de estados, etc.)
+
* '''Estado del proceso para el planificador de procesos:''' preparado, activo o bloqueado.
  
. Información y estadísticas sobre la planificación y la utilización de los recursos.
+
* '''Contexto de la ejecución:''' valor de los registros del procesador, bits de estados, etc. Esto es, cada vez que se ejecuta el planificador y se realiza una [[Conmutación de procesos|conmutación de procesos]], la información sobre en qué lugar se encontraba la ejecución del proceso se encuentra guardada aquí, así como el lugar en el que se paró la ejecución del anterior proceso (cada una en su  respectivo BCP).
  
. Información de la gestión de memoria (tablas, mapas, registros, etc.).
+
* '''Aspectos relacionados con la administración de memoria:''' tales como el espacio de direcciones y la cantidad de memoria asignada a un proceso.
  
. Estado de L/E (asignación de dispositivos, operaciones en espera).
+
* '''Aspectos relacionados con la administración de ficheros:''' tales como los ficheros con los que el proceso está actualmente operando.
  
. Información de los archivos abiertos.
+
* '''Los procesadores en los que el proceso puede ejecutarse:''' en caso de soportar el sistema multiprocesador.
 +
 
 +
* '''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
 +
 
 +
En el xv6, la estructura es pequeña y se puede consultar en el siguiente enlace:
 +
 
 +
https://github.com/mit-pdos/xv6-public/blob/master/proc.h#L37
 +
 
 +
3.6.[[Conmutación de procesos| La conmutación de procesos]]

Revisión actual del 17:19 2 abr 2020

Para llevar a cabo la gestión de un proceso, es necesario que el sistema operativo guarde cierta información necesaria. Para ello, existe un registro especial que se conoce como el bloque de control del proceso BCP, o PCB en inglés (Process Control Block).

El BCP es creado por el Sistema operativo cada vez que aparece un nuevo proceso. Los procesos son conocidos para el sistema operativo y por tanto elegibles para competir por los recursos del sistema sólo cuando existe un BCP activo asociado a ellos. Cuando el programa termina, el BCP es eliminado para dejar espacio libre en el registro, y usarlo para almacenar otros BCP.

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)
  • Nombre del proceso.
  • 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. Esto es, cada vez que se ejecuta el planificador y se realiza una conmutación de procesos, la información sobre en qué lugar se encontraba la ejecución del proceso se encuentra guardada aquí, así como el lugar en el que se paró la ejecución del anterior proceso (cada una en su respectivo BCP).
  • 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.
  • Los procesadores en los que el proceso puede ejecutarse: en caso de soportar el sistema multiprocesador.
  • 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

En el xv6, la estructura es pequeña y se puede consultar en el siguiente enlace:

https://github.com/mit-pdos/xv6-public/blob/master/proc.h#L37

3.6. La conmutación de procesos