Un PCB o bloque de control de proceso , se define así en Wikipedia
El Bloque de control de procesos (PCB, también llamado Bloque de control de tareas, [1] Estructura de tareas o Frameframe) es una estructura de datos en el núcleo del sistema operativo que contiene la información necesaria para administrar un proceso en particular. El PCB es "la manifestación de un proceso en un sistema operativo
y su deber es:
Process identification data
Processor state data
Process control data
Entonces, ¿dónde se puede encontrar la PCB de un proceso?
Respuestas:
En el kernel de Linux, cada proceso está representado por un
task_struct
en una lista doblemente enlazada, cuyo encabezado esinit_task
(pid 0, no pid 1). Esto se conoce comúnmente como la tabla de procesos .En modo de usuario, la tabla de proceso es visible para los usuarios normales debajo
/proc
. Tomando los encabezados para su pregunta:Los datos de identificación del proceso son el ID del proceso (que se encuentra en la ruta
/proc/<process-id>/...
), la línea de comando (cmd
) y posiblemente otros atributos según su definición de 'identificación'.Los datos de estado del proceso incluyen datos de programación (
sched
,stat
yschedstat
), qué espera el proceso actualmente (wchan
), su entorno (environ
), etc.Se podría decir que los datos de control de proceso son sus credenciales (
uid_map
) y límites de recursos (limits
).Entonces, todo depende de cómo defina sus términos ... pero en general, todos los datos sobre un proceso se pueden encontrar en
/proc
.fuente
init_task
(pid 0, no pid 1)" No existe tal cosa comoinit_task
. Esinit
, y su pid es 1, no 0 (confirmado a través depidof init
).pid
es solo para procesos ...