Multitasking: proces na pozadí a proces popředí

Jako operační systém multitasking podporuje linux spouštění mnoha procesů - v podstatě programů nebo příkazů nebo podobných úkolů - na pozadí, zatímco pracujete v popředí.

Prvotní procesy

Procesem v popředí je jakýkoli příkaz nebo úkol, který spustíte přímo a počkejte na dokončení. Některé procesy na popředí ukazují nějaký typ uživatelského rozhraní, které podporuje průběžnou interakci s uživatelem, zatímco jiní provádějí úlohu a "zmrazí" počítač během jeho dokončení.

Z shellu začíná proces popředí zadáním příkazu na výzvu. Chcete-li například zobrazit jednoduchý výpis souborů v aktivním adresáři, zadejte:

$ ls

Zobrazí se seznam souborů. Zatímco počítač připravuje a tiskne tento seznam, nemůžete z příkazového řádku dělat nic jiného.

Proces pozadí

Na rozdíl od procesů v popředí nemusí shell čekat na ukončení procesu na pozadí, než může spustit více procesů. V mezích množství dostupné paměti můžete zadat mnoho povelů na pozadí jeden po druhém. Chcete-li spustit příkaz jako proces na pozadí, zadejte příkaz a přidejte mezery a ampersand na konec příkazu. Například:

$ command1 &

Když vydáte příkaz s koncovou hodnotou ampersand, shell vykoná práci, ale místo toho, abyste počkali na dokončení příkazu, okamžitě se vrátíte do shellu a uvidíte příkaz shell (% for C Shell a $ pro Bourne Shell a Korn Shell). V tomto okamžiku můžete zadat další příkaz pro proces popředí nebo pozadí. Práce na pozadí jsou spuštěny s nižší prioritou na úlohy v popředí.

Zobrazí se zpráva na obrazovce po dokončení procesu na pozadí.

Přepínání mezi procesy

Pokud proces v popředí trvá příliš dlouho, zastavte jej stisknutím kombinace kláves CTRL + Z. Ukončená úloha stále existuje, ale její spuštění je pozastaveno. Chcete-li pokračovat v úloze, ale na pozadí, zadejte příkaz bg pro odeslání zakázané úlohy na pozadí.

Chcete-li pokračovat v pozastaveném procesu v popředí, zadejte příkaz fg a tento proces převezme aktivní relaci.

Chcete-li zobrazit seznam všech pozastavených procesů, použijte příkaz úlohy nebo pomocí příkazu top zobrazte seznam nejvíce úloh náročných na CPU, abyste mohli pozastavit nebo zastavit uvolnění systémových prostředků.

Shell vs. GUI

Multitasking funguje odlišně v závislosti na tom, zda pracujete z shellu nebo grafického uživatelského rozhraní . Linux z shellu podporuje pouze jeden aktivní proces popředí na virtuální terminál. Nicméně, z praktického pohledu uživatele, prostředí s oknem (např. Linux s desktop, ne z textového shellu) podporuje několik aktivních oken, které účinně slouží jako více simultánních procesů v popředí. V praxi Linux v zákulisí upravuje prioritu procesů v grafickém rozhraní pro podporu stability systému a podporu zpracování koncového uživatele.