220 likes | 497 Views
Operacinės sistemos. asist. S. Ramanauskaitė. Resursų naudojimas. Kompiuterinėse sistemose gausu resursų, kurie vienu laiko momentu gali būti naudojami tik vieno proceso (ar gijos);
E N D
Operacinės sistemos asist. S. Ramanauskaitė
Resursų naudojimas • Kompiuterinėse sistemose gausu resursų, kurie vienu laiko momentu gali būti naudojami tik vieno proceso (ar gijos); • Resursu laikoma ne tik kompiuyerio atmintis ar procesoriasu darbas, bet ir įvesties/išvesties įrenginiai, kuriuos kompiuteris gali naudoti; • Žinomiausi resursai, kuriuos vienu laiko momentu gali naudoti tik vienas procesas yra spausdintuvas, CD įrenginiai ir pan.
Resursų tipai • Resursai gali būti dalinami į dvi pagrindines dalis: • Dalinamieji resursai – resursai, kuriuos galima laisvai perimti iš kito proceso, nesutrikdant pirmojo proceso darbo; • Nedalinami resursai – jei bent laikinai toks resursas būtų perimtas iš kito proceso, abiejų procesų darbas nebūtų pilnai įvykdytas dėl negebėjimo aiškiai paskirstyti tą resursą.
Resursų naudojimo eiga • Norint gauti ir panaudoti tam tikrą resursą, visas darbas vyksta tokiais etapais: • Resurso užklausa, pareikalavimas; • Resurso gavimas; • Resurso naudojimas; • Resurso atlaisvinimas. • Jei resursas paprašomas, bet tuo metu yra užimtas, jo užklausa yra atmetama ar pastatoma į eilę to resurso gavimui; • Tokiu atveju procesas gali daryti kitus darbus arba tiesiog laukti tam tikrą laiką ir vėl reikalauti to resurso.
Aklavietės pavyzdys • Tarkim turima situacija, kuomet yra du procesai A ir B. • Jie abu nori nuskaityti duomenis iš skenerio, o tada juos išsaugoti CD laikmenoje: • Procesas A pirma kreipiasi į skenerį, o tik tada bando duomenis įrašyti į CD laikmeną. • Procesas B pirma pareikalauja CD įrenginio dėmesio, patikrinti ar bus galima į jį rašyti ir tik tada prašo skenerio duomenų. • Jei šie du procesai prasidės vienu metu, abu rezusrai bus rezervuoti, tad norint pereiti prie kitos būsenos, reikalaus jau užimto resurso. • Bandymas abiem programom veikti veda prie amžino laukimo – aklavietės.
Procesas A Procesas B a) Užimti spausdintuvą Užimti diską Atlaisvinti spausdintuvą Atlaisvinti diską Užimti diską Užimti spausdintuvą Atlaisvinti diską Atlaisvinti spausdintuvą A1 B1 A2 B2 A3 B3 A4 B4 b) A1 A2 Proceso A Pertraukim Procesas A blokuotas B1 B2 Procesas B blokuotas laikas A1 A3 c) A2 A4 Proceso A Pertraukim Proceso A pertraukim B1 Procesas B blokuotas B1 B4 B2 B3 laikas A1 A3 d) A2 A4 B1 B4 B2 B3 laikas Aklavietės pavyzdys
Aklavietė • Aklavietės būsena nusakoma tokiu apibrėžinu: • Tam tikri procesai yra aklavietėje, jei kiekvietas iš tų procesų laukia įvykio, kurį gali sukelti tik kitas iš šių procesų. • Dažnaisuiai tas įvykis yra tiesiog tam tikro resurso atlaisvinimas. • Tuo tarpu esantys aklavietėje procesai negali: • Veikti; • Atlaisvinti resursus; • Būti sužadinami.
Aklavietės susidarymo sąlygos • Mutexo sąlyga • Kiekvienas resursas gali būti skiriamas tik vienam procesui arba būti laisvas • Laikymo ir laukimo sąlyga • Procesai, kurie jau turi tam tikrus resursus, gali dar reikalauti resursų • Nedalinimo sąlyga • Prieš tai gautas resursas negali būti paprastai atimtas iš proceso • Grandininė laukimo sąlyga • Turi būti grandinė iš 2 ar daugiau procesų • Kiekvienas resursas laukia resurso, kurį turi kitas resursas toje grandinėje
Aklaviečių modeliavimas • Aklaviečių modeliavimui naudojami orientuotieji grafai: • Kvadratuose žymimi resursai; • Apskritimasi žymimi procesai; • Rodyklė nuo resurso į procesą vaisduoja, kad tas procesas turi tą resursą (a); • Rodyklė nuo proceso į resursą vaiduoja, kad tas procesas reikalauja/laukia to resurso (b);
Aklaviečių valdymo būdai • Tiesiog ignoruoti • Jei Jūs ignoruosite aklavietę, gal ji ignoruos jus. • Aptikti ir iš jos išeiti • Keisti aklavietėms įvykti, tada jas aptikti ir tik tada imtis veiksmų kaip išeiti. • Dinaminis išvengimas • Atidžiai paskirstyti resursus, kad aklavietės būtų neįmanomos. • Prenvencija • Iš anksto eliminuoti bent vieną iš būtinų aklavietei įvykti sąlygų, jog ji niekada negalėtų įvykti.
Stručio algoritmas • Apsimetama, kad nėra jokios problemos • Tai pateisinama jei: • aklavietės pasitaiko labai retai • išvengimo kaina yra labai didelė • UNIX ir Windows naudojasi šia galimybe
Aklaviečių aptikimas • Aklavietėms aptikti gali būti naudojami tie patys orientuotieji grafai; • Nurodžius visus resursus ir jų reikalaujančius procesus galima aptikti ciklus ri taip išskirti potencialias aklavietes
Atstatymas po aklavietės • Atsatymas per pirmenybes • Atimamas resursas iš kito proceso; • Priklauso nuo proceso prigimties. • Atstatymas per kitų procesų suspendavimą • Kito proceso būklė išsaugoma ir perimamas resursas; • Kuomet resursas panaudotas ir atlieka – tas resursas gražinamas į buvusią padėtį (pagal prieš tai išsaugotą būseną). • Atstatymas baigiant kitus procesus • Jei norimas resursas naudojamas kito nelabai svarbaus proceso, tas procesas tiesiog užbaigiamas; • Kad jis neliktų neįgyvendintas, po resurso panaudojimo atitinkamai procesas gali būti paleistas iš naujo
Aklaviečių išvengimas • Nurodoma dviejų procesų veiksmų ir naudojamų resursų sankirta; • Tada pagal tai tvarkoma kada kokį procesą vykdyti, kad netektų dalintis bendru resursu.
Aklaviečių prevencija • Prevencijos esmė išvengti aklaviečių susidarymo sąlygų; • Tai daroma dar projektavimo etape, mąstant apie resursų prigimtį ir naudojimo specifiką; • Galimi variantai: • Eliminuoti išskirtinio resurso sąlgą; • Eliminuoti laikymo ir laukimo sąlygą; • Eliminuoti nedalinamų resursų sąlygą; • Eliminuoti grandininio laukio sąlygas.
Išskirtinio resurso sąlygos eliminavimas • Darbas su resursasi vyksta per tarpinį elementą, kuris: • Leidžia vienu metu jį naudoti keliems resursams; • Iš kelių atskirų procesų sudaro atskirus resurso reikalavimo atvejus, kurie vykdomi tik pilnai turint pilną informaciją
Laikymo ir laukimo sąlygos eliminavimas • Išeitis – pareikalauti resurso dar prieš realiai jį užsakant. • Problema – kaikada iš anksto negalima įvertinti kokių resursų prireiks. • Taip pat būtina nuspėti gan daug žingsnių į priekį, kad būtų galima paruošti reikalautą resursą darbui.
Eliminuoti nedalinamų resursų sąlyga • Šio sprendimo dar nelabai yra. • Tai sudėtinga dėl tokių įrenginių skaip spausdintuvai: • Kaip vienu metu spasudintuvas gali spasudinti kelis dokumentus?
Grandinių laukimo sąlygso eliminavimas • Resursai yra tarsi rikiuojami • Sudaromas resursų reikalaujančių procesų grafas aklaviečių preliminariam nuspėjimui
Procesų badavimas • Kad ir kokiso priemonės būtų naudojamos aklaviečių valdymui – būtina įsitikinti, akd nebus juntamas tam tikrų procesų resursų badas • Kad ir labai minimalaus prioriteto procesas, bet galų gale jis turi gauti jam reikiamo resurso dalį