0.1 Smrtni objem Opis Na računalniku teče 5 procesov (P1-P5), ki morajo med svojim delovanjem uporabiti različne vire (V/I naprave, datoteke). Procesi in viri, ki jih potrebujejo procesi, so podani v tabeli 1. P1 P2 P3 P4 P5 R1 R2 R3 R4 R5 R6 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 2 0 0 0 1 Tabela 1: Procesi in potrebni viri. R1 R2 R3 R4 R5 R6 . . . datoteka poslovanje.dat . . . faks/telefonska linija (na voljo imamo 2 liniji) . . . datoteka kontakti.dat . . . datoteka proizvodnja.dat . . . datoteka arhiv.dat . . . tračna enota (na voljo imamo 2 enoti) Trenutno ima P1 zaseženo datoteko poslovanje.dat, faks/telefonsko linijo ter eno tračno enoto. P4 ima zaseženo datoteko arhiv.dat. P5 ima zaseženo datoteko proizvodnja.dat, drugo telefonsko linijo ter eno od tračnih enot. Privzamemo, da so vsi dostopi do datotek bralno-pisalni in, da uporabljamo izključujoče zaklepanje. Če je nek vir zaseden, proces počaka, da se vir sprosti. (a) S pomočjo algoritma za ugotavljanje smrtnega objema ugotovite, ali je v sistemu prišlo do smrtnega objema. Če je, kje? (b) Predpostavimo, da proces P3 potrebuje dostop do datoteke kontakti.dat in, da jo ima trenutno zaseženo. Vsi ostali podatki ostanejo isti. Ponovite postopek ugotavljanja smrtnega objema. (c) Narišite graf alociranja virov in označite morebiten smrtni objem za obe različici naloge. 1 Rešitev (a) P1 P2 P3 P4 P5 R1 R2 R3 R4 R5 R6 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 Tabela 2: Matrika A (alocirani viri) P1 P2 P3 P4 P5 R1 R2 R3 R4 R5 R6 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 Tabela 3: Matrika Q (matrika zahtev) R = (1, 2, 1, 1, 1, 2) V = (0, 0, 1, 0, 0, 0) Postopek: Označujemo procese, ki niso problematični z vidika smrtnega objema: • P2: označimo, ker nima nobenih dodeljenih virov • P3: označimo, ker nima nobenih dodeljenih virov • W = V = [001000] • Iščemo Qik ≤ Wk ; 1 ≤ k ≤ m, m = |R| • P1: ne ustreza, ker Q15 > W5 , Q16 > W6 • P4: ne ustreza, ker Q41 > W1 • P5: v redu, 001000 ≤ 001000; označimo 2 • W ← W + A5 = [001000] + [010101] = [011101] • P1: ne ustreza, ker Q15 > W5 • P4: ne ustreza, ker Q41 > W4 • mrtva zanka: P 1 ⇔ P 4 (b) P3 R1 R2 R3 R4 R5 R6 0 0 1 0 0 0 Tabela 4: Matrika C - samo za P3 P3 R1 R2 R3 R4 R5 R6 0 0 1 0 0 0 Tabela 5: Matrika A - samo za P3 P3 R1 R2 R3 R4 R5 R6 0 0 0 0 0 0 Tabela 6: Matrika Q - samo za P3 V = (0, 0, 0, 0, 0, 0) Postopek (preverjanje ustreznosti v rahlo spremenjenem vrstnem redu): • P2: označimo, ker nima nobenih dodeljenih virov • W = V = [000000] • P1: ne ustreza, ker Q13 > W3 , Q15 > W5 , Q16 > W6 • P4: ne ustreza, ker Q13 > W3 , Q41 > W1 • P5: ne ustreza, ker Q13 > W3 • P3: v redu: 000000 ≤ 000000; označimo • W ← W + A3 = [000000] + [001000] Od tu naprej isto kot (a). 3 (c) R1 R2 R6 P5 P1 R3 P4 P2 P3 R5 R4 R1 R2 R6 P5 P1 R3 P4 P2 P3 R5 R4 Slika 1: Graf alociranja virov - cikel je označen z rdečo barvo. Veljajo naslednje ugotovitve: • ni cikla → ni smrtnega objema • smrtni objem → cikel • cikel → lahko smrtni objem, lahko tudi ne (potrebno gledati števnost 4 virov) • viri z števnostjo 1 in cikel → smrtni objem 5 0.1 Opis Sistem prijateljev (buddy system) Po sistemu prijateljev pokaºi kako izgleda razdeljevanje pomnilnika velikosti 1MB v primeru naslednjih zahtevkov: • zahtevaj A (62 KB) • zahtevaj B (312 KB) • zahtevaj C (100 KB) • zahtevaj D (112 KB) • sprosti A • zahtevaj E (80 KB) • sprosti D • sprosti E • sprosti C • sprosti B Re²itev Pri sistemu prijateljev celoten pomnilnik obravnavamo kot en blok velikosti e je zahteva velikosti 2 U −1 U <s<2 2U . , zasedemo celoten blok, sicer ga razde- limo na dva dela. Na² pomnilnik je velikosti 1 MB, torej 210 KB. Prvi zahtevek za 62 KB je manj²i od 29 (512 KB), zato pomnilnik razdelimo na pol. Ker je 62 KB manj od (256 KB) pomnilnik ponovno razdelimo na pol. Ker je 62 KB manj od KB) pomnilnik ponovno razdelimo na pol. Ker je 62 KB med (64 KB), zasedemo celoten del od 0 do 2 6 25 6 2 28 (64 (32 KB) in 26 (64 KB). Naslednja zahteva je B (312 KB). Zahteva B zasede blok velikosti 29 (512 KB), ker je na voljo samo en tak blok, zasede kar tega. Naslednja zahteva je C (100 KB), ki zasede blok velikosti zasedemo prvi prost blok velikosti 7 2 naslednji prosti blok velikosti blok velikosti 2 (128 KB), zato . Naslednja zahteva je D (112 KB), ki zasede blok velikosti 8 27 27 (128 KB), ker je , ga razdelimo na pol in zasedemo prvi prost 27 . Zatem sprostimo A, pri £emer spro²£eni del zdruºimo s sosednjim, ki je prav tako prost in dobimo 2x ve£ji prosti del. Naslednja zahteva je E (80 KB), ki zasede blok velikosti 27 (128 KB), zato zasedemo prvi prosti blok, ki je ravno te velikosti. Zatem sprostimo D, E, C in D. Pri tem pa paroma zdruºujemo proste dele. 2 3 0.2 Opis Princip ure (Clock policy) Za spodnji tok naslovov strani, ki so potrebni za izvajanje nekega programa, kjer ima proces v glavnem pomnilniku na voljo le tri okvirje, zapi²ite postopek delovanja zamenjevalnega algoritma po principu ure in pre²tejte napake strani. 2 3 2 1 5 2 4 5 3 2 5 2 Namig Princip ure uporablja dodaten bit za ozna£evanje uporabe. Ko je stran prvi£ naloºena v pomnilnik, se bit nastavi na 0, ob uporabi strani, pa se bit nastavi na 1. Ko je potrebno zamenjati stran, se zamenja prvi okvir z vrednostjo bita 0. Med iskanjem okvirja se vsak bit iz 1 spremeni v 0. Re²itev 2 > 3 2 1 5 2 4 5 3 2 5 2 2* 2* 2*>2* 5* 5*>5*>5* 3* 3*>3*>3* 3* 3* 3*>3 2* 2* 2*>2 >2* 2 2* > > 1* 1 >1 4* 4* 4 4 5* 5* F F F F F Zgre²itev oziroma napak strani je 5. 4 1.1 Kratkoro£no razporejanje - Najprej tisti z najkraj²im preostankom £asa (SRT) Opis Skiciraj delovanje algoritma "najprej tisti z najkraj²im preostankom £asa"(SRT) za spodnje podatke. Proces A B C D D as prispetja 0 2 4 6 8 as izvajanja 3 6 3 5 2 Re²itev Ko nastopi nov proces, pogledamo ali je njegov £as izvajanja manj²i kot preostali £as tistega katerega smo prekinili. e je manj²i potem damo izvajajo£ proces v £akalno vrsto. Tukaj lahko prihajajo£i proces prekini trenutnega (Preemptive). Slika 1: SRT 3 1.2 Kratkoro£no razporejanje - Najprej tisti z najve£jim odzivnim razmerjem (HRRN) Skiciraj delovanje algoritma "najprej tisti z najve£jim odzivnim razmerjem"(HRRN) za spodnje podatke. Proces A B C D D as prispetja 0 2 4 6 8 as izvajanja 3 6 3 5 2 Re²itev Tukaj moramo vedeti, da ko se proces za£ne se tudi kon£a. Ga ne more prekiniti nov proces (Nonpreemptive). Ko se proces kon£a preverimo med vsemi procesi, ki £akajo razmerje: cas cakanja + pricakovan cas izvajanja pricakovan cas izvajanja Proces ki ima najve£je razmerje, nastopi prvi. V na²em primeru imajo ob £asu 9, ko se kon£a proces B: R= • proces C: RC = 5+3 3 = 2, 67 • proces D: RD = 3+5 5 = 1, 6 • proces E: RE = 1+2 2 = 1, 5 Naslednji je proces C, ki ima najve£je razmerje. V na²em primeru imata ob £asu 12, ko se kon£a proces C: • proces D: RD = 6+5 5 = 2, 2 • proces E: RE = 4+2 2 =3 Naslednji je proces E, ki ima najve£je razmerje. Primerjava u£inkvitosti Za posamezen algoritem povzamimo nekaj klju£nih rezultatov (tabela 1.2): • £as ko se proces kon£a (kon£ni £as) • turnaround time Tr = Tw +Ts (je celotni £as ki ga proces preºivi v sistemu (£as izvajanja (Ts ) + £as £akanja (Tw )). • ter ²e najbolj²a ocena u£inkovistosti je normaliziran turnaround time, ki je razmirje med turnaround time in service time (Tr /Ts ). 4 Slika 2: HRRN Proces as prispetja as izvajanja (Ts ) kon£ni £as turnaround time (Tr ) Tr /Ts kon£ni £as turnaround time (Tr ) Tr /Ts A B 0 2 3 6 SRT 3 14 3 12 1,00 2,00 HRRN 3 9 3 7 1,00 1,17 C 4 3 D 6 5 E 8 2 7 3 1,00 19 13 2,60 10 2 1,00 12 8 2,67 19 13 2,60 14 6 3 povpre£je 6,6 1,52 povpre£je 7,40 2,09 Tabela 1: primerjava u£inkovitosti algoritma SRT in HRRN 5
© Copyright 2024