Procesy – Linux

Pochopení základních mechanizmů, jak procesy vznikají, vykonávají se a končí je nejnutnějším základem pro pokusy o programování na nižší úrovni běhu. V následujícím textu bude popsáno několik linuxových utilit, které se starají o zprostředkování informací týkajících se běžících procesů.

Základem je pochopení pojmu proces. Proces je každý program (aplikace), který v operačním systému běží. Pokud například spustíme emulátor terminálu, tak se spustí program (proces), který zobrazí terminál. Když potom v terminálu zadáme libovolný příkaz (například ls), tak se spustí proces, který vylistuje aktuální adresář, výsledky vrátí terminálu a ukončí se.

Z odstavce výše vyplývá, že každý proces musí mít nějakého vlastníka. V případě emulátoru terminálu je vlastníkem ten, kdo ho spustil (přihlášený uživatel). Každý proces má navíc svého rodiče. V příkladu výše je rodičem procesu ls proces, který spustil emulátor terminálu.

Každý proces navíc musí v systému být jednoznačně identifikován. Pro uživatele jsou procesy pojmenovány většinou podle toho, jak se jmenuje aplikace, kterou proces obstarává. Z hlediska operačního systému jsou ale procesy identifikovány pomocí PID (process id). ID se procesům přidělují sekvenčně. První spuštěný proces je vždy init s PID = 1, který je rodičem (i když třeba nepřímým) všech později spuštěných procesů.

Získat informace o právě běžících procesech je v linuxových operačních systémech vcelku lehká záležitost. Každý běžící proces má vlastní „složku“ v process file systému. K informacím zde uloženým přistoupíme například příkazem cat /proc/PID/status

Vyčítání informací touto cestou ale není příliš efektivní. Vznikly proto utility, jako například ps, které vyčtou a zobrazí ty samé informace, ale lépe strukturované. Utilita ps má mnoho parametrů, zájemce proto odkážu na manuálové stránky, kde se dozvědí vše potřebné. Spuštění ps bez parametrů vede k výpisu všech procesů, které jsou potomkem (mají jako rodiče) aktuálního terminálu.

Pro vypsání všech aktuálně běžících procesů je potřeba předat navíc parametry:

  • a – všechny procesy spojené s terminálem (tty)
  • x – všechny procesy vlastněné uživatelem (společně s a vypíše úplně všechny procesy)
  • u – zobrazit výpis uživatelsky přívětivě

Nástrojů pro práci s procesy existuje ještě celá řada. Procesy se dají například sledovat podle toho, jak systém vytěžují a některé z nich poté násilně ukončit (zabít). Pro tyto aktivity slouží například utility jako top, htop, kill.

Mohlo by se vám líbit...

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *