Junior
Kas yra konteksto perjungimas?
sobes.tech AI
Atsakymas iš AI
Konteksto keitimas (Context Switching) yra procesas, kai operacinė sistema išsaugo vieno proceso (arba srauto) būseną ir atkuria kito proceso (arba srauto) būseną. Tai leidžia keliems procesams dalintis ta pačia procesoriaus resursu.
Algoritmas apima šiuos žingsnius:
- Esamos būsenos išsaugojimas: Procesoriaus registrai, instrukcijų skaitiklis (PC), steko būsena ir kita informacija apie esamą procesą išsaugoma jo aprašyme (PCB - Process Control Block).
- Kito proceso pasirinkimas: Operacinės sistemos planuotojas pasirenka kitą vykdomą procesą.
- Būsenos atkūrimas: Išsaugota pasirinkto proceso būsena įkeliamas iš jo PCB į procesoriaus registrus.
Pertraukimų (overhead) sąnaudos apima:
- Laiko sąnaudas, reikalingas būsenos išsaugojimui ir atkūrimui.
- Efektyvumo praradimą dėl cache praleidimų (cache misses), nes cache, užpildytas vieno proceso duomenimis, tampa neaktualus kitam procesui.
- Laiko sąnaudas planuotojo instrukcijų vykdymui.
Pavyzdys:
Tarkime, turime du procesus, A ir B, vykstančius viename procesoriaus branduolyje.
// Iš pradžių vykdomas Procesas A
// Procesas A naudoja CPU išteklius
// Įvyksta įvykis, reikalaujantis pertraukti, pavyzdžiui, laiko kvantas Procesui A pasibaigia
// Procesas A būsenos (registrai, PC) išsaugoma
// OS pasirenka Procesą B vykdyti
// B būsenos įkeliama
// B pradeda vykdyti
Konteksto keitimas yra pagrindinis daugiaprocesiškumo mechanizmas operacinėse sistemose, leidžiantis sukurti iliuziją, kad keli procesai vyksta lygiagrečiai viename fiziniame procesoriuje.