Presentation is loading. Please wait.

Presentation is loading. Please wait.

2 skyrius Procesai ir gijos 2.1 Ką vadiname procesu 2.2 Proceso būviai

Similar presentations


Presentation on theme: "2 skyrius Procesai ir gijos 2.1 Ką vadiname procesu 2.2 Proceso būviai"— Presentation transcript:

1 2 skyrius Procesai ir gijos 2.1 Ką vadiname procesu 2.2 Proceso būviai
2.3 Procesų eilės 2.4 OS kontrolės struktūros 2.5 Vykdymo modos 2.6 Gijos: procesai, gijos 2.7 Gijų tipai parengė N. Sarafinienė

2 Proceso sąvoka Procesas tai programa vykdymo metu. Procesų pavyzdžiai:
OS branduolys OS apvalkalas (shell) Programa, vykdoma po kompiliavimo www-naršyklė OS vykdomas procesų valdymas apima: Išteklių priskyrimą Planavimą: garantuoti jų vykdymą (stebėti procesoriaus panaudojimą, atsakymo laikus) Užtikrinti komunikacijas tarp procesų, sinchronizaciją (stebėti, kad nesusidarytų mirties taškai) parengė N. Sarafinienė

3 Dviejų būvių proceso modelis
Procesas gali rastis viename iš dviejų būvių Vykdomas, nevykdomas Nevykdomas procesas yra eilėje parengė N. Sarafinienė

4 Ką veikia nevykdomi procesai?
parengė N. Sarafinienė

5 Realiai yra daug eilių I/O veiksmai yra žymiai lėtesni nei CPU operacijų vykdymas Kas bus, jei visi procesai lauks I/O pabaigos ir visa atmintinė yra užimta? Arba jei nepakanka vietos atmintinėje visų procesų vykdymui? Arba, jei.... parengė N. Sarafinienė

6 Atidėti procesai Idėja: Permesti (swap) šiuos procesus į diską tuo atlaisvinant atmintinę naujų procesų priėmimui. Procesą permetus į diską procesas iš būvio blokuotas pereina į būvį atidėtas (suspend). parengė N. Sarafinienė

7 Du atidėti būviai parengė N. Sarafinienė

8 Proceso atidėjimo priežastys
OS turi atlaisvinti pakankamai vietos pagrindinėje atmintinėje norėdama įkelti procesą, kuris yra pasiruošęs vykdymui. OS gali atidėti foninį ar paslaugos procesą, kuris kelia problemą (tuo išvengiant mirties taško). Vartotojas gali atidėti programos vykdymą derinimo tikslais ar norėdamas panaudoti išteklį. Procesas gali būti vykdomas periodiškai (pvz. apskaitos procesas) ir todėl jis gali būti atidedamas iki kito laiko momento. Tėvo procesas gali norėti atidėti vaiko proceso vykdymą, siekdamas jį patikrinti ar modifikuoti. parengė N. Sarafinienė

9 UNIX procesų diagrama parengė N. Sarafinienė

10 OS kontrolės struktūros
Ko reikia procesui, kad jis galėtų būti vykdomas (proceso įvaizdis): Programa Duomenys Stekas Proceso kontrolės blokas (kontekstas – daugiaprograminiam režimui OS turi saugoti tokią informaciją: Informaciją apie kiekvieno proceso ir išteklio būvį. Tam konstruojamos atitinkamos lentelės. parengė N. Sarafinienė

11 Proceso lentelė bei kitos OS lentelės
Kiekvienas įėjimas talpina inf.: Kur procesas yra patalpintas Parametrus, reikalingus jo valdymui – Proceso ID –Proceso būvį – proceso vietą atmintinėje –proceso kontrolės blokas Kitos OS lentelės talpina informaciją, liečiančią išteklius: Kaip priskirta pagrindinė/antrinė atmintinė I/O įrenginių būklė Buferiai atmintinėje Failų būviai, vieta, parametrai,... parengė N. Sarafinienė

12 Proceso kontrolės blokas (PCB)
PCB talpina: Identifikatorius (proceso, tėvo proceso, vartotojo,...) Proceso būvio informaciją (registrų reikšmės: turi būti kopijuojamos ir atstatomos esant perėjimams: vykdomas↔pasiruošęs,…) Kitą proceso kontrolės informaciją: Skirstymo ir būvio informacija (prioritetas, laukiamas įvykis, …) Proceso atmintinės lentelės ištekliai (atidaryti failai, priklausomybė, …) Nuorodos (į kitus procesus eilėje, …) Privilegijos parengė N. Sarafinienė

13 Proceso sukūrimas Pavyzdžiai: OS privalo:
Pradedama vykdyti sukompiliuota vartotojo programa Prisijungia vartotojas (pradedama vykdyti apvalkalo-shell programa) Sukuriamas procesas tam tikros paslaugos atlikimui (pvz. spausdinimas: vartotojas vykdo lpr komandą) Procesass sukuria naują procesą (pvz. shell sukuria lpr; vartotojų programos irgi gali kurti procesus) OS privalo: Priskirti procesui unikalų identifikatorių Procesui išskirti erdvę atmintinėje Inicializuoti proceso kontrolės bloką Sukurti tinkamus sąryšius Įjungti procesą į sistemą (į kažkurias eiles,...) parengė N. Sarafinienė

14 Kada nutraukiamas vykdomo proceso vykdymas
Laikrodžio mechanizmo generuojami pertraukimai Procesas visą maksimalų vykdymui skirto laiko kvantą I/O pertraukimas Atmintinės klaida Adresas gali būti nurodytas į virtualią atmintinę, taigi gali kilti reikalas įkelti kažkurią dalį į pagrindinę atmintinę. Vidinės priežastys Įvyko klaida Procesas baigė savo veiksmų vykdymą ir turi būti baigtas Sisteminiai kvietiniai Kaip pavyzdžiui, atidaryti failą. parengė N. Sarafinienė

15 Proceso perjungimas (konteksto perjungimas)
vykdomas→kitas Išsaugomas procesoriaus turinys įskaitant PC ir kitų registrų turinius procesų kontrolės bloke (PCB) PCB perkeliamas į atitinkamą eilę (pasiruošę, blokuoti, …) Vykdymui išrenkamas kitas procesas Į PCB įrašoma informacija apie išrinktą procesą • Update memory-management data structures • Restore context (in processor) of the selected process parengė N. Sarafinienė

16 Vykdymo būsenos (modes)
Vartotojo būsena Tai mažesnių privilegijų būsena Vartotojo programos paprastai vykdomos šioje būsenoje Sisteminė, kontrolės arba branduolio būsena Būsena su didesnėmis privilegijomis Vykdomas OS branduolys parengė N. Sarafinienė

17 OS vykdymas Ne-procesinis branduolys Vykdymas vartotojo procesuose
OS kodas vykdomas kaip atskira esybė, kuri vykdoma privilegijuotoje būsenoje. Vykdymas vartotojo procesuose OS programinė įranga vartotojo proceso kontekste Procesas vykdomas privilegijuotoje būsenoje kai jis vykdo OS kodą . Procesais pagrįsta OS Dauguma branduolio funkcijų yra atskiri procesai. Gerai tinka esant keliems procesoriams. parengė N. Sarafinienė

18 Gijos parengė N. Sarafinienė

19 Procesai ir gijos Daug gijų: sudaroma prielaida tam, kad daugiau nei viena esybė turi vykdymo galimybę tame pačiame procese. Vienetu .... vykdant CPU laiko skirstymą yra gija. • … išteklių valdyme yra procesas. parengė N. Sarafinienė

20 Procesas turi ... Gija turi ...
Virtualią adresinės erdvę, kurioje yra proceso įvaizdis. Globalius kintamuosius, failus, vaikų procesus, signalus ir signalų doroklius. Vykdymo būvį, steką ir kontekstą (išsaugomą, kai nėra vykdoma) • Prieigą prie atmintinės ir jos proceso išteklių. – visos proceso gijos tuo naudojasi bendrai. • Tam tikrą gijai skirtą atmintinės sritį lokalių kintamųjų saugojimui. parengė N. Sarafinienė

21 Atidėjimas ir pabaiga Proceso atidėjimas ( Suspending a process) apima visas proceso gijas nes visos proceso gijos naudojasi ta pačia adresinės erdve. Procesą užbaigiant yra baigiamos visos proceso gijos. parengė N. Sarafinienė

22 Nauda taikant gijas Kadangi to paties proceso gijos dalinasi atmintine ir failais, jos gali komunikuoti viena su kita nesikreipdamos į branduolį. Gali suteikti veiksmų išlygiagretinimą procese – I/O ir skaičiavimo veiksmai gali persidengti Gali būti vykdomas vykdymas esant keletui procesorių Reikalauja mažiau laiko Sukuriant / užbaigiant giją nei procesą Pereinant tarp gijų tame pačiame procese. parengė N. Sarafinienė

23 Gijų panaudojimas Perdengiant aktyvų (foreground) darbą su foniniu.
Vykdant asinchroninį apdorojimą (pav. darant atsarginę kopiją ir tuo pačiu metu redaguojant) . Greitas proceso vykdymas (lygiagretūs nepriklausomi veiksmai). Užtikrinant modulinę programos struktūrą. Klausimas: ar galima pasiekti proceso veiksmų išlygiagretinimą nenaudojant gijų? parengė N. Sarafinienė

24 Gijos vartotojo erdvėje
Branduolys nežino apie gijų egzistavimą. Vykdymo meto ( Run-time) sistema (gijų biblioteka) yra atsakinga už apskaitą (bookkeeping), gijų skirstymą (scheduling) , leidžia vartotojišką skirstymą. Gali būti naudojamos bet kurioje OS. Bet kyla problemos blokuojant sisteminius kvietinius (užsiblokavus kažkuriai gijai, blokuojamas visas procesas, kitos to paties proceso gijos negali būti vykdomos). parengė N. Sarafinienė

25 Branduolio lygio gijos
Branduolys saugo kontekstinę informaciją apie procesus ir gijas. CPU laiko skirstymas daromas gijų atžvilgiu. Nėra blokavimo problemos Mažiau efektyvu nei vartotojo-lygio gijos (branduolys įjungiamas kuriant gijas, jas užbaigiant, pereinant tarp gijų). parengė N. Sarafinienė

26 Hibridinė realizacija
Sutankinant (Multiplexing) vartotojo-lygio gijas į branduolio-lygio gijas. Išnaudojami abiejų metodų privalumai. parengė N. Sarafinienė

27 Vartotojo lygio ir branduolio lygio gijos
parengė N. Sarafinienė

28 Pavyzdžiai Posix Pthreads: (IEEE) standartas: Win32 gijų biblioteka:
Specifikuoja sąsają Diegimas (naudojant vartotojo/branduolio lygio gijas) priklauso nuo projektuotojų. Daugiau įprastos UNIX sistemose. Win32 gijų biblioteka: Branduolio lygio biblioteka, “windows” sistemos. Java gijos: Palaikomos JVM (VM: vykdymo laiko sistema) Diegimas priklauso nuo projektuotojų parengė N. Sarafinienė

29 Pavyzdžiai Solaris: hibridinis modelis Vartotojo-lygio gijos
Lengvasvoriai procesai Branduolio lygio gijos • W2K: hibridinis modelis – gija: branduolio (naudoja win32 API) • Fiber: Vartotojo-lygio gijos (biblioteka) • Linux: Tik branduolio lygio – clone sist. kvietinys: Naudoja parametrus nusakant bendrą išteklių naudojimąamount of – Clone kartais gali būti lygiavertus fork. parengė N. Sarafinienė


Download ppt "2 skyrius Procesai ir gijos 2.1 Ką vadiname procesu 2.2 Proceso būviai"

Similar presentations


Ads by Google