3. Performanse operativne memorije Dva osnovna aspekta koja razmatramo: brzina i iskorišćenje Nije bitan samo fizički kapacitet memorije, nego nam je od značaja i efektivni adresni prostor -to je prostor koji stoji programeru na raspolaganju i ne mora biti isti kao fizički ki. Virtuelne tehnike daju veće iskorišćenje u odnosu na nevirtuelne. Deo memorije se koristi za smeštaj operativnog sistema (OS-a). Gustina koda koji generišu razni kompajleri je različit ita. 1
Tehnike upravljanja j memorijom 1. monoprogramska tehnika : personalni računar ili radna stanica gde se u jednom trenutku izvršava samo jedan program 2. multiprogramske tehnike: više programa se simultano izvršava 2.1 sistemi sa particijama (nevirtuelne tehnike) 2.1.1 statičke particije (postoje particije fiksne veličine u koje se smeštaju programi koji se simultano izvršavaju) 2.1.2 Dinamičke particije (veličine su im određene veličinom programa i redosledom smeštanja programa u memoriju, ali nema premeštanja programa) 2.1.3 relokatibilne particije (relokacijom se obezbeđuje sjedinjavanje manjih particija da bi se obezbedilo dovoljno prostora za smeštaj nekog programa) 2
214 2.1.4 statičke tičk stranice -straničenje (paging), i celi program je u O.M, ali jedan program može biti smešten u više stranica koje fizički ne moraju biti susedne. 2.2 tehnike virtuelne memorije 2.2.1 Dinamičko straničenje - virtuelna memorija koja je organizovana stranično, no, ceo program se nalazi na disku, a samo deo u O.M. 2.2.2 Dinamički segmenti - segmenti programa su logičke celine za razliku od stranica 2.2.3 DEMAND-PAGED-SEGMENTATION - kombinovana tehnika dinamičkih stranica i dinamičkih segmenata 3
Pretpostavke t ke: 1. U operativnoj memoriji se nalazi O.S. i skup programa koji se obradjuju. Izvor programa red za čekanje FCFS (First Come, First Served) OS neiskorišćeni deo skup programa koji se obradjuje 4
2. 2 Smatra se da red za čekanje nije prazan, kapacitet izvora je takav da uvek neki program čeka (kapacitet izvora programa je dovoljan za to) 3. Raspodela veličine programa će se najčešće uzimati da je uniformna (ravnomerna), što znači dajeravnomeran broj malih i velikih programa. Ako je a prosečna veličina programa, 2 a je max. veličina programa. Ps(x)=1/(2a) ( ) 0 < a 0.5 Za iskorišćenje išć memorije je a 2a 1 x bitno koliko vremena program ostaje u memoriji 5
4. Raspodela vremena obrade programa (koliko se program zadržava u memoriji) a)ravnomerna raspodela za vreme obrade b)eksponenecijalna raspodela 5. Međuzavisnostđ raspodele veličine i vremena obrade programa a) nezavisne su b) linearno su zavisne: time=k size (vreme obrade zavisi od veličine programa) 6
Model monoprogramskog sistema Memorija Os U(t) - iskorišćenje s3 1 s1 Korisnički t1 s2 s4 Program t 7
Ū(a)(srednje iskorišćenje)= T 1 u( t) dt T 0 Ako posmatramo interval vremena u kome se izvrši n programa, tada je srednja iskorišćenost: Ū(a) =(s 1 t 1 +s 2 t 2 + +s n t n )/(t 1 +t 2 + +t n ) Ū(a) =k (s 1 ²+ s 2 ²+ +s n ²)/k ( s 1 + s 2 + +s n ) n 1 2 1 U( a) ( S )/( S ) i n n = n i i = 1 i = 1 8
(1) (2) n 2a (1/ n) S = x g (x)dx = (1/ 2a) xdx = a i s i1 = 0 0 n 2a 2a 2 2 2 2 i = s = = i= 1 0 0 (1/ n) S x g (x)dx (1/ 2a) x dx 4a / 3 2a g(x) s iz (1) i (2) U(a)=4 a/3 - gustina raspodele veličine programa (u ovom slučaju 1/2a) za a=0.5 (2a=1, tj. max. veličina programa takva da ispunjava celi korisničkiki prostor): U max (a) = 2/3 9
Diskretni i Markovljevi lanci Pretpostavke 1. Skup stanja je sa konačnim brojem elemenata: S={S 1,S 2,,S n } 2. Diskretna vremenska koordinata t k - trenuci posmatranja: t k =k Δt u tim trenucima dolazi do eventualne promene stanja 3. Prelazak u novo stanje Si Sj je trenutan i dešava se samo u trenutku koji je multipl Δt. 10
U svakom stanju sistem se zadržava ava Δt t a u trenucima k Δt je moguća promena stanja Sj Si Δt Δt 11
4. Za stanje sistema u trenutku t k (za vreme k-tog intervala dužine Δt) možemo reći da postoji stohastička (slučajna) sekvenca stanja z:=z 1z 2 z n (z i S, i=1,2, ). Da bi ova sekvenca predstavljala homogeni diskretni Markovljev lanac mora da važi: P r (z k+1 =S j z k =S i )=q ij =const. verovatnoća prelaska iz stanja i u stanje j je konstantna 12
Stanja ne zavise od predistorije, već samo od tekućegeg stanja, q ij ne zavisi od toga kako se došlo u S i. Za ovakav sistem se kaže da nema memoriju (ne pamti). Može se predstavititi grafom prelaza i matricom (n xn) verovatnoća q ij. Mora da važi: n j1 = q = 1 ij q 21 S2 S1 q 12 q 23 q 11 q 13 q 31 S3 q 22 q 32 q 33 13
Posmatramo sekvencu stanja z=s 1 S 2 S 3 S 1 S 1 S 2 S 2 S 1 S 2 S 3 Rekurentno vreme je vreme između 2 sukcesivne pojave istog stanja (minimum za ovu veličinu je Δt) Tr 1 =3Δt, Δt, 3Δt, sekvenca rekurentnog vremena Tr 2 =4Δt, Δt, 2Δt, min.tr i =Δt Tr 3 =7Δt, Posmatramo isključivo sisteme Tr i < što znači dane možebiti: ovde ne možemo da se vratimo, tj. Tr je beskonačno 14
Osobine: za svako stanje S i važi da je Tr i je slučajna promenljiva za koju važi 0<Tr i <. Ako je T je interval posmatranja sistema, a T i ukupno vreme provedeno u stanju S i tokom tog intervala, tada je: p = lim T / T, S i i i T Gde je p i verovatnoća stanja S i, i gde je i=1,,n. Prosečno rekurentno vreme: Tr = Δ t limt / T =Δ t / p, S i i i i T Stacionarna verovatnoća boravka sistema u stanju S i iznosi p i. 15
p i je verovatnoća da se bude u stanju Si (stacionarna verovatnoća stanja Si) q ij je uslovna verovatnoća da sistem iz stanja Si prelazi u stanje Sj, pod uslovom da je sistem već ć u stanju Si. Jednačine stanja: p 1 =q 11 p 1 +q 21 p 2 +..+q n1 p n p 2 =q 12 p 1 +q 22 p 2 +..+q n2 p n... p n =q 1n p 1 +q 2n p 2 +..+q nn p n 1=p 1 +p 2 +..+p n 16
Za n=2 imamo: p 1 =q 11 p 1 +q 21 p 2 p 2 =q 12 p 1 +q 22 p 2 1=p 1 +p 2 Pošto sistem mora preći u neko stanje ili ostati u istom stanju, mora da važi i sledeće: q 11 +q 12 =1 q 21 +q 22 =1 Odavde se dobija: p1=(1-q22)/(1+q12-q22) p2=q12/(1+q12-q22) 17
Hoćemo da odredimo prosečan broj sukcesivnih intervala u stanju S i. Obeležimo taj broj sa N i. Ako je q ii uslovna verovatnoća da će sistem ostati u stanju S i (pod uslovom da se već nalazi u stanju S i ), onda je verovatnoća da sistem napusti stanje Si jednaka 1-q ii. Verovatnoća da sistem bude u stanju S i tačno k intervala: q ii P(k) = q (1 q ) k 1 i ii ii S1 k 1 i = i = ii ii = = ii k= 1 k= 1 N k P(k) (1 q ) k q... 1/(1 q ) 1-q ii 18
stanje Tci - ciklus i-tog stanja van i-tog stanja u i-tom stanju Tsi Toi Tsi Toi Δt Δt 1 2 3 4 5 6 7 8 9 10 11 12 13 vreme u nekom od ostalih stanja 19
Prosečna vremena u i-tom Tci = Tsi + Toi stanju i van i-tog stanja Tci = T si /p T /T T = p si ci i ri =Δt/p i i T = Δt/(p (1 q )) = ci i ii = N Tr = N Δt limt/t i i i i T 20
3.1 Iskorišćenje kod sistema sa 2 statičke particije 31 3.1 iskorišćenje išć kod sistema sa 2 statičke tičk particije Najprostiji slučaj multiprogramsk ultiprogramskog sistema sa statičkim particijama Veličina poslova je od 0 do 1 i je broj posla, a S i njegova veličina. Veća ć particija ij se normalizuje na 1(OS (O.S.<1), manja particija ij je veličine x (x<=1). Interesuje nas koliko treba da je x da bi se dobilo maksimalno ik iskorišćenje, išć odnosno, kako k podeliti particije. ij Definišemoemo politiku popunjavanja (smeštanja u memoriju) i koristimo BEST-FIT algoritam. 21
3.1 Iskorišćenje kod sistema sa 2 statičke particije Posao se ubacuje u najmanju od slobodnih particija u koju može da stane. Pretpostavke: -vreme zadržavanja procesa u memoriji je konstantno -veličina procesa je uniformno raspodeljena od 0 do 1 -svi događajiaji se dešavaju u diskretnim i trenucima O.S Part#1 JOB#1 1 Part#2 JOB#2 x (x<1) 22
3.1 Iskorišćenje kod sistema sa 2 statičke particije Da Si x Ne Si se puni u Si se puni u manju particiju veću particiju Da Si+1 x Ne puni se Si+1u puni se manja veću particiju u manju particija particiju ostaje prazna Događaji aji u vezi sa veličinom posla: (1) S>x q1=p r [S>x]=1-x Part#1 (2) S x q2=p r [S x]= x Part#2 max. veličina je 1, tj. 2 a=1, a=0.5 Iskorišćenje particije #1 je: u 1 (s>x)=(1+x)/2 -srednja vrednost je najmanjeg (x + ) i najvećeg (1) posla koji mora u Part#1 Iskorišćenje particije #2 je: u 1 (s x)= x/2 iskorišćenja su apsolutna i predstavljaju zauzeće memorije 23
3.1 Iskorišćenje kod sistema sa 2 statičke particije Stanja u memoriji u odnosu na redosled ovih dogadjaja: :S, i S i+1 posmatraju se uvek 2 susedna posla (B-big, S-small) pri čemu big ne može da stane u manju particiji Moguća stanja u memoriji su: 10 popunjena samo veća particija, posao koji čeka je veliki da bi stao u malu particiju 12 u manjoj particiji je mali, a u većoj veliki posao 22 u obe particije je mali posao (S x) 24
3.1 Iskorišćenje kod sistema sa 2 statičke particije BB S i >x, S i+1 >x BS S i >x, S i+1 x SB S i x, S i+1 >x SS S i x, S i+1 x Stanje Događaj sadržaj Part#1 prosečno iskorišćenje u1 10 BB S i >x (1+x)/2 12 sadržaj 0 (Si+1>x) Part#2 prosečno iskorišćenje u2 Ukupno rel. iskorišćenje ver. stanja 0 ½ P10 BS Si>x (1+x)/2 Si+1 x x/2 (1+2 x)/2 (1+x) SB Si+1>x (1+x)/2 S i x x/2 (1+2 x)/2 (1+x) 22 SS Si+1 x x/2 S i x x/2 x/(1+x) P22 P12 25
3.1 Iskorišćenje kod sistema sa 2 statičke particije Srednje iskorišćenje memorije: Ū2(x)=(1/2) p 10 (x)+(2 x+1)/(2 (x+1)) p 12 (x)+x/(x+1) p 22 (x) (=ū) Obeležili smo iskorišćenje sa U 2 zato što imamo 2 particije. Treba da odredimo verovatnoće prelaza između stanja. Na primer, za prelaze iz stanja 10 u neko drugo stanje: P [10 10]=P r 10]=P [S r i+2 >x]=q 1 =1-x P [10 12]=P r 12]=P [S r i+2 x]=q q 2 = x Prelaz iz 10 u 22 nije moguć 26
3.1 Iskorišćenje kod sistema sa 2 statičke particije Određujemo verovatnoću da se bude u nekom od stanja: p 10 =q =q 1 p 10 +q 1 ² p 12 +q 1 ² p 22 12 =q 2 p 10 +2 q1 q 2 p 12 +2 q1 q 2 p 22 =0 p 10 +q ² p 2 12 +q 2 ² p 22 p 12 p 22 p 22 22 p 10 +p 12 +p 22 =1 Veći posao ne ide u manju particiju Iz stanja u stanje 10 12 22 10 q 1 q 1 ² q 1 ² 12 q 2 2 q 1 q 2 2 q 1 q 2 22 0 q 2 ² q 2 ² 27
3.1 Iskorišćenje kod sistema sa 2 statičke particije P =q ²/(q ²+q )=(1-x) 1 1 2 ²/(1-x+x²) P 10 =q =(q 2 (1-q )²/(q ²+q )=(x (1-x²))/(1 2 1 2 x²))/(1-x-x²) P 12 =(q P 22 =q ²/(q 2 1 ²+q 2 Pr[S>x]=1-x=q1 U (x)=(1/2) p 2 10 ²+q 2 )=x³/(1-x-x²) x²) Pr[S x]= x=q 2 (x)+(2 x+1)/(2 (x+1)) p 12 (x)+x/(x+1) p 22 (x) U 2 (x)=1/2 (x²+1)/(x³+1) U2(0)=1/2 U2(1)=1/2 Za x=0 praktično imamo jednu particiju, a za x=1 imamo dve potpuno jednake particije uz iskorišćenje ½, što je isto kao i uslučaju jedne particije. 28
3.1 Iskorišćenje kod sistema sa 2 statičke particije Izračunavamo x za maksimalno iskorišćenje: du (x)/dx 2 dx=0 x opt ³+3 x opt -2=0 i jednačina ima jedno rešenjeenje U X opt = (1+ 2)+ (1-2)=0.596 2) 2) 0 U 2opt =U 2 (0.596)=0.559~56% x Idealna podela memorije je tada 1:0.6 0 X opt 1 Tada je: p 10 (xopt)=0.2149, p 12 (xopt)=0.5062, p 22 (xopt)=0.2789 Prosečan stepen multiprogramiranja srednji broj poslova koji se istovremeno izvršavaju (nalaze u memoriji). N multi (x opt )=1 p 10 +2 (p 12 +p 22 )=1.7851 za x optimalno 29
3.1 Iskorišćenje kod sistema sa 2 statičke particije slučaj č sa ti tri particije ij Raspoloživu memoriju delimo na tri dela, npr. u odnosu 1:x:y,, gde je y x 1 Za optimalnu podelu, dobije se iskorišćenje oko 60% xopt=0.83% yopt=0.39% U3(xopt)=0.5953 1 x y OS 30
3.1 Iskorišćenje kod sistema sa 2 statičke particije Ako hoćemo da zaobiđemo pretpostavke možemo u simulatoru da biramo i trajanje (t) i veličinu posla (S). Uz pretpostavku da je t proporcionalno sa S, za 2 particije se dobija: U 2 (0.8)=62.9% gde je jedna particija veličine 1, a druga veličine 0.8. Simulacija za 3 particije: U 3 (x,y x,y)= U 3 (0.95,0.7)=69.1% Globalno particijski: ~ 60% 31