Mikä on kontekstinvaihto?

Yksi suurimmista edistysaskeleista keskusyksiköiden (CPU) suunnittelussa ja käytössä tuli, kun tietokoneiden käyttöjärjestelmien suunnittelijat kehittivät tekniikoita, joiden avulla käyttäjät voivat suorittaa monia asioita. Tietokoneisiin liittyvä moniajo on käytäntö, jossa käytetään kahta tai useampaa ohjelmaa samanaikaisesti. Loppukäyttäjän näkökulmasta tämä ei ehkä vaikuta monimutkaiselta tai kaukaa haetulta, mutta se edustaa todellista huomattavaa harppausta järjestelmän suunnittelussa. Monitehtävissä CPU: n on ryhdyttävä suorittamaan kaikki eri aktiivisten ohjelmien toiminnot ja tallennettava jokaisen ohjelman kohdalla, kun käyttäjä vaihtaa edestakaisin niiden välillä. Kontekstin vaihtaminen on prosessi, jonka avulla CPU muistaa ja palauttaa eri aktiivisten ohjelmien tilat, jolloin se voi suorittaa tämän jongleeraustoiminnon.

Kontekstinvaihdon aikana CPU pudottaa minkä tahansa parhaillaan käsittelemänsä ohjelman ja tallentaa sen paikan, jossa se oli kyseisessä ohjelmassa, jotta se voi jatkaa edistymistään myöhemmin. Tarkastelemalla asiaa, asiayhteyden vaihtaminen on vähän kuin lukisi useita kirjoja samanaikaisesti, vaihtaisi jatkuvasti edestakaisin niiden välillä ja muistaa aina kunkin sivunumerot. Prosessin ohjauslohko (PCB) pitää ohjelmien “sivunumerotiedot” kontekstinvaihtotoiminnon aikana. Piirilevyä kutsutaan joskus myös “kytkentäkehykseksi”. Nämä tiedot tallennetaan muistiin varsinaiseen suorittimeen, kunnes niitä tarvitaan uudelleen.

Kontekstin vaihtaminen tapahtuu kolmen mahdollisen tilanteen aikana: keskeytyskäsittely, moniajo ja käyttäjän vaihto. Keskeytyksen käsittelyssä toinen ohjelma “keskeyttää” nykyisen ohjelman sen ollessa käynnissä. Kun keskusyksikkö vastaanottaa keskeytyksen, se suorittaa kontekstikytkimen jongleeratakseen käynnissä olevan ohjelman ja välittömiä tietoja pyytävän ohjelman välillä. Monitehtävissä CPU siirtyy edestakaisin ohjelmien välillä ja antaa kullekin prosessointiajan ja suorittaa kontekstinvaihtotoiminnon vaihtaakseen näiden kahden välillä. Joissakin käyttöjärjestelmissä kontekstikytkin suoritetaan myös käyttöjärjestelmän käyttäjän vaihdon aikana, vaikka sitä ei nimenomaisesti vaadita.

Joko käyttöjärjestelmä tai tietokoneen laitteisto voivat hallita kontekstin vaihtoa. Jotkut nykyaikaiset käyttöjärjestelmät on suunniteltu ohjaamaan kontekstin vaihtoa itse käyttöjärjestelmän kautta, jättämättä huomiotta sisäänrakennettua laitteistotukea. Tämän avulla käyttöjärjestelmä voi tallentaa enemmän tietoja kontekstikytkimen aikana, jolloin se voi säilyttää enemmän tietoja kytkimestä.