GNU/Linux >> Znalost Linux >  >> Linux

Co je linuxová procesní tabulka? Z čeho se skládá?

Tabulka procesů je datová struktura jádra který popisuje stav procesu (spolu s oblastí U procesu). Obsahuje pole, která musí být jádru vždy k dispozici.

Obsahuje následující pole:

  • pole stavu (které identifikuje stav procesu)
  • pole, která umožňují jádru najít proces a jeho oblast u v paměti
  • UID pro určení různých procesních oprávnění
  • PID pro specifikaci vztahů mezi černobílými procesy (např. fork)
  • deskriptor události (když je proces ve stavu spánku)
  • parametry plánování pro určení pořadí, ve kterém se proces přesune do stavů „jádro běží“ a „uživatel běží“
  • pole signálu pro signály odeslané do procesu, ale dosud nezpracované
  • časovače, které poskytují čas provádění procesu v režimu jádra a uživatelském režimu
  • pole, které udává velikost procesu (aby jádro vědělo, kolik prostoru má procesu přidělit).

Stručně řečeno, tabulka procesů poskytuje jádru informace o procesech.


Tabulka procesů v Linuxu (jako v téměř každém jiném operačním systému) je jednoduše datová struktura v paměti RAM počítače. Obsahuje informace o procesech, které OS aktuálně zpracovává.

Tyto informace zahrnují obecné informace o každém procesu

  • ID procesu
  • vlastník procesu
  • priorita procesu
  • proměnné prostředí pro každý proces
  • nadřazený proces
  • ukazuje na spustitelný strojový kód procesu.

Velmi důležitou informací v tabulce procesů je stav, ve kterém se každý proces aktuálně nachází. Tyto informace jsou pro OS zásadní, protože umožňují tzv. multiprocessing, tedy možnost virtuálně spouštět několik procesů pouze na jedné procesorové jednotce (CPU).

Informace o tom, zda je proces aktuálně AKTIVNÍ, SPÍCÍ, BĚŽENÝ atd., používá operační systém ke zpracování procesů.

Kromě toho jsou zde statistické informace, například kdy byl proces naposled SPUŠTĚN, aby mohl plánovač operačního systému rozhodnout, který proces by měl běžet jako další.

Stručně řečeno, tabulka procesů je ústředním organizačním prvkem operačního systému, který zvládá všechny spuštěné procesy.

Krátký úvod naleznete v tomto vláknu:

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

A wikipedie má také pěkné informace o procesech:

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

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


Každý proces je v operačním systému reprezentován blokem řízení procesu - také známý jako blok řízení úloh - který obsahuje následující

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

Více na https://www.technologyuk.net/computing/computer-software/operating-systems/


Linux
  1. Linux – Co znamená tečka za bity oprávnění souboru?

  2. Co znamená ve výstupu Ps?

  3. Linux – Co znamená rozložení paměti virtuálního jádra v Dmesg?

  1. Jaký je aktuální zdrojový kód jádra Linuxu?

  2. Jaká je definice relace v linuxu?

  3. Co znamená symbol linux pipe | dělat?

  1. Linux – Jak lze zkontrolovat informace o struktuře adresářů souboru Unix/linux?

  2. jaké zabijáky procesů má linux?

  3. Co znamená ./ (lomítko) v linuxu?