2. Zatvorene mreže (definicija). Zatvorena mreža : Mreža u kojoj j je broj poslova konstantan n =const - stepen multiprogramiranja Koliko poslova uđe u mrežu, toliko istovremeno i izađe (kada se jedan zahtev opsluži, on napušta mrežu i umesto njega dolazi drugi posao n = const.) Otvorena mreža: postoji ulazni tok procesa u sistem. Broj poslova je promenljiv, ali tok procesa je konstantan u proseku. Tri načina za modeliranje zatvorenih mreža:. Ciklični model multiprogramiranja (CMMP) 2. Stohastički model mreže sa centralnim serverom (MCS) 3. Opsti model multiprogramiranja
2. Zatvorene mreže (definicija) Pojedinačni servisni centar u zatvorenoj mreži može da bude: jedan par: red za čekanje-server ekvivalentni paralelni serveri neekvivalentani paralelni serveri 2
2. Zatvorene mreže (definicija) Procesorski podsistem U/I podsistem (fajlovi) Model opterećenja: FOR I:= to Ntr Read (disk, pristup) Compute (m instrukcija) END n ovakvih poslova Ntr N transakcija 3
2. Ciklični model multiprogramiranja (CMMP). Pretpostavke:. stepen multiprogramiranja je konstantan (broj zahteva je nepromenljiv) 2. vreme opsluživanja procesora ima eksponencijalnu raspodelu sa parametrom μ 3. vreme opsluživanja U/I podsistema ima eksponencijalnu raspodelu sa parametrom λ 4. svi poslovi su istog prioriteta Prva varijanta CMMP q 0 verovatnoća završetka Procesorski nekog posla podsistem q q 0 + q = U/I N poslova podsistem Druga varijanta CMMP Procesorski podsistem x n poslova N q 0 =, q 0 =/N U/I podsistem 4
2. Ciklični model multiprogramiranja (CMMP) n-i i Događaji su prelasci iz jednog podsistema u drugi do kojih μ CPU podsistem dolazi po završetku servisiranja na nekom serveru. Verovatnoća da se više događaja desi istovremeno je 0. μ Stanja karakterišemo trenutnim brojem procesa u jednom od Podsistema (npr. periferijskom). U stanju i imamo i procesa u periferijski tom podsistemu. podsistem (najčešće diskovi) Stanja ima ukupno n+, pi je verovatnoća i-tog stanja p 0 +p +...+p n = p0 p p2 pn μ p i = λ p i+ Balansna jednačina λ λ μ 0 2 n i i+ λ, μ zavise od konkretnog stanja (zbirna brzina servera u datom stanju) λ=k λ i gde je k broj servera u periferijskom podsistemu koji rade u datom stanju μ=m μi i gde je m broj servera u procesorskom podsistemu koji rade u datom stanju λ 5
2. Ciklični model multiprogramiranja (CMMP) Algoritam analize cikličnog modela:. Nacrtati dijagram stanja i ispisati balansne jednačine 2. Izračunati sve verovatnoće stanjap i, i=0,..,n 3. Izračunati iskorišćenje servera (opslužilaca) U, U 2,..., U k. U i je zbir svih verovatnoća onih stanja u kojima server i radi (verovatnoća da posmatrani a server e radi) 4. Odrediti odgovarajuće protoke: X i =U i /s i (s je vreme servisiranja) 5. Srednji broj poslova u servisnom centru N J = j p j j= 6. Srednje vreme odziva pojedinih podsistema 7. Srednje vreme čekanja u redu: T q = T - s T = J / X 6
2. Ciklični model multiprogramiranja (CMMP) PRIMER: Multiprogramski računar sa jednim procesorom i jednim diskom obavlja transakcionu obradu nad n istovetnih programa. Vreme pristupa disku i procesorska obrada po transakciji su jednaki i iznose po 20ms. Primenom cikličnog modela multiprogramiranja izvesti izraze za iskorišćenje procesora U(n) i intenzitet toka kroz sistem X(n) izraženog u transakcija u sekundi. 7
2. Ciklični model multiprogramiranja (CMMP) Disk je besposlen i-to t stanje podrazumeva da se u disk-podsistemu nalazi i procesa Procesor je besposlen λ λ λ λ... 0 n- n Balansne jednačine: μ μ λ p0 = μ p λ p = μ p Uvedemo 2 λ p2 = μ p3... μ smenu: ρ = μ λ μ λ p = μ p n n 8
2. Ciklični model multiprogramiranja (CMMP) λ p = p = ρ p μ 0 0 λ p = p = ρ p μ... 2 2 0 λ pn = p = ρ p μ n n 0 0 n 0 0 2 n ( ρ ρ ρ ) p + p +... + p = => p + + +... + = ρ = => p = p =... = p = /( n+ ) n n Up = p0 = n + n Un ( ) = n + Un ( ) n 50n X ( n ) = = = sec S n+ 20ms n+ Svako stanje u sistemu je jednako verovatno. 9
2.2 Stohastičko modelovanje mreže sa centralnim serverom (MsCS) V -ukupan broj poseta procesoru (centralnom serveru) od strane jednog procesa koji završi svoju obradu (dok izađe iz sistema, proces V puta poseti procesor). Procesor je obeležen kao resurs sa rednim brojem. V p =, V = / p n - trenutni t broj procesa u procesoru V i - broj pristupa i-tom I/O uređaju od strane jednog procesa V i = p i V = p i /p, p i = V i /V, i=2,,k p +p 2 + +p k = / V + V 2 /V + V 3 /V + + V k /V = Ako pomnožimo sve sa V : V 2 +V 3 + + V k = V Ukupan broj poseta svim diskovima jednak je broju poseta procesoru (centralnom serveru) umanjenom za jedan 0
2.2 Stohastičko modelovanje mreže sa centralnim serverom (MsCS) Brzine pojedinačnih servera su μ, μ 2,..., μ k (/s, /s 2,..., /s k ). Uvodimo pojam potražnje za nekim serverom: x i - potražnja za i-tim serverom, neimenovani brojevi koji se normalizuju i oslikavaju potražnju za serverima. Obično se x postavlja na (referentni servisni centar), pa se u odnosu na njega normalizuju ostale potražnje. D i - vreme koje jedan proces zateva od i-tog servera tokom svih opsluživanja zateva od strane tog servera serversko vreme ili ukupna vremenska potražnja (demand) za serverom (jedan proces može da ima više zahteva za istim serverom i taj broj zateva smo obeležili sa V i )
2.2 Stohastičko modelovanje mreže sa centralnim serverom (MsCS) Pi Primer : Za jednu vremensku jedinicu i servisnog centra broj (5 sec, 3 min, 4h... ) potrebno je x 2 vremenskih jedinica servera 2, x 3 vremenskih jedinica servera 3 itd Primer 2: U sistemu postoje CPU, Disk i Disk2. Vremena servisiranja su redom: s CPU = 0.039ms, s d = 0.8ms, s d2 = 0.26ms Procesi u proseku 20 puta pristupaju procesoru, 3 puta prvom i 6 puta drugom disku. Ukupni zahtevi za resursima (demands) d iznose: D CPU = 20 0.039ms = 0.78ms D d = 3 0.8 = 2.34 D d2 = 6 0.26 =.56 Skaliranjem sa /0.78ms dobijamo x = x 2 =3 x 3 =2 2
2.2 Stohastičko modelovanje mreže sa centralnim serverom (MsCS) Jednačina prelaza stanja za sistem sa slike: p 2 μ x - μ 2 x =0 x = -normalizovana potražnja za 2 p 3 μ x - μ3 x 3 =0 procesorom k- μ i x i = μ x p i - i-ta jednacina, i=2, 3,, k... k p k μ x - μk x k =0 x i = μ p i /μ i, i=2, 3,, k, x = s i =/μ i prosečno vreme opsluživanja -(-p ) μ x + μ 2 x 2 + μ 3 x 3 +...+ μ k x k =0 nekog uređaja, i=,2,,k (poslednja jednačina je posledica prethodnih) p i s i V i s i t i D i x i = = = = s V s t D t i ukupno vreme za koje posao okupira i-ti uređaj t ukupno vreme opsluživanja jednog procesa od strane procesora 3
2.3 Opšti model zatvorene mreže (Gordon-Njuelov metod) matrica verovatnoća kretanja. n p p... pkp k servera, n poslova (ukupan broj poslova je const, zatvorena mreža)...... n je raspoređen na n, n 2,, n k poslova pri čemu je : n k k pk... pkk n +n 2 + +n k =n, p- verovatnoća da se posle posete prvom opslužnom centru vrati ponovo na njega (ekvivalentni su: p 22,,p kk ) p ij - verovatnoća da se posle posete i-tom opslužnom centru posao uputi j-tom opslužnom centru i=, 2,, k; j=, 2,, k Stanje sistema je definisano trenutnim rasporedom poslova po servisnim centrima. Trenutno stanje sistema: S=(n, n 2,, n k ), n i 0, i=, 2,, k. Broj različitih rasporeda stanja: n+ k n+ k L = = n k S(n,k)={(n, n 2,, n k ) n +n 2 + +n k =n, n i 0} n broj poslova, k broj servera Ekvivalentni kombinatorni problemi:. Broj načina za smeštanje n kuglica u k kutija 2. Broj načina za raspoređivanje k- pregrada (za k kutija) na n+k- mesto 3. Broj načina za predstavljanje broja n kao zbira k nenegativnig i celih brojeva 4
2.3 Opšti model zatvorene mreže (Gordon-Njuelov metod) Gordon-Newell-ov metod za analizu zatvorene mreže Neka je data zatvorena mreža opšteg tipa, sa konstantnih n procesa i k servera. Pretpostavljamo eksponencijalnu raspodelu vremena opsluživanja i FCFS disciplinu opsluživanja. Brzine pojedinačnih servera su μ, μ 2,..., μ k (/s, /s 2,..., /s k ). Imamo matricu verovatnoća p ij koja određuje verovatnoće da se posle posete i-tom servisnom centru posao uputi u j-ti servisni centar, i=, 2,, k; j=, 2,, k n i - broj poslova na i-tom serveru (ukupno n u zbiru) Svaki server ima određenu potražnju: x i. - potražnja za i-tim serverom, neimenovani brojevi koji se normalizuju i oslikavaju potražnju za serverima. Obično se x postavlja na (referentni servisni centar), pa se u odnosu na njega normalizuju ostale potražnje. 5
2.3 Opšti model zatvorene mreže (Gordon-Njuelov metod) (-p ) μ x =p 2 μ 2 x 2 +...+ p k μ k x k (-p Gordon-Newell-ove 22 ) μ 2 x 2 =p 2 μ x +...+ p k2 μ k x k jednačine... (-p kk ) μ k x k =p k μ x +p 2k μ 2 x 2 +... Drugi zapis: -(-p ) μ x + p 2 μ 2 x 2 +...+ p k μ k x k =0 p 2 μ x -(-p 22 ) μ 2 x 2 +...+ p k2 μ k x k =0... p k μ x +p 2k μ 2 x 2 +... -(-p kk ) μ k x k =0 6
2.3 Opšti model zatvorene mreže (Gordon-Njuelov metod) Neka je ukupan prostor stanja s S(n,k)={(n, n 2,, n k ) n +n 2 + +n+ k =n, n i 0}, Drugim rečima, S(n,k) je skup uređenih k-torki, takvih da je zbir svih članova svake k-torke n Neka je p(s) raspodela verovatnoća stanja sistema. To je diskretna veličina koja određuje n+ k n+ k verovatnoću da se sistem nađe u svakom od L = = stanja. n k Stanje sistema u nekom trenutku, tj. raspored procesa po servisnim centrima može se opisati proizvodom: k n n2 nk ni 2... k = i i= x x x x Gordon i Newell su dokazali da će verovatnoća ovog stanja biti srazmerna ovom proizvodu. 7
2.3 Opšti model zatvorene mreže (Gordon-Njuelov metod) Pošto je verovatnoća svakog stanja srazmerna odgovarajućem proizvodu, verovatnoća svakog stanja se može odrediti kao odnos odgovarajućeg proizvoda i zbira proizvoda koji odgovaraju svim stanjima. Ps () = k ni xi k i= Gn ( ) k ni s S i= xi za svako stanje s iz i= skupa mogucih stanja S = x ni i Suma u imeniocu se obično obeležava sa G(n) i predstavlja konstantu sistema koja obezbeđuje da je zbir svih verovatnoća jednak jedinici. Na ovaj način smo odredili raspodelu stanja sistema, p(s). 8
2.3 Opšti model zatvorene mreže (Gordon-Njuelov metod) Ako se potražnje normalizuju u odnosu na x, tj. za x = dobija se: k ni xi k i= 2 ni (, 2,..., k ) =, ( ) = i (i ide od 2 zato sto je x =) Gn ( ) s S( n, k) i= 2 pn n n Gn x U j - iskorišćenje j-tog opslužioca se analognoračuna: U j k ni xi k nj> 0 i= 2 ni j = (, 2,..., k ) =, ( ) = i nj> 0 Gn ( ) s S ( n, k ) i= 2 U p n n n G n x 9
2.4 Bjuzenov algoritam za izračunavanje G(n) Problem kod Gordon-Njuelovog metoda je velika složenost računanja konstante G(n), jer je za n+ k to potrebno izračunati sumu proizvoda. n k ni Gn ( ) = x, n + n+... + n = n= const. s S( n, k) i= i 2 k Pored dugog g trajanja, j to može i da izazove problem greške u zaokruživanju. Bjuzen uvodi pomoćnu funkciju g(i,j), gde je i broj zahteva, a j broj servera: nm gi (, j) = x, i n, j k. s S( i, j ) m= j Očigledno je da važi: g(i,0)=0, i=, 2,, n (nema servera) g(0,j) j)= j=, 2,, k (nema zahteva) m 20
2.4 Bjuzenov algoritam za izračunavanje G(n) Razbijamo pomoćnu funkciju na dve sume: j j j n n n m m m s S (,) i j m= s S(,), i j),n = 0 m= s S (,),n i j > 0 m= m m m gi (, j) = X = X + X j j Prva suma uzima one proizvode kod kojih je n j =0, a druga one kod kojih je n j >0. U prvom sabirku možemo da izostavimo x j jer je n j =0, a u drugom možemo da izvučemo ispred sume i smanjimo broj servera: g(i,j)= g(i,j-) + x j g(i-,j) jedan servisni centar manje jedan zahtev manje potražnja za j-tim serverom Dobili smo rekurzivnu proceduru za računanje g(i,j). 2
2.4 Bjuzenov algoritam za izračunavanje G(n) g(nk)je g(n,k) nx x k matrica koja u svojoj graničnoj poslednjoj koloni daje vrednost G(n) G(n)= g(n,k) Programska realizacija (optimizovana, jer je samo poslednja kolona od interesa): G[0]=; FOR j:= TO k DO FOR i:= TO n DO G[i]= G[i]+ x[j] G[i-]; 22
2.4 Bjuzenov algoritam za izračunavanje G(n) Primena Gordon-Njuelove metode i Bjuzenovog algoritma. Verovatnoća da je broj poslova na j-tom servisnom centru veći od m, gde je m zadati broj : k ni Pn [ j m] = ps ( ) = xi = Gn ( ) s S( n, k), nj m s S( n, k), nj m i= m x k j ni m Gn ( m) = xi = xj Gn ( ) Gn ( ) s S( n m, k) i= 2. Iskorišćenje j-tog servera: U j =P[n j >0] = P[n j ] = x j G(n-)/G(n) U i /U j=x i /x j, i=, 2,, k, j=, 2,, k Odnos iskorišćenosti dva servera je jednak odnosu njihovih potražnji! 23
2.4 Bjuzenov algoritam za izračunavanje G(n) 3. Verovatnoća da broj procesa na resursu j iznosi m, tj. da je n j =m: Pn [ = m] = Pn [ m] Pn [ m+ ] = j j j x = ( ) ( ) Gn ( ) Gn ( ) Gn ( ) m m Gn ( m ) m+ Gn ( m ) j xj xj G n m G n m [ ] 24
2.4 Bjuzenov algoritam za izračunavanje G(n) 4. Prosečan č (očekivani) č i) broj zahteva (poslova) na j-tom serveru: n n j = m P[n j =m] m= P[n j ]=P[n j =]+P[n j =2]+P[n j =3]+ +P[n j =n] P[n j 2]= P[n j =2]+P[n j =3]+ +P[n j =n] P[n j 3]= P[n j =3]+ +P[n j =n]... P[n j n]= P[n j=n] n j =P[n j ]+P[n j 2]+P[n j 3]+ +P[n j n] n m = x j m= Gn ( m) Gn ( ) 25
2.4 Bjuzenov algoritam za izračunavanje G(n) 5. Protok : X j =U j /s j =U j μ j = x j G(n-)/G(n) μ j Nampomena: X j je protok kroz resurs, a x j normalizovana potražnja za resursom! 6. Vreme odziva prema Little-ovoj formuli: = / R n X j j j 26
2.4 Bjuzenov algoritam za izračunavanje G(n) Verovatnoća da serveri α i β budu istovremeno aktivni: G(n-) G(n-2) G(n-2) P[n α,n β ] = U α (n) U β (n-) = U α (n-) U β (n) = x α x β =x α x β G(n) G(n-) G(n) Verovatnoća da serveri α, β i γ budu istovremeno aktivni: G(n-3) P[n α,n β,n γ ] = U α (n) U β (n-) U γ (n-2) = = x α x β x γ G(n) Verovatnoća da k servera bude istovremeno aktivno: G(n-k) G(n-k) k P[n,n 2,,n k ] = x x 2 x k = x i G(n) G(n) i= 27
2.5 Analiza performansi mreža sa centralnim serverom korišćenjem Gordon-Njuelove metode CPU je najtraženiji resurs centralni server (u odnosu na njega se normalizuju potražnje) Iskorišćenost CPU-a (centralnog servera) je: U = G(n-)/G(n), x = Iskorišćenost drugih servera je: U i = x i U = U ( V i s i / V s ) = (V i s i G(n-)) / (V s G(n)), i= 2,, k Verovatnoća da su CPU i i-ti uređaj (resurs) istovremeno aktivni: U i = x i G(n-2)/G(n)=(V i s i G(n-2))/(V s G(n)) 28
2.5 Analiza performansi mreža sa centralnim serverom korišćenjem Gordon-Njuelove metode Intenzitet toka kroz granu sa CPU: X = U /s = G(n-)/(s G(n)) Produktivnost sistema: X=p X =U /(V s )=U /D = G(n-)/(s V G(n)) Vreme provedeno u sistemu dok se ne obradi svih n poslova (trajanje opsluživanja) : T = n/x =(n s V V G(n))/G(n-) ) (Little-ova formula) 29
2.6 Analiza uskih grla (Kada nastupa zasićenje?) Usko grlo u sistemu je onaj resurs koji ima najveće iskorišćenje (kritičan resurs). S obzirom da je iskorišćenje srazmerno potražnji resursa, to je zapravo resurs sa najvećom potražnjom. Povećanjem n (broja j poslova) u nekom trenutku će doći do zasićenja. Označimo sa b (bottleneck) kritični resurs u uslovima zasićenja: U b =s b X b X b =U b /s b i uz porast broja poslova U b Resurs ulazi u zasićenje kad je tražnja za njim maksimalna (iskorišćenje teži ). X b =/s b = μ b Ovaj resurs je non-stop aktivan X=p b X b = (/V b ) (U b /s b ) X max =X b /V b =(/V b s b )=/D b μ b Svaki od k resursa ima neku ukupnu potražnju (demand). Obeležimo ih sa D, D 2,...,D k. Onaj resurs koji ima najveću potražnju će prvi ući u zasićenje: Db=max(D,..,Dk) 30
2.6 Analiza uskih grla (Kada nastupa zasićenje?) Iz Little-ove formule: X max n n G( n ) = lim = lim = lim Tn ( ) nv s Gn ( )/ Gn ( ) Gn ( ) V s n n n X max =X b /V b =(/V b s b ) Iz prethodne dve jednakosti sledi: Gn ( ) Vb s = Gn ( ) V s b, n>> Asimptotsko ponašanje vremena odziva: T(n)=n/X max =n V b s b =n D b, n» vreme provedeno u sistemu postaje direktno srazmerno broju poslova ukoliko dođe đ do zasićenja V b opisuje posao (broj poseta resursu, nije karakteristika računara, tj. servera, već procesa) s b opisuje karakteristike i posla i računara (servera) 3
2.6 Analiza uskih grla (Kada nastupa zasićenje?) Za veliko n je to asimptota, a za malo n (n= jedan posao, niko mu ne smeta, kada završi posao na jednom resursu, pređe na drugi itd.) imamo: T min =T 0 =V s +V 2 s 2 + +V k s k - minimalno vreme da posao prođe kroz sistem, kada postoji samo jedan proces u sistemu, tj. n=. T=T 0, n n krit. T=n/X max, n n krit Ove prave se seku u n krit : T T=n/Xmax D +D 2 + +D k n krit = T 0 X max = max(d,..,d k ) T0 nkrit n 32
2.6 Analiza uskih grla (Kada nastupa zasićenje?) Kada broj procesa dostigne kritični broj n krit, javljaju se prvi efekti zasićenja. Vreme odziva brzo raste. V i direktna karakteristika posla n krit. je karakteristika i računara i posla s i karakteristika i računara i posla D +D 2 + +D+D k n krit. = T 0 X max = max(d,..,d k ) n krit. k T 0 = /X() = (V s G()) / G(0) = V s G() X max = G(n-) / (V s G(n)) Ako je centralni server usko grlo : U (n)= Za veliko n : G(n-) G(n) ) n krit G() G() G(n-) n krit. = = G() U(n) G(n) n» 33