GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la tabella dei processi Linux? In cosa consiste?

La tabella dei processi è una struttura di dati del kernel che descrive lo stato di un processo (insieme al processo U Area). Contiene campi che devono essere sempre disponibili per il kernel.

Contiene i seguenti campi :

  • campo stato (che identifica lo stato del processo)
  • campi che consentono al kernel di localizzare il processo e la sua area u in memoria
  • UID per determinare vari privilegi di processo
  • PID per specificare relazioni b/n processi (ad es. fork)
  • descrittore di eventi (quando il processo è in stato di sospensione)
  • parametri di pianificazione per determinare l'ordine in cui il processo passa agli stati "kernel in esecuzione" e "utente in esecuzione"
  • campo signal per i segnali inviati al processo ma non ancora gestiti
  • timer che forniscono il tempo di esecuzione del processo in modalità kernel e modalità utente
  • campo che fornisce la dimensione del processo (in modo che il kernel sappia quanto spazio allocare per il processo).

In breve, la tabella dei processi fornisce informazioni sui processi al kernel.


La tabella dei processi in Linux (come in quasi tutti gli altri sistemi operativi) è semplicemente una struttura dati nella RAM di un computer. Contiene informazioni sui processi attualmente gestiti dal sistema operativo.

Queste informazioni includono informazioni generali su ciascun processo

  • ID processo
  • proprietario del processo
  • priorità del processo
  • variabili d'ambiente per ogni processo
  • il processo padre
  • puntatori al codice macchina eseguibile di un processo.

Un'informazione molto importante nella tabella dei processi è lo stato in cui si trova attualmente ciascun processo. Queste informazioni sono essenziali per il sistema operativo, perché abilitano il cosiddetto multiprocessing, ovvero la possibilità di eseguire virtualmente più processi su una sola unità di elaborazione (CPU).

L'informazione se un processo è attualmente ATTIVO, DORMIRE, IN ESECUZIONE, ecc. viene utilizzata dal sistema operativo per gestire l'esecuzione dei processi.

Inoltre ci sono informazioni statistiche come quando il processo è stato IN ESECUZIONE l'ultima volta per consentire allo schedulr del sistema operativo di decidere quale processo dovrebbe essere eseguito successivamente.

Quindi, in sintesi, la tabella dei processi è l'elemento organizzativo centrale per il sistema operativo per gestire tutti i processi avviati.

Una breve introduzione può essere trovata in questo thread:

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

E wikipedia ha anche belle informazioni sui processi:

http://en.wikipedia.org/wiki/Process_management_(computing)#Process_description_and_control

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


Ogni processo è rappresentato nel sistema operativo da un blocco di controllo del processo - noto anche come blocco di controllo attività - che contiene quanto segue

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

Per ulteriori informazioni, https://www.technologyuk.net/computing/computer-software/operating-systems/


Linux
  1. Linux:cosa significa un punto dopo i bit di autorizzazione del file?

  2. Cosa significa nell'output di Ps?

  3. Linux:cosa implica il layout della memoria del kernel virtuale in Dmesg?

  4. Cosa significa __init nel codice del kernel di Linux?

  5. Qual è l'attuale sorgente del kernel Linux?

Che cos'è la shell in Linux?

Qual è il comando kill in Linux?

Cosa significa &alla fine di un comando Linux?

Cos'è un processo interrotto in Linux?

quali processi killer ha Linux?

Cosa significa il suffisso .d in Linux?