Kas yra konteksto perjungimas?

Vienas didžiausių žingsnių į priekį kuriant ir eksploatuojant centrinius procesorius (CPU) įvyko tada, kai kompiuterių operacinių sistemų kūrėjai sukūrė metodus, leidžiančius vartotojams atlikti kelias užduotis. Daugiafunkcinis darbas, susijęs su kompiuteriais, yra dviejų ar daugiau programų paleidimas vienu metu. Žvelgiant iš galutinio vartotojo taško, tai gali neatrodyti sudėtinga ar toli paimta, tačiau iš tikrųjų tai yra didelis sistemos dizaino šuolis. Atliekant kelias užduotis, procesorius turi žongliruoti visomis skirtingų aktyvių programų operacijomis, įrašydamas, kur ji yra su kiekviena programa, kai vartotojas jas perjungia pirmyn ir atgal. Konteksto perjungimas yra procesas, leidžiantis CPU atsiminti ir atkurti įvairių aktyvių programų būsenas, leidžiančias užbaigti šį žongliravimo veiksmą.

Konteksto perjungimo metu CPU atsisako bet kokios programos, kurią šiuo metu tvarko, išsaugodamas konkrečią vietą, kurioje jis buvo toje programoje, kad vėliau galėtų tęsti eigą. Kalbant apie tai perspektyvoje, konteksto perjungimas yra panašus į kelių knygų skaitymą tuo pačiu metu, nuolat perjungiant jas pirmyn ir atgal, visada prisimenant kiekvienos puslapių numerius. Programų „puslapio numerio“ informaciją konteksto perjungimo operacijos metu saugo proceso valdymo blokas (PCB). PCB taip pat kartais vadinamas „perjungimo rėmeliu“. Ši informacija saugoma tikrojo procesoriaus atmintyje, kol jos vėl prireiks.

Konteksto perjungimas vyksta trimis galimomis situacijomis: pertraukimų apdorojimas, kelių užduočių atlikimas ir vartotojo perjungimas. Apdorojant pertraukimus, kita programa „pertraukia“ dabartinę programą, kai ji veikia. Kai CPU gauna pertraukimą, jis atlieka konteksto perjungimą, kad perjungtų vykdomą programą ir programą, kuri reikalauja tiesioginių duomenų. Atliekant kelias užduotis, centrinis procesorius persijungia tarp programų, suteikdamas kiekvienai apdorojimo laiko dalį ir atlikdamas konteksto perjungimo operaciją, kad pakeistų programas. Kai kuriose operacinėse sistemose konteksto perjungimas taip pat atliekamas operacinės sistemos naudotojo perjungimo metu, nors to aiškiai nereikia.

Konteksto perjungimą gali valdyti operacinė sistema arba kompiuterio aparatinė įranga. Kai kurios šiuolaikinės operacinės sistemos yra skirtos valdyti konteksto perjungimą per pačią operacinę sistemą, neatsižvelgiant į bet kokį įtaisytosios aparatinės įrangos palaikymą šiai procedūrai. Tai leidžia operacinei sistemai išsaugoti daugiau informacijos kontekstinio perjungimo metu ir išsaugoti daugiau informacijos apie jungiklį.