Mis on konteksti vahetamine?

Üks suurimaid edusamme keskprotsessorite (CPU-de) projekteerimisel ja töös saabus siis, kui arvutioperatsioonisüsteemide disainerid töötasid välja tehnikad, mis võimaldavad kasutajatel multitegumtööd teha. Arvutitega seotud multitegumtöö on kahe või enama programmi samaaegne käitamine. Lõppkasutaja vaatenurgast ei pruugi see tunduda keeruline ega kaugeltki, kuid tegelikult kujutab see endast märkimisväärset hüpet süsteemi disainis. Multitegumtöötluses peab protsessor žongleerima erinevate aktiivsete programmide kõigi toimingutega, salvestades iga programmiga asukoha, kui kasutaja nende vahel edasi-tagasi lülitub. Konteksti vahetamine on protsess, mis võimaldab CPU-l erinevate aktiivsete programmide olekuid meeles pidada ja taastada, võimaldades tal selle žongleerimistoimingu lõpule viia.

Konteksti vahetamise ajal loobub CPU mis tahes programmist, mida ta parajasti käsitleb, salvestades konkreetse koha, kus see selles programmis oli, et saaks hiljem oma edenemist jätkata. Selle perspektiivi silmas pidades on konteksti vahetamine natuke nagu mitme raamatu samaaegne lugemine, nende vahel pidev edasi-tagasi vahetamine, jättes alati meelde iga raamatu leheküljenumbrid. Programmide leheküljenumbriteavet kontekstivahetuse ajal hoiab protsessi juhtplokk (PCB). PCB-d nimetatakse mõnikord ka “lülitusraamiks”. See teave salvestatakse tegeliku protsessori mällu, kuni seda uuesti vaja läheb.

Konteksti vahetamine toimub kolme võimaliku olukorra ajal: katkestuste käsitlemine, multitegumtöötlus ja kasutaja vahetamine. Katkestuste käsitsemisel “katkestab” mõni muu programm praeguse programmi töötamise ajal. Kui CPU saab katkestuse, teostab see kontekstilülituse, et žongleerida töötava programmi ja koheseid andmeid taotleva programmi vahel. Multitegumtöötluse korral libiseb protsessor programmide vahel edasi-tagasi, andes igale töötlemisajale ajalõike ja sooritades konteksti vahetamise toimingu, et nende kahe vahel vahetada. Mõne operatsioonisüsteemi puhul tehakse kontekstivahetus ka operatsioonisüsteemi kasutajavahetuse ajal, kuigi see pole otseselt nõutav.

Kas operatsioonisüsteem või arvuti riistvara saab juhtida konteksti vahetamist. Mõned kaasaegsed operatsioonisüsteemid on mõeldud konteksti vahetamise juhtimiseks operatsioonisüsteemi enda kaudu, ignoreerides protseduuri sisseehitatud riistvaratuge. See võimaldab operatsioonisüsteemil kontekstilülituse ajal rohkem teavet salvestada, võimaldades tal säilitada lüliti kohta rohkem teavet.