Tupikud. Süsteemi mudel. Tupiku tingimused. Tupikute käsitlemise meetodid. Tupikute ennetamine. Tupikute vältimine. Tupikute avastamine

Similar documents
Ravimi kõlblikkusaeg ja säilitustingimused. Laivi Saaremäel

Lisa 1. EESTI VÕISTLUSTANTSU LIIDU treeneritele kutsekvalifikatsiooni omistamise ÕPPEKAVA. TREENER I, II ja TREENER III ASTE

Vali riba pealt: View > Backgrounds ning lülita taustapilt WBBackground välja nii, et näeksid mudelit selgemalt.

oleopator G Maasse paigaldatav õlipüüdur l Klaasplast I klassi õlipüüdur vastavalt standardile EN 858 Tootesertifikaat Eraldusvõime Materjal

Näide läbi kihtide. Ülesandepüstitus. Kihtideks jagunemine. Serverrakenduse komponendid ja nende vaheline suhtlus.

Tallinna Ülikool Digitehnoloogiate Instituut. Diagrammid ja nende kasutamine Excel 2016 näitel Seminaritöö

Masinloetavate avaandmete esitamine Lennuameti näitel

Elektroonilise ajalehe projekti aruanne. Oleg Mürk

LEGO MINDSTORMS Education NXT v1.1 lühitutvustus

EESTI RIIGIMAANTEEDE TALVISED SEISUNDINÕUDED JA EFEKTIIVSEIM LIBEDUSETÕRJE VIIS

Muuseumide statistika. Kutt Kommel analüütik

OPERATSIOONISÜSTEEMIDE EHITUS. Ülevaade. Taust. Võrkude tüübid. Topoloogiad. Side. Kommunikatsiooni protokollid VARMO VENE & MEELIS ROOS 2

PUUR- JA LÕHKETÖÖDE TEHNILISTE PARAMEETRITE JUHTIMISE VÕIMALUSTE ANALÜÜS PÕLEVKIVI ALLMAAKAEVANDAMISEL ESTONIA KAEVANDUSE TINGIMUSTEL

LOCATIFY. Aarde jaht Veebi juhend

Diagrammid ja nende kasutamine Excel 2016 näitel

ASSA ABLOY Baltic hinnakiri 2016

Väline kvaliteedi kontroll- milline oleks optimaalne valik? Agnes Ivanov Tartu Ülikooli Kliinikum, Ühendlabor

Programmeerimine toimub ikoonide abil. Programm moodustub omavahel juhtmega ühendatud, üksteise järele asetatud ikoonidest. Vaata joonis 1.

Kogemused POCT INRanalüsaatorite. Agnes Ivanov Tartu Ülikooli Kliinikum Ühendlabor

TTÜ EESTI MEREAKADEEMIA. Merendusteaduskond Meretranspordi juhtimise õppetool

Kakskümmend tuhat Ijööd vee all

EUROOPA PARLAMENDI JA NÕUKOGU DIREKTIIV 2006/121/EÜ, 18. detsember 2006,

lainesurf Käsitöö surfilauad musasoovitused Olümpiatüdruk Ingrid Puusta Keenia ja Tenerife reisikirjad Jääsurf

ENTERPRISE ESTONIA NORWAY MIS ON SEKTORI BRAND? MILLEKS ESTONIAN PARTNERSHIP PLATFORM?

Tõnis Vilu ÖKOKRIITILISE ANALÜÜSI VÕIMALUSTEST UKU MASINGU LOODUSTEKSTI MÄLESTUSI TAIMEDEST NÄITEL. Magistritöö

Seiretulemused: soojuslik mugavus ja piirete toimivus

LAOTEHNOLOOGIAD JA -SÜSTEEMID

2018 UEFA SUPER CUP TICKETING TERMS AND CONDITIONS

1.1. The regatta will be governed by the rules as Võistlusreeglite (PVR) alusel.

1.1. The regatta will be governed by the rules as Võistlusreeglite (PVR) alusel.

OSAKAPITALI SISSEMAKSETA ASUTATUD OSAÜHINGUTE JÄTKUSUUTLIKKUSE HINDAMINE

Eesti kui reisisihi turundusstrateegia

EUROOPA ÜHENDUSTE KOMISJON KOMISJONI TEATIS NÕUKOGULE JA EUROOPA PARLAMENDILE. SKP täiendamine Edu mõõtmine muutuvas maailmas

EESTI REISIKORRALDUSETTEVÕTETE SUHTELINE MAKSEJÕULISUS JA TEGEVUSE TÕHUSUS AASTATEL

Ajakohastatud juhend liikmesriikidele vigade käsitlemiseks iga-aastastes kontrolliaruannetes

Avalike ärakuulamiste korraldamise ja läbiviimise töökord ravimiohutuse riskihindamise komitees (PRAC)

Euroopa Komisjon. Kirjuta. selgelt. Tõlge 1

KEILA JK UUDISKIRI OKTOOBER 2017 KEILA JALGPALLIKLUBI AMETLIK TRÜKIPARTNER:

Infosüsteemide etalonturbe süsteemi ISKE rakendamise mõju IT riskidele Eesti avaliku sektori näitel

Sõnavõtt Detroidi Haridusseltsi KODU 85. aastapäeval, 8. oktoobril 2011.a.

Rahvusvaheline Mereorganisatsioon (IMO) pöörab suurt tähelepanu meresõiduohutuse tagamiseks maailmameredel.

VIGADE VÄHENDAMISE VÕIMALUSED LAOPROTSESSIDES MEDIQ EESTI OÜ NÄITEL

This document is a preview generated by EVS

Erkko Teder KÜTTEGA TEED

2018 ESTONIAN OPEN RALLY CHAMPIONSHIP REGULATIONS 2018 EESTI AUTORALLI LAHTISTE MEISTRIVÕISTLUSTE ÜLDJUHEND

Paigaldus-, hooldus- ja kasutusjuhend

Õpilaste jalgrattaohutus Tartu linnas

LEGO Mindstorms NXT ga ühilduv aeglase kiirenduse sensor

ÜHTSE FINANTSARVESTUSE SÜSTEEMI OLULISUS MAJANDUSPOLIITILISTE OTSUSTE LANGETAMISEL LIITUDES EUROOPA LIIDUGA

Eesti sõjalaevastiku olukord ja võimalikud relvahanked Suurbritanniast aastail

MAJANDUSTARKVARA ABACUS KASUTUSPLATVORMI ANALÜÜS

Viimsi arendab veevärki

Head Eesti Vabariigi aastapäeva!

Euroopa hea tava suunised veose kinnitamiseks maanteevedudel

EUROOPA LIIT 2005/0183 (COD) PE-CONS 3696/1/07 REV 1

Imelised Imelised kassid Imelised kassid Imelised kassid KASSID

Maavara kaevandamisõiguse tasu rakendamise analüüs, uued suunad ja ettepanek tasumäärade rakendamiseks aastatel

Mindsensors arvuti kontrolleri kasutamine koolirobootika komplektiga

Keemiadidaktikuna PTUIs. Väino Ratassepp. Möödunud aegade kõne. Leo Villand

SPETSIALISTIDELE MÕELDUD RIIGIHANKEMENETLUSTE SUUNISED

Olulisemad sõlmed mägironimise harrastamiseks

Eesti Õpetajate Keskühingu häälekandja BÜLLETÄÄN. Nr. 27. Bulletin of the Estonian Teachers Association in exile. Stokholm 1979 V', * V \

Ain Kaalep tutvustas Jaan Kaplinskit Uku Masingule aastate

This document is a preview generated by EVS

KARATE JA ENESEKAITSE

EESTI SEAKASVATAJATE TOOTLIKKUS AASTATEL PRODUCTIVITY OF ESTONIAN PIG FARMS IN THE YEARS OF

Sõja- ja kodurinde suhted I maailmasõjas osalenud eesti sõdurite kirjades ja mälestustes 1

VÄIKESTELE JA KESKMISTELE ETTEVÕTETELE

Krediidi kulukuse määr aitab teha keerulisi valikuid krediidimaailmas

Kommunikatsiooni- ja kujunduskäsiraamat

EUROOPA ÜHENDUSTE KOMISJON KOMISJONI SOOVITUS NÕUKOGULE

Eluasemeturu tsüklifaaside analüüs Euroopa riikide ja tsükli indikaatorite hindamine Eesti näitel

Ajakiri Meremees on Eesti Mereakadeemia, merendusettevõtete ja -organisatsioonide toel ilmuv ajakiri.

Audi tortegevusest Eesti Audi torkogu

Golfireeglid. Kinnitanud R&A Rules Ltd ja Ameerika Ühendriikide Golfiliit. 32. väljaanne Kehtiv alates 1. jaanuarist 2012

Jigoro Kano kui judo looja ja arendaja

Milleks mulle eesti keel? Põhikooli õpilaste hoiakutest eesti keele õppe suhtes

This document is a preview generated by EVS

KORVPALLITREENERITE KUTSEKOOLITUSE ÕPIK

direktiivsed kõneaktid ning nende kasutamise dünaamika isa ja ema kõnes: juhtumiuuring

Turu suurus, potentsiaalsete klientide hulk, võrdlus muude sektoritega

Nutikas spetsialiseerumine - kitsaskohtade ja uute võimaluste analüüs. Eesti Arengufond

MERIKOTKA REGATT LÜHIRAJAL 2014 KJK Karikasari. MERIKOTKA REGATTA 2014 KJK Cup juuni 2014 June 13-14, 2014

Komisjoni otsus seoses juhtumiga EE/2012/1352: Eesti konkreetsetes mobiiltelefonivõrkudes häälkõne lõpetamine

SUPPLEMENTARY REGULATIONS VÕISTLUSTE JUHEND

Aksel Kirch Eesti Euroopa Liidus: tagasivaade läbi sotsioloogia peegli

NÕUDLUSPOOLSE INNOVATSIOONIPOLIITIKA ROLL INNOVAATILISE TEGEVUSE EDENDAMISEL ETTEVÕTLUSSEKTORIS ÖKOINNOVATSIOONIDE NÄITEL

Ettepanek: EUROOPA PARLAMENDI JA NÕUKOGU DIREKTIIV,

TARTU ÜLIKOOL ÕIGUSTEADUSKOND Äriõiguse ja intellektuaalse omandi õppetool

PRIVAATSUSÕIGUSE RIIVE PROPORTSIONAALSUSE HINDAMISE KRITEERIUMID EUROOPA LIIDU ÕIGUSES ELEKTROONILISE SIDE ANDMETE KAITSE VALDKONNA NÄITEL

Etnomükoloogiast ja psühhotroopsetest seentest industriaalühiskonnas

Eesti keeleseisund Sisukord

INSTRUCTION MANUAL EN 360: Model Numbers: (See Figure 1) C H I K L M A C E M EN EN 362 EN 362

KOLMANDA SEKTORI RESSURSID JÄRVAMAAL

NAFTAREOSTUSEST PÕHJUSTATUD KAHJU KOMPENSEERIMISE RAHVUSVAHELISE FONDI ASUTAMISE RAHVUSVAHELINE KONVENTSIOON

Euroopa Liidu Nõukogu Brüssel, 23. detsember 2016 (OR. en) Jeppe TRANHOLM-MIKKELSEN, Euroopa Liidu Nõukogu peasekretär

LEGO MINDSTORMS NXT ga ühilduvad alalispinge ja alalisvoolu andurid

Tartu Budoklubi karate vööprogramm.

TALLINNA TEHNIKAÜLIKOOL. Infotehnoloogiateaduskond. Raadio- ja sidetehnika instituut. Telekommunikatsiooni õppetool

Hindamise vajalikkus arengukoostöö tõhususe mõõtmisel: Eesti-Gruusia näitel

Transcription:

Tupikud Süsteemi mudel Tupiku tingimused Tupikute käsitlemise meetodid Tupikute ennetamine Tupikute vältimine Tupikute avastamine Tupikust taastumine Kombineeritud lähenemine MEELIS ROOS 1

Tupikute probleem Tupik hulk blokeerunud protsesse, millest igaüks ootab mingi ressursi taga, mida kasutab mõni teine neist protsessidest Näide: autod kitsal sillal Näide: 4 ristmikku Näide: kaks semafori A ja B, algväärtusega 1 P i wait(a); wait(b); P j wait(b); wait(a); MEELIS ROOS 2

Süsteemi mudel Ressursitüübid R 1, R 2,..., R m Näiteks protsessoriaeg, mäluruum, välisseadmed Igast ressursist R i on W i instantsi Iga protsess kasutab mingit ressurssi niisuguses järjestuses: hõivamine (request) kasutamine vabastamine (release) MEELIS ROOS 3

Tupiku tingimused Tupiku tekkimiseks peavad olema täidetud kõik järgnevad tingimused: Vastastikune välistamine mingit ressurssi saab korraga kasutada ainult üks protsess Hoidmine ja ootamine mingi protsess hoiab vähemalt ühte ressurssi enda käes ja ootab järgmise ressursi hõivamisel Pole väljatõrjumist ressursse vabastatakse ainult vabatahtlikult (pärast kasutamise lõpetamist), neid ei saa jõuga käest ära võtta Tsükliline ootamine leidub hulk protsesse P 0, P 1,..., P n, nii et P i ootab P i+1 taga (0 i n 1) ja P n ootab P 0 taga. MEELIS ROOS 4

Ressursigraaf Protsessidele eraldatud ressursside esitamiseks Tippude hulk V ja servade hulk E V jaguneb kahete tüüpi tippudeks: P = {P 1,..., P n } süsteemi kõigi protsesside hulk R = {R 1,..., R m } süsteemi kõigi ressursitüüpide hulk Soovi serv (request edge) suunatud serv P i R j Kasutusserv (assignment edge) suunatud serv R j P i MEELIS ROOS 5

Ressursigraaf R 1 R 2 P 1 P 2 P 3 R 3 R 4 MEELIS ROOS 6

Tupikuga ressursigraaf R 1 R 2 P 1 P 2 P 3 R 3 R 4 MEELIS ROOS 7

Tsükliga tupikuta ressursigraaf R 1 P 2 P 1 R 2 P 3 P 4 MEELIS ROOS 8

Ressursigraafid ja tupikud Graafis pole tsükleid pole ka tupikuid Graafis on tsükkel Kui iga ressurssi on ainult üks, siis tupik Kui mõnda ressurssi on mitu instantsi, siis on tupiku võimalus MEELIS ROOS 9

Tupikute käsitlemine Tupikute ennetamine ja vältimine garanteerime, et süsteem ei satu kunagi tupikusse Tupikute avastamine lubame süsteemi tupikusse sattuda, avastatud tupikud likvideerime Tupikute ignoreerimine ignoreerime probleemi ja teeme näo, et tupikuid kunagi ei juhtugi Kasutusel enamuse operatsioonisüsteemide poolt, näiteks UNIX MEELIS ROOS 10

Tupikute ennetamine (1) Ingl. deadlock prevention Põhiidee: piirame võimalusi ressursipäringute tegemiseks, nii et vähemalt üks neljast tupiku tingimusest oleks alati väär Vastastikune välistamine pole vajalik jagatavate ressursside puhul, siiski kohustuslik mittejagatavate ressursside puhul Hoidmine ja ootamine garanteerime, et kui protsess küsib mingit ressurssi, siis ta ei omaks teisi ressursse Laseme rakendusel kõik kasutatavad ressursid käivitamise alguses ära küsida või lubame ainult siis uusi ressursse võtta, kui vanad on vabastatud Ebaefektiivne ressursikasutus, võimalik näljutamine MEELIS ROOS 11

Tupikute ennetamine (2) Pole väljatõrjumist kui protsess hoiab ressursse ja küsib uusi, mida kohe ei saa, siis anname vanad ressursid kah seni vabaks ja ta ootab nüüd ka nende järgi Alternatiiv kui küsitav ressurss pole vaba, aga selle on hõivanud mõni parajasti ootel olev protsess, võtame selle talt ära Tsükliline ootamine kasutame ressursside täielikku järjestust ja laseme igal protsessil võtta juurde ainult sellist tüüpi ressursse, mille number pole väiksem ühestki olemasolevast MEELIS ROOS 12

Tupikute vältimine Ingl. deadlock avoidance Süsteem vajab lisainfot selle kohta, kui palju ja missuguseid ressursse protsessid tulevikus kasutada tahavad Lihtsaim ja kasulikeim mudel käsib igal protsessil deklareerida maksimaalsed vajadused ressursside kohta Tupikute vältimise algoritm uurib dünaamiliselt ressursitabelit, et ei saaks tekkida tsüklilise ootamise situatsiooni Ressursside hõivatuse oleku defineerivad vabade ja hõivatud ressursside arvud ja protsesside maksimaalsed nõudmised neile MEELIS ROOS 13

Ohutud olekud (1) Kui protsess nõuab ressurssi, siis süsteem peab otsustama, kas allokeerimise tulemusena oleks olek ohutu Olekut loetakse ohutuks, kui leidub ohutu järjestus protsessidest Protsesside järjestus < P 1, P 2,..., P n > on ohutu, kui iga P i nõudmised saab rahuldada selleks hetkeks vabade ning protsesside P j (j < i) poolt kasutatavate ressurssidega Kui protsessi P i ressursivajadused pole koheselt rahuldatavad, siis P i ootab, kuni ressursse kinni hoidvad protsessid P j on lõpetanud Kui protsessid P j on lõpetanud, saab protsess P i vajaminevad ressursid oma käsutusse ning vabastab need peale kasutamist Seejärel saab protsess P i+1 talle vajalikud ressursid jne. MEELIS ROOS 14

Ohutud olekud (2) Kui süsteem on ohutus olekus pole tupikuid Kui süsteem on ohtlikus olekus (s.t. pole ohutu) tupikud on võimalikud Siiski pole kõik ohtlikud olekud tupikud Tupikute vältimiseks garanteerime, et süsteem ei satuks ohtlikku olekusse MEELIS ROOS 15

Ressursigraafi algoritm Kui igast ressursist on üks eksemplar, saab ohtlike olekute kindlakstegemiseks kasutada modifitseeritud ressursigraafi Nõudmise serv P i R j näitab, et protsess P i võib nõuda ressurssi R j (tähistame sinisega) Nõudmise serv muutub soovi servaks, kui protsess reaalselt nõuab seda ressurssi (tähistame rohelisega) Ressursi vabastamisel läheb serv tagasi nõudmise servaks Nõudmised peavad ette teada olema Kui graafis leidub tsükkel, siis on tegemist ohtliku olukorraga MEELIS ROOS 16

Ressursigraafi algoritmi näide Ohutus olekus oleva süsteemi ressursigraaf R 1 P 1 P 2 R 2 MEELIS ROOS 17

Ressursigraafi algoritmi näide Ressursi R 2 andmisel protsessile P 2 muutub olek ohtlikuks R 1 P 1 P 2 R 2 MEELIS ROOS 18

Pankuri algoritmi eeldused Igast ressursist on palju instantse Iga protsess peab ette ära ütlema maksimaalse ressursikasutuse Ressursi küsimisel võib protsess ootele jääda Ressursid tuleb lõpliku aja jooksul tagastada MEELIS ROOS 19

Pankuri algoritmi andmed Olgu n protsesside arv ja m ressursitüüpide arv Available vektor pikkusega m. Available[j] = k tähendab, et ressurssi R j on saadaval k tükki Max n m maatriks. Max[i, j] = k tähendab, et P i tohib küsida max. k instantsi ressursist R j Allocation n m maatriks. Näitab, kui palju ressursse hetkel protsesside poolt kasutusel on Need n m maatriks. Näitab, kui palju ressursse on veel vaja töö lõpetamiseks Need[i, j] = Max[i, j] Allocation[i, j] MEELIS ROOS 20

Pankuri algoritm ise 1. Olgu Work ja Finish vektorid pikkusega m ja n 2. Initsialiseerimine Work = Available, Finish[i] = f alse 3. Leiame sellise i, et kehtiksid Finish[i] = f alse Need i Work 4. Kui sellist i ei leidu, mine sammule 6 5. Work = Work+ Allocation i Finish[i] = true Mine sammule 3 6. Kui iga i korral Finish[i] == true, siis on süsteem ohutus olekus MEELIS ROOS 21

Pankuri algoritm ressursi küsimine Request i järgmisena küsitavate ressursside vektor 1. Kui Request i Need i, siis mine sammule 2; vastasel juhul viga, kuna protsess on ületanud oma maksimaalsed ressursinõuded 2. Kui Request i Available, siis mine sammule 3; vastasel juhul peab protsess P i ootama, kuna ressursid ei ole vabad 3. Simuleerime nõudmise täitmist: Available = Available Request i Allocation i = Allocation i + Request i Need i = Need i Request i Kui saadud olek on ohutu, siis anname protsessile need ressursid Vastasel juhul peab protsess ootama ning muutujate vanad väärtused taastatakse MEELIS ROOS 22

Tupikute avastamine (1) Laseme süsteemi tupikusse, avastame selle ja kõrvaldame tupiku Kui igast ressursitüübist on üks eksemplar, siis kasutame ootamisgraafi Ootamisgraaf on ressursigraafi modifikatsioon, kust ressursitipud on välja jäetud ja vastavad servad on kokku viidud Aegajalt otsime sellest graafist tsükleid (operatsiooni keerukus on n 2 ) MEELIS ROOS 23

Ressursigraaf ja ootamisgraaf P 5 P 5 R 1 R 3 R 4 P 1 P 2 P 3 P 1 P 3 P 2 R 2 P 4 R 5 P 4 MEELIS ROOS 24

Tupikute avastamine (2) Mitme ressursiinstantsi korral kasutame modifitseeritud pankuri algoritmi: 1. Olgu Work ja Finish vektorid pikkusega m ja n 2. Initsialiseerime Work = Available, Finish[i] = (Allocation[i] == 0) (i == 1..n) 3. Leiame sellise i, mille korral Finish[i] = f alse Need i Work Kui sellist ei leidu, mine sammule 5 4. Work = Work+ Allocation i Finish[i] = true Mine sammule 3 5. Kui Finish[i] == f alse, siis on protsess P i tupikus MEELIS ROOS 25

Tupikute avastamine (3) See, millal ja kui tihti tupikute avastamise algoritme kasutada, sõltub Tupikute tekkimise tõenäosusest Tupikutest mõjutatavate protsesside arvust Liiga sagedane kasutamine on ebaefektiivne Liiga harv kasutamine teeb keeruliseks tupikut põhjustava protsessi leidmise MEELIS ROOS 26

Tupikutest taastumine Protsesside termineerimine Tapame kõik tupikusse sattunud protsessid väga kulukas Tapame tupikus protsesse ükshaaval, kuni tupik on kõrvaldatud samuti üsna kulukas millises järjekorras tappa (prioriteedid, juba kulunud aeg, ressursside olemasolu/vajadus,... )? Ressursi väljatõrjumine Valime ohvri tupikus oleva protsessi, mille katkestamine on kõige odavam Kerime tagasi pöördume tagasi mõnda ohutusse olekusse ja taaskäivitame protsessi sealt Näljutamine võib juhtuda, et valime alati sama ohvri MEELIS ROOS 27

Kombineeritud meetodid Grupeerime ressursid erinevatesse hierarhiliselt järjestatud klassidesse, näiteks Põhimälu Sekundaarne mälu Protsessiressursid (I/O seadmed, failid,... ) Klasside vahel kasutame tsüklilise ootamise ennetamist Iga klassi sees kasutame seal kõige paremini sobivat meetodit (s.t. kas ennetamist, vältimist või avastamist) MEELIS ROOS 28