Číslo procesu

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Číslo procesu (PID) je v informatice číslo, pod kterým je v jádře operačního systému jednoznačně evidován proces. Čísla procesů používají jádra unixových systémů, Microsoft Windows, OS X i dalších. Číslo procesu je používáno v různých funkcích, které umožňují manipulovat s procesy (například měnit jejich prioritu nebo je ukončovat).

Unix-like systémy

V operačních systémech na bázi Unixu jsou nové procesy vytvářeny systémovým voláním fork. Číslo PID je vráceno rodičovskému procesu za účelem umožnění odkázání se na tento proces v dalších voláních. +more Rodičovský proces například může na dětský proces vyčkat pomocí systémového volání wait anebo tento proces pomocí volání kill ukončit.

V Unixových systémech existuje několik speciálních PID čísel. Swapper neboli sched má procesové číslo 0 a je zodpovědný za stránkování, ve skutečnosti se jedná o část jádra a ne o klasický uživatelský proces. +more Procesem číslo 1 je obvykle init proces, který se stará o nastartování a vypnutí systému. Původně nebylo pro tento proces číslo 1 nijak vyhrazeno žádnými technickými opatřeními, měl číslo jedna pouze kvůli tomu, že se jednalo o první proces, který byl jádrem spuštěn. V nejnovějších Unixových systémech mají jádra typicky další komponenty viditelné jako procesy, což způsobilo nutnost aktivního vyhrazení čísla 1 pro init proces, aby byla dodržena konzistence se staršími systémy.

Čísla PID jsou procesům přidělována sekvenčně. Začínají od nuly a vzrůstají až do maximální systémem stanovené hodnoty (její konkrétní velikost se liší systém od systému). +more Jakmile je této hodnoty dosaženo, přiřazování čísel novým procesům začíná znovu od čísla 300 a proces se opakuje. V systémech macOS a HP-UX přiřazování začíná znovu od čísla 100. Čísla již přiřazená existujícím procesům se přeskakují. Některé systémy, mezi které patří například MPE/iX, používají nejnižší dostupné číslo PID ve snaze minimalizovat paměť zabranou informacemi o procesech.

Číslo současného procesu může být získáno pomocí volání getpid anebo pomocí proměnné $$ ve shellu. Číslo rodičovského procesu je dostupné pomocí systémového volní getppid.

V operačním systému Linux lze získat maximální přidělené PID pomocí pseudosouboru /proc/sys/kernel/pid_max.

Microsoft Windows

Na systémech typu Microsoft Windows může být získáno číslo současného procesu pomocí API funkce GetCurrentProcessID a čísla ostatních procesů pomocí API funkce GetProcessID.

Interně jsou čísla procesů nazývána jako ID klienta (angl. client ID) a jsou přidělována ze stejného prostoru, jako čísla vláken, což znamená, že tyto čísla se nepřekrývají. +more Procesu nazývanému System Idle Process je rezervováno PID 0 a procesu nazývanému System Process je rezervováno číslo 4. V Některých verzích systému Windows jsou identifikátory procesu a vláken násobky 4, ale není to specifikováno ve specifikaci.

Soubory .pid

Některé procesy, například MySQL démon, zapisují jejich číslo PID do PID souboru se známou lokací, aby umožnily dalším procesům je vyhledat.

Související články

Identifikace uživatele * Group identifier

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top