190 likes | 544 Views
Operacinės sistemos. asist. S. Ramanauskaitė. Pseudolygiagretumas. Visi šiuolaikiniai kompiuteriai atlieka kelis darbus vienu metu; Realiai vienu laiko momentu viename procesoriuje yra vykdomas tik 1 procesas;
E N D
Operacinės sistemos asist. S. Ramanauskaitė
Pseudolygiagretumas • Visi šiuolaikiniai kompiuteriai atlieka kelis darbus vienu metu; • Realiai vienu laiko momentu viename procesoriuje yra vykdomas tik 1 procesas; • Kadangi procesai keičiami procesoriuje labai greitai (kas 0,1-0,01 ms) – sudaromas lygiagretumo įspūdis; • Tai vadinama psaudolygiagretumu.
Lygiagretumas • Tikrasis lygiagretumas skaitomas tada, kai tai atspindi techninė įranga; • Tam reikia, kad būtų bent 2 veikiantys procesoriai, kurie dalijasi ta pačia atmintimi.
Procesai • Procesas yra veikianti programa; • Kiekvienas procesas saugo tokią informaciją kaip: • Dabartinės programos skaitiklis; • Registrų reikšmės; • Kintamųjų reikšmės ir pan. • Procesai gali būti vykdomi skirtingu dažnumu; • Tai leidžia padaryti procesų prioritetai, kurie nusako, kuriems procesams skirti daugiau dėmesio.
Sisteminiai procesai ir demonai • Procesai, kurie yra paleidžiami operacinės sistemos jai užsikraunant ar valdant jos darbą, yra vadinami sisteminiais; • Procesai, kurie veikia “fone” be vartotojo sąsajos – vadinami demonais; • Kiekvienas procesas gali turėti tik vieną ar neivieno tėvinio proceso; • Kiekvienas procesas gali turėti kiek nori daug dukterinių procesų.
Procesų kūrimas UNIX tipo sistemose • UNIX sistemose procesų medis turi vieną šakninį procesą, kuris paleidžiamas kraunant operacinę sistemą; • Pats aukščiausias procesas UNIX sistemoje vadinamas init; • Tuomet kuriant kiekvieną kitą procesą, šis yra dalinamas komanda fork; • Gavus tikslią kopiją, ji yra keičiama komanda exec, kad taptų nauju procesu.
Procesų kūrimas Windows tipo sistemose • Windows aplinkoje galima laisvai kurti naujus procesus; • Jie susiejami į medį tik nuorodų, valdytojų (handler) pagalba; • Tokiu būdu gali būti keičiamas dukterinio proceso tėvas kitu ir pan.
Procesų būsenos ir perėjimai • Kiekvienas procesas kiekvienu laiko momentu gali būti tik vienoje iš 3 būsenų; • Perėjimai tarp šių būsenų gali būti tik 4 (žiūrėti paveikslėlį).
Procesų valdymas • Kad operacinė sistema galėtų valdyti visus procesus ir juos tvarkyti, yra sudaroma procesų lentelė; • Joje saugoma informacija apie visus procesus: • Proceso būsena; • Programų skaitiklis; • Steko rodyklė; • Skirta atmintis; • Atvirų failų būsena; • ...
Gijos • Procesai naudojami sugrupuoti resursus; • Gijos – tai atskirai valdomi elementai, kurie dirba su procesoriumi; • Gijos dar vadinamos lengvaisiasi procesias; • Terminas daugiagijis nusako, kad viename procese veikia kelios gijos, kurios naudojasi bendra adresų erdve, atvirais failais ir kitais bendrais resursias.
Gijų tarpusavio sąveika • Gijos yra labiau susietos tarpusavyje nei procesai, nes vienu metu geba dalintis tais pačiais resursais ir adresų erdve; • Gijų veikimo pavyzdys: darbas tekstiniame redaktoriuje MS Word, kuris be to, kad leidžia jums dirbti su juo, laikas nuo laiko dar išsaugo patį failą, neįtakodamos jūsų darbo su juo ir pan.
Gijų panaudojimas užklausoms apdoroti • Interneto serveriuose, kad vieni vartotojai mažiau įtakotų kitus, kiekvienai užklausai aptarnauti yra kuriama nauja gija
Gijų lentelės • Kad būtų galima susekti visas gijas, yra formuojamos gijų lentelės; • Pagal tai gijų lentelės gali būti įgyvendinamos: • Vartotojo aplinkoje (kiekvienas procesas turi savo gijų lentelę); • Branduolyje (naudojama viena gijų lentelė); • Hibridas (naudojamos gijų lentelės ir branduolyje, ir procese).
Lenktynių (race) sąlyga • Kuomet keli procesai vienu metu naudojasi tuo pačiu resursu, o galutinis rezultatai labai priklauso nuo jų tikslios eigos – tokia situacija yra vadinama lenktynių sąlyga; • Jei gijos nebus tinkamai valdomos, gali sutrikti sistemos darbas (bus gauti ne tokie rezultatai.)
Gijų sinchronizacija • Lenktynių sąlygoms valdyti gali būti naudojama keletas būdų: • Semaforai (nustatyta kiek gijų vienu metu gali naudotis resursu); • Muteksai (jei viena gija naudoja resursą – kitai liepiama laukti kol jis atlaisvės; tarsi dvejetainis semaforas); • Monitoriai (nuo mutekso skiriasi tuo, kad visas gijas stato į eilę, t.y. naudoja FIFO principą) ;