Mis on töökontroll?

Töökontroll on mõiste erinevate toimingute haldamiseks arvutisüsteemis. Arvutid on võimelised tegema mitut asja korraga, kuid paljudel juhtudel saab antud piirkonnas korraga töötada ainult üks protsess. Arvutid kasutavad oma ülesannete haldamiseks töökontrollisüsteemi, lubades ühel protsessil kasutada ressursse ühes piirkonnas, samal ajal kui teisel kasutab ressursse teises piirkonnas. Need süsteemid jälgivad toimingute prioriteetsust ja hoiavad tähtsaid ülesandeid kiiremini ja vähemtähtsaid ülesandeid taustal.

Töökontrollisüsteemid töötati välja kaasaegsete arvutite projekteerimise alguses, et leevendada kiirusprobleeme. Paljudes varasemates süsteemides olid arvuti kesksüsteemid enam kui võimelised neile antud ülesandeid kiiremini läbima. Kiiruseprobleemid tekkisid sidepidamises välissüsteemidega. Süsteemid ei olnud mitte ainult aeglasemad, vaid ka süsteemirühmade vaheline edastusaeg oli üsna pikk. Välisriistvara lisad, nagu puhvrid ja vahemälusüsteemid, muutsid teatud protsessid ainult kiiremaks ega lahendanud probleemi.

Multitegumtöö oli varajane töö kontrollimise katse. Arvuti sai uue süsteemi, mis jälgis aktiivseid ja mitteaktiivseid töid. Kui süsteem oli uue tööga tegelemiseks liiga hõivatud, pandi see passiivsesse järjekorda. Kui riistvara suutis uue protsessi vastu võtta, muudetakse kõrgeima prioriteediga protsess aktiivseks. Seejärel liiguks see protsess riistvarasse.

Selle süsteemi probleem oli selle detsentraliseeritud olemuses. Kui kõik aktiivsed ja passiivsed protsessid hoidsid ühte järjekorda, pärines riistvaraga seotud teave riistvarast endast. Riistvara draiver teatab planeerijale, kas see on saadaval või mitte – kui protsess sisenes veaolekusse ja jätkas riistvara kasutamist, ei muutu see kunagi kättesaadavaks. Lisaks vajasid mõned protsessid ainult keskprotsessorit või teatud välisseadet; see seoks kogu süsteemi kuni nende protsesside lõppemiseni. Selle probleemiga võitlemiseks töötati välja kaasaegsed töökontrollisüsteemid.

Tööde juhtimine keskendub ennetava andmetöötluse ideele. Igale protsessile omistatakse üldine prioriteet ja mõnikord ka teisejärgulised teatud süsteemidega seotud prioriteedid. Arvuti planeerija hoiab protsesside järjekorda. Kui ilmub üks protsess, mis on olulisem kui praegu aktiivne, siis aktiivne peatatakse ja uus protsess võtab üle. Kui peatatud programm on kõige olulisem protsess, käivitub see uuesti.