2.2.3 Töötlus ja multitöötlus

Arvuti protsess on rakenduse töötav koopia ja erinevate protsesside samaaegne käivitamine võib toimuda nii ühe protsessoriga kui ka mitme protsessoriga arvutis. Mitmetegumilisus (Multitasking) on OS'i tehnika, et jagada ühe protsessori ressurssi erinevate protsesside vahel. Kerneli töö on tagada mehanismid, et sünkroniseerida eri protsesside töö ja tagada ressursside eksklusiivne kasutus. Kui arvuti sisaldab rohkem kui ühte protsessorit on võimalik eri protsesside käivitamine samaaegselt erinevatel protsessoritel või mitmetuumalise protsessori puhul erinevatel tuumadel. Mitmetegumilisel OS'il paistab nagu töötaksid mitu rakendust korraga aga multitöötlusega (Multiprocessing) operatsioonisüsteemil see nii käibki, käivitades erinevad protsessid erinevatel protsessoritel. Multitöötlusegasüsteem võib olla:
- Sümmeetriline (SMP -Symmetric Multiprocessing), mispuhul kõik arvutis töötavad protsessorid on võrdsed ja nendel saab käivitada võrdselt kõiki rakendusi. Kõik protsessorid on omavahel ühenduses ühise siini kaudu ja jagavad sama põhimälu ja S/V ressursse.
- Asümmeetriline (AMP -Asymmetric Multiprocessing), mille puhul on eraldi protsessor OS'i kerneli jaoks ja ülejäänud protsessorid kasutajarakenduste käivitamiseks.
Multitöötlussüsteemi
tehnoloogia erivariant on hüper-hargtöötlus
(Hyper-Threading). Selle tehnoloogia loojaks on Intel ja see võimaldab jagada
füüsilise protsessori mitmeks loogiliseks protsessoriks. Loogilistel
protsessoritel on eraldi registrid aga nad jagavad sama töötlusmoodulit ja
vahemälu.
OS, mis toetab SMP opereerimist, peab kasutajale paistma nagu mitmetegumiline
ühe protsessoriga süsteem. Arendajad võivad luua rakendusi teadmata, kas need
töötavad ühel protsessoril või mitmel. Seega peab multitöötlusega OS pakkuma
kõiki funktsioone, mida pakub mitmetegumiline OS ja lisaks täiendusi mitme
protsessori rakendamiseks. Disaini eripärad on järgmised:
- Samaaegsete paralleelsete protsesside toetus: kerneli rakendused peavad võimaldama käivitada kerneli programmikoodi samaaegselt eri protsessoritel. Kerneli tabelid ja andmestruktuurid peavad olema õieti hallatud, et ära hoida ummikuid või vigaseid operatsioone.
- Plaanur: tuleb ära hoida konfliktid juhtudel kui sama protsessi eri osad käivitatakse samal ajal eri protsessoritel.
- Sünkroniseerimine:jagatud ressurssidele juurdepääsu juhtimine nii, et oleks tagatud vastastikune välistamine.
- Mäluhaldus: vaja koordineerida erinevate protsessorite mäluhaldus
- Tõrkekindlus: OS peab võimaldama ühe protsessori tõrke korral töö jätkamist.