GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué es la tabla de procesos de Linux? ¿En qué consiste?

La tabla de procesos es una estructura de datos del núcleo que describe el estado de un proceso (junto con el área U del proceso). Contiene campos que siempre deben estar disponibles para el kernel.

Contiene los siguientes campos:

  • campo de estado (que identifica el estado del proceso)
  • campos que permiten al núcleo ubicar el proceso y su área u en la memoria
  • UID para determinar varios privilegios de proceso
  • PID para especificar relaciones entre procesos (por ejemplo, bifurcación)
  • descriptor de evento (cuando el proceso está en estado de suspensión)
  • parámetros de programación para determinar el orden en que el proceso pasa a los estados "kernel en ejecución" y "usuario en ejecución"
  • campo de señal para señales enviadas al proceso pero aún no manejadas
  • temporizadores que dan tiempo de ejecución del proceso en modo kernel y modo usuario
  • campo que proporciona el tamaño del proceso (para que el núcleo sepa cuánto espacio asignar para el proceso).

En resumen, la tabla de procesos brinda información sobre los procesos al kernel.


La tabla de procesos en Linux (como en casi todos los demás sistemas operativos) es simplemente una estructura de datos en la memoria RAM de una computadora. Contiene información sobre los procesos que maneja actualmente el sistema operativo.

Esta información incluye información general sobre cada proceso

  • identificación del proceso
  • propietario del proceso
  • prioridad del proceso
  • variables de entorno para cada proceso
  • el proceso padre
  • punteros al código de máquina ejecutable de un proceso.

Una información muy importante en la tabla de procesos es el estado en que se encuentra actualmente cada proceso. Esta información es esencial para el sistema operativo, ya que permite el llamado multiprocesamiento, es decir, la posibilidad de ejecutar virtualmente varios procesos en una sola unidad de procesamiento (CPU).

El sistema operativo utiliza la información de si un proceso está actualmente ACTIVO, DORMIDO, EN EJECUCIÓN, etc. para manejar la ejecución de los procesos.

Además, hay información estadística como cuándo se EJECUTÓ el proceso por última vez para permitir que el programador del sistema operativo decida qué proceso debe ejecutarse a continuación.

Entonces, en resumen, la tabla de procesos es el elemento organizativo central para que el sistema operativo maneje todos los procesos iniciados.

Puede encontrar una breve introducción en este hilo:

https://web.archive.org/web/20190817081256/http://www.linuxforums.org/forum/kernel/42062-use-process-table.html

Y wikipedia también tiene buena información sobre los procesos:

http://en.wikipedia.org/wiki/Process_management_(informática)#Process_description_and_control

http://en.wikipedia.org/wiki/Process_table


Cada proceso está representado en el sistema operativo por un bloque de control de procesos - también conocido como bloque de control de tareas - que contiene lo siguiente

Process management
Registers
Program counter
Program status word
Stack pointer
Process state
Priority
Scheduling parameters Process ID
Parent process
Process group
Signals
Time when process started CPU time used
Children’s CPU time
Time of next alarm

Memory management
Pointer to text segment info 
Pointer to data segment info 
Pointer to stack segment info


File management
Root directory Working directory File descriptors User ID
Group ID

Para obtener más información, https://www.technologyuk.net/computing/computer-software/operating-systems/


Linux
  1. Linux:¿cómo se inspecciona la información de la estructura del directorio de un archivo Unix/linux?

  2. En Linux, ¿qué significan todos los valores en el comando superior?

  3. ¿Qué significa __init en el código del kernel de Linux?

  4. ¿Qué significa &al final de un comando de Linux?

  5. ¿Cuál es la definición de una sesión en Linux?

¿Qué es el Shell en Linux?

¿Qué es el comando matar en Linux?

¿Cuál es la fuente actual del kernel de Linux?

¿Qué es un proceso detenido en Linux?

¿Qué significa ./ (punto barra oblicua) en Linux?

¿Qué significa el sufijo .d en Linux?