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 emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *