Přeskočit na obsah

Proces (informatika)

Z Wikipedie, otevřené encyklopedie
(rozdíl) ← Starší revize | zobrazit aktuální verzi (rozdíl) | Novější revize → (rozdíl)

V počítačové terminologii je proces název pro spuštěný počítačový program. Programem označujeme sled počítačových instrukcí, které jsou uloženy v souboru. Procesem je pak program zavedený do operační paměťi, který je prováděn procesorem. Proces obsahuje nejen kód programu, ale i dynamicky se měnící data, která proces zpracovává.


Úvod

Proces v počítači spojujeme se systémovými prostředky, které mu přidělil operační systém. Můžeme říkat, že tyto prostředky proces vlastní. Většina těchto informací je uložena ve speciální datové struktuře jádra operačního systému, kterou nazýváme PCB (Process Control Block).

  • spustitelný kód programu umístěný v souboru na disku
  • paměť, do které je program umístěn (tj. strojové instrukce nebo jejich část)
  • paměť pro zásobník a data, která proces zpracovává
  • prostředí procesu (otevřené soubory, proměnné prostředí)
  • bezpečnostní informace o procesu (vlastník, oprávnění apod.)
  • přidělené systémové prostředky
  • stav procesoru (uchovávaný kvůli změně kontextu)
  • atd.


Změna kontextu

Moderní operační systémy umožňují spustit v jeden okamžik více procesů (tzv. multitasking), takže můžeme spustit jeden program vícekrát a vznikne tak řada různých procesů, které se navzájem liší a střídají se v počítači na jednom nebo více procesorech (viz změna kontextu).

Životní cyklus procesu

Životní cyklus procesu probíhá pode diagramu stavových přechodů. U několika soupeřících procesů je zařazení k běhu řízeno pravidly: časová kvanta, priorita, či bez možnosti přerušení Přepínání procesů je značně časově náročné a může vyhovovat jen pro toleranci událostí s dlouhou latencí (např.: přístup na disk).

  • Proces je vytvořen buď příkazem uživatele (u terminálu) nebo na žádost operačního systému o provedení služby či na žádost jiného procesu (rodiče).
  • Takto vytvořený proces je ve stavu „neběžícím“ – připravený k vykonání a čeká pouze na přidělení procesoru .
  • Spuštěním procesu, na základě plánovacího algoritmu přechází proces do stavu „běžící“(running)
    • Tento proces může být ukončen normálně, tj. byl celý proveden, nebo násilně vypršením časového limitu či uživatelem, provedením chybné instrukce, chybou V/V zařízení, porušením ochrany paměti, nebo na žádost rodiče apod.
    • „Běžící“ proces může být potlačen na základě časového limitu, vyšší prioritou apod. a přechází do stavu neběžící.
  • Ve stavu „běžící“ může být jen jeden proces realizován jedním procesorem, kdežto ve stavu „neběžícím“ může být více procesů zařazených do fronty.
Životní cyklus procesu

Základní stavy procesů

Následující stavy procesů se vyskytují ve všech počítačových systémech. Ve většině jsou procesy “uloženy” v hlavní paměti.

Vytvořený (created) – proces je vytvořen buď příkazem uživatele (u terminálu) nebo na žádost operačního systému o provedení služby či na žádost jiného procesu (rodiče)

Čekající (waiting) – proces čeká na určitou událost, např. dokončení I/O operace

Připravený (ready) – připravený pro vstup do stavu běžící, čeká pouze na přidělení procesoru

Běžící (running) – procesu je přidělen procesor a právě se provádí příslušné programy

Blokovaný (blocked) – proces je převeden do tohoto stavu v případě, kdy čeká na dokončení nějaké I/O operace, případně na skončení jiného procesu, uvolnění zdroje a podobně

Ukončený (terminated) – proces skončí

Rozšířené stavy procesů

Dva přidané stavy jsou dostupné pro procesy v systémech, které podporují virtuální paměť. Oba tyto stavy jsou uloženy sekundární paměti (typicky pevný disk).

Odložený a blokovaný (suspend blocked) – procesy, které jsou blokovány mohou být také odloženy. V tom případě je proces jak odsunut tak i blokován. V případě, že se fronta připravených vyprázdnila (nebo alespoň téměř vyprázdnila), pak přechází proces ze stavu „odložený připravený“ do stavu „připravený“.

Odložený a čekající (suspend waiting) – v systémech které podporují virtuální paměť mohou být procesy odsunuty z hlavní paměti a umístěny do virtuální. Odtud pak může být proces přesunut zpátky do stavu čekající.

Thread

Pokud je v počítači méně procesorů, než je běžících procesů, musejí se procesy střídat. Této činnosti říkáme změna kontextu (context switch). Tato změna je poměrně náročná a proto byly zavedeny thready, které mají režii přepnutí nižší. Uspoří se zejména na tom, že thready sdílejí jeden paměťový prostor. To jim též umožňuje velmi rychlou a efektivní komunikaci.


Stavy procesu

Správa procesů

Komunikace mezi procesy

Historie

Odkazy