Diferencia entre revisiones de «Bloque de control de procesos»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
 
(No se muestran 13 ediciones intermedias de 4 usuarios)
Línea 1: Línea 1:
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)'''.
+
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.
  
* 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).
+
El bloque de control de procesos difiere mucho de un sistema a otros, pero existen contenidos comunes:
  
* Estado del proceso para el planificador de procesos (preparado, activo o bloqueado).
+
* '''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)
  
* Contexto de la ejecución: valor de los registros del procesador, bits de estados, etc.
+
* '''Nombre del proceso'''.
  
* Aspectos relacionados con la administración de memoria, tales como el espacio de direcciones y la cantidad de memoria asignada a un proceso.
+
* '''Estado del proceso para el planificador de procesos:''' preparado, activo o bloqueado.
  
* Aspectos relacionados con la administración de ficheros, tales como los ficheros con los que el proceso está actualmente operando.
+
* '''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).
  
* En caso de soportar el sistema multiprocesador, los procesadores en los que el proceso puede ejecutarse.
+
* '''Aspectos relacionados con la administración de memoria:''' tales como el espacio de direcciones y la cantidad de memoria asignada a un proceso.
  
* En el caso de un sistema operativo tipo UNIX, el proceso padre de dicho proceso y la relación de procesos hijos.
+
* '''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.
  
* 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:
 
En Linux, al PCB se le denomina ''Task Struct'', se puede consultar dicha estructura en:
Línea 28: Línea 33:
  
 
http://www.cise.ufl.edu/~cop4600/cgi-bin/lxr/http/source.cgi/kernel/proc.h
 
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