2013 m. sausio 11 d., penktadienis

14.1. Užduočių perjungimas ir virtuali mašina



Pertraukimai naudojami ir užduočių perjungimui daugelio užduočių sistemose. Tarkim turime du procesus (dvi veikiančias programas) kurie turi būti vykdomi kartu. Iš tikrųjų Fon-Neimano architektūros kompiuteriai vienu metu gali vykdyti tik vieną programą. Tačiau yra įmanoma paleisti vieną procesą, o po kurio laiko jo darbą pagal aparatinę taimerio pertrauktį nutraukti ir, išsaugojus atmintinėje šios programos būseną (visų programa pasiekiamų registrų turinius),  pereiti prie kitos programos darbo.
Po kurio laiko, įvykus kitam pertraukimui galima įvykdyti atvirkštinį procesą, išsaugoti antrojo proceso būklę atmintyje, užkrauti į registrus pirmojo proceso duomenis ir pratęsti pirmą procesą.
Šiuos procesų perjungimus reikia įvykdyti abiejų programų vykdymo metu, procesų perjunginėjimo dažnis turi būti toks kad vartotojui susidarytų nepertraukiamumo įspūdis t.y. vartotojas manytų, kad dirba su abiem programomis vienu metu. Be jokios abejonės, procesoriaus resursai dalijami abiems procesam proporcingai.
Kad vartotoją toks persijunginėjimas tenkintų, procesoriaus našumas turi būti pakankamas (reikia dar įvertinti ir laiką reikalingą registrų duomenims įrašyti ir skaityti iš atminties procesų persijunginėjimo metu).
Taip OS periodiškai pakankamai dideliu dažniu perjungiant procesoriaus resursus nuo vienos prie kitos programos vykdymo, vartotojui susidarys įspūdis, kad abi programos veikia vienu metu. x86 kartos procesoriai pradedant nuo antros (286) ir ypatingai nuo trečios (386) kartos turi integruotas daugiaužduotines priemones (užduočių skaičius faktiškai neribojamas), dirbančias apsaugotu rėžimu. Užduočių perjunginėjimas vykdomas pagal pertraukimo signalą kurį duoda taimeris. Tai vyksta visiškai „skaidriai“ procesų atžvilgiu. Šio skaidraus perjunginėjimo dėka programuotojui, kuriančiam programą, daugeliu atvejų visiškai nereikia rūpintis sistemos resursų dalijimu. Programai yra skiriama virtuali mašina kurios valdymas perduodamas tai programai, tarsi ji būtų vienintelis procesas.
Žinoma, virtualių mašinų palaikymas iš daugiaprogramės operacinės sistemos reikalauja tam tikrų „pastangų“, operacinei sistemai reikia dalinti ne tik procesoriaus resursus tačiau ir operatyvinę atmintį, ir informacijos laikmenas, ir įvesties/išvesties resursus, kitaip tariant visus realaus kompiuterio resursus. Čia operacinei sistemai į pagalbą ateina specialios priemonės integruotos į I80286, I80386  ir vėlesnių kartų procesorius.

Komentarų nėra:

Rašyti komentarą

Tinklaraščio archyvas

Etiketės