logo

Přepínání kontextu v OS (operační systém)

Kontextové přepínání je technika nebo metoda používaná operačním systémem k přepínání procesu z jednoho stavu do druhého za účelem provedení jeho funkce pomocí CPU v systému. Při přepínání výkonu v systému ukládá stav starého běžícího procesu ve formě registrů a přiřazuje CPU novému procesu, aby vykonával své úkoly. Zatímco v systému běží nový proces, předchozí proces musí čekat ve frontě připravené k použití. Provádění starého procesu začíná v místě, kde jej jiný proces zastavil. Definuje vlastnosti multitaskingového operačního systému, ve kterém více procesů sdílí stejný CPU pro provádění více úkolů bez potřeby dalších procesorů v systému.

Potřeba přepínání kontextu

Přepínání kontextu pomáhá sdílet jeden CPU napříč všemi procesy, aby se dokončilo jeho provádění a uložil se stav úloh systému. Když se proces znovu načte do systému, provádění procesu začíná ve stejném bodě, kde došlo ke konfliktu.

Níže jsou uvedeny důvody, které popisují potřebu přepínání kontextu v operačním systému.

  1. Přepínání jednoho procesu na jiný proces není přímo v systému. Přepínání kontextu pomáhá operačnímu systému, který přepíná mezi více procesy, využívat prostředky CPU k plnění svých úkolů a ukládání kontextu. Službu procesu můžeme obnovit ve stejném bodě později. Pokud neuložíme data nebo kontext aktuálně běžícího procesu, může dojít ke ztrátě uložených dat při přepínání mezi procesy.
  2. Pokud proces s vysokou prioritou spadá do fronty připravenosti, aktuálně běžící proces bude ukončen nebo zastaven procesem s vysokou prioritou, aby dokončil své úkoly v systému.
  3. Pokud nějaký běžící proces vyžaduje I/O zdroje v systému, aktuální proces bude přepnut jiným procesem, aby používal CPU. A když je splněn požadavek I/O, starý proces přejde do stavu připravenosti a čeká na své provedení v CPU. Přepínání kontextu ukládá stav procesu pro obnovení jeho úkolů v operačním systému. V opačném případě musí proces restartovat své provádění z úrovně iniciál.
  4. Pokud během běhu procesu v operačním systému dojde k přerušení, stav procesu se uloží jako registry pomocí přepínání kontextu. Po vyřešení přerušení se proces přepne ze stavu čekání do stavu připravenosti, aby mohl pokračovat ve svém provádění ve stejném bodě později, kde dojde k přerušení operačního systému.
  5. Kontextové přepínání umožňuje jedinému CPU zpracovávat více procesních požadavků současně bez potřeby dalších procesorů.

Příklad přepínání kontextu

Předpokládejme, že v řídicím bloku procesů (PCB) je uloženo více procesů. Jeden proces je v běžícím stavu, aby provedl svou úlohu pomocí CPU. Jak proces běží, do fronty připravených věcí dorazí další proces, který má vysokou prioritu dokončení své úlohy pomocí CPU. Zde jsme použili přepínání kontextu, které přepíná aktuální proces s novým procesem, který vyžaduje, aby CPU dokončil své úkoly. Při přepínání procesu ukládá kontextový přepínač stav starého procesu do registrů. Když se proces znovu načte do CPU, spustí se provádění procesu, když nový proces zastaví starý proces. Pokud neuložíme stav procesu, musíme spustit jeho provádění na počáteční úrovni. Tímto způsobem přepínání kontextu pomáhá operačnímu systému přepínat mezi procesy, ukládat nebo znovu načítat proces, když vyžaduje provedení svých úkolů.

Spouštěče přepínání kontextu

Níže jsou uvedeny tři typy spouštěčů přepínání kontextu.

regresní testování v testování softwaru
  1. Přerušuje
  2. Multitasking
  3. Přepínač jádra/uživatele

Přerušuje : CPU žádá o načtení dat z disku, a pokud dojde k přerušení, automatické přepínání kontextu přepne část hardwaru, která vyžaduje méně času na zpracování přerušení.

Multitasking : Přepínání kontextu je charakteristika multitaskingu, která umožňuje přepnutí procesu z CPU, aby bylo možné spustit jiný proces. Při přepínání procesu se starý stav uloží, aby bylo možné pokračovat v provádění procesu ve stejném bodě v systému.

Přepínač jádra/uživatele : Používá se v operačních systémech při přepínání mezi uživatelským režimem a režimem jádra/uživatele.

řetězec na celé číslo

Co je PCB?

PCB (Process Control Block) je datová struktura používaná v operačním systému k ukládání všech dat souvisejících s procesem. Například, když je proces vytvořen v operačním systému, aktualizované informace o procesu, přepínání informací o procesu, ukončený proces v PCB.

Kroky pro přepínání kontextu

Existuje několik kroků, které zahrnují přepínání kontextu procesů. Následující diagram představuje přepínání kontextu dvou procesů, P1 až P2, když dojde k přerušení, potřebě I/O nebo procesu založenému na prioritě ve frontě připravených desek PCB.

Jaké je přepínání kontextu v operačním systému

Jak můžeme vidět na diagramu, zpočátku proces P1 běží na CPU, aby provedl svou úlohu, a ve stejnou dobu je další proces, P2, ve stavu připravenosti. Pokud dojde k chybě nebo přerušení nebo proces vyžaduje vstup/výstup, proces P1 přepne svůj stav z běžícího do stavu čekání. Před změnou stavu procesu P1 přepínání kontextu uloží kontext procesu P1 ve formě registrů a programového čítače do PCB1 . Poté načte stav procesu P2 ze stavu připravenosti PCB2 do běžícího stavu.

Při přepínání procesu P1 na proces 2 jsou provedeny následující kroky:

  1. Za prvé, toto přepínání kontextu potřebuje uložit stav procesu P1 v podobě programového čítače a registrů na PCB (Program Counter Block), která je v běžícím stavu.
  2. Nyní aktualizujte PCB1 na proces P1 a přesunete proces do příslušné fronty, jako je fronta připravenosti, fronta I/O a fronta čekajících.
  3. Poté se do stavu chodu dostane další proces, nebo můžeme z připraveného stavu vybrat nový proces, který se má provést, nebo má proces vysokou prioritu pro provedení své úlohy.
  4. Nyní musíme aktualizovat PCB (Process Control Block) pro vybraný proces P2. Zahrnuje přepínání stavu procesu z připraveného do běžícího stavu nebo z jiného stavu, jako je blokováno, ukončení nebo pozastavení.
  5. Pokud CPU již provádí proces P2, potřebujeme získat stav procesu P2, abychom obnovili jeho provádění ve stejném okamžiku, kdy došlo k přerušení systému.

Podobně je proces P2 vypnut z CPU, takže proces P1 může pokračovat v provádění. Proces P1 je znovu načten z PCB1 do běžícího stavu, aby pokračoval ve své úloze ve stejném bodě. V opačném případě se informace ztratí, a když je proces znovu spuštěn, spustí se provádění na počáteční úrovni.