2013 m. sausio 11 d., penktadienis

14.2. Daugiaprogramis darbas


Procesoriai, pradedant Intel 80286, turi technines priemones leidžiančias dirbti daugelio uždavinių aplinkoje.
Programuotojas paprastai neturi niekuo specialiai pasirūpinti. Jo programa tarsi gauna atskirą virtualią mašiną (beje, irgi Fon _ Neimano).
Daugiaprogramio darbo (multitasking) pavyzdys, tai vienos bylos redagavimas, kitos bylos kompiliavimas, trečios bylos perdavimas į kitą kompiuterinę sistemą ir kt.
Bet kuri veikla, kuri gali būti vykdoma lygiagrečiai, vadinama uždaviniu (task) ar procesu.
Operacinė sistema modeliuoja daugiarežimius procesus, realizuodama kiekvieną uždavinį virtualiu procesoriumi.
Multiprogramavimas – tai viena iš procesoriaus valdymo priemonių, naudojamų, kai yra daug konkuruojančių programų atmintinėje. Programos, kurios laukia resursų (pavyzdžiui laukia I/O pabaigos) yra laukimo būklėje. Programos, kurios pasiruošusios vykdymui yra pasiruošimo būsenoje. Operacinės sistemos dispečerio programa išrenka vieną iš pasiruošusių programų vykdymui. Dispečerio programa naudojasi programų surištų kontrolės bloke sąrašu. Pertraukimais atžymima I/O operacijų pradžia/pabaiga.
Įvykus pertraukimui, pertraukimą apdorojanti programa keičia vykdomos programos ir I/O pabaigos laukiančios programos būvius. Po kiekvieno pertraukimo dispečeris startuoja aukščiausio prioriteto programą.
Laiko dalinimas yra taikomos interaktyvioms programoms. Kadangi laikas, kuris praeina, kol vartotojas surenka sekančią komandą ar duomenų porciją yra palyginti ilgas, operatyvinės atmintinės turinys tame intervale gali keistis įkeliant arba iškeliant programas ar jų dalis. Tam, kad kitų vartotojų programos nelauktų, kol viena programa bus baigta vykdyti, ir  yra naudojamas laiko kvantavimas.
Programa  pirmą kartą įkeliant ją į sistemą, pakliūna į eilę. Ją valdo eilių apdorojimo programa. Atsiradus laisvai erdvei, eiles tvarkanti programa išrenka vieną iš eilėje esančių programų ir patalpina ją į atmintinę. Norint pagreitinti spausdinimą, ar kito kokio nors lėtaeigio įrenginio darbą, sistemoje yra buferizuojami siunčiami į šį įrenginį arba iš jo priimami duomenys.
Mirties taškas sistemoje gaunasi tuo atveju, kai kelios programos turėdamos resursus dar nori tų resursų, kuriuos turi užsiėmusios kitos programos, bet nei viena programa nenori atiduoti savo užimamų resursų. Kai kurios operacinės sistemos yra suprojektuojamos taip, kad jos pajėgios išvengti mirties taško, o kitos leidžia tam įvykti .
Šiuolaikiniuose procesoriuose yra „Hyper-Threading“ technologija, šios technologijos dėka vieną procesorių operacinė sistema traktuoja kaip du.

Komentarų nėra:

Rašyti komentarą

Tinklaraščio archyvas

Etiketės