Junior
Mi az a kontextusváltás?
sobes.tech MI
Válasz az MI-től
A kontextusváltás (Context Switching) az operációs rendszer által végrehajtott folyamat, amely során egy folyamat (vagy szál) állapotát menti, és egy másik folyamat (vagy szál) állapotát állítja vissza. Ez lehetővé teszi, hogy több folyamat osztozzon egyetlen processzoron.
Az algoritmus a következő lépéseket tartalmazza:
- A jelenlegi kontextus mentése: A processzor regisztrációi, a parancsszámláló (PC), a verem állapota és más információk a folyamat aktuális állapotáról elmentésre kerülnek a PCB-ben (Process Control Block).
- A következő folyamat kiválasztása: Az operációs rendszer ütemezője kiválasztja a következő végrehajtandó folyamatot.
- A kontextus visszaállítása: A kiválasztott folyamat mentett állapota betöltésre kerül a PCB-ből a processzor regisztrációiba.
A kontextusváltás overhead költségei:
- Az állapot mentésére és visszaállítására fordított idő.
- Hatékonyságvesztés cache misses miatt, mivel az egyik folyamat által feltöltött cache másik számára már nem releváns.
- A ütemező utasításainak végrehajtási költsége.
Példa:
Tegyük fel, hogy két folyamatunk van, A és B, amelyek egy CPU magon futnak.
// Kezdetben az A folyamat fut
// Az A folyamat használja a CPU erőforrásait
// Egy esemény történik, amely váltást igényel, például az A folyamat kvantumideje lejár
// Az A folyamat állapota (regiszterek, PC) mentésre kerül
// Az operációs rendszer kiválasztja a B folyamatot a végrehajtásra
// A B folyamat állapota betöltésre kerül
// A B folyamat elkezd futni
A kontextusváltás egy alapvető mechanizmus a multitaskingben az operációs rendszerekben, amely lehetővé teszi több folyamat párhuzamos végrehajtásának illúzióját egyetlen fizikai processzoron.