0.1 Smrtni objem

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