Please enable JavaScript.
Coggle requires JavaScript to display documents.
Viseprocesorski sistemi - Coggle Diagram
Viseprocesorski sistemi
Uvod
-
jedan procesor + podrzavaju samo procese
- planeri imaju zadatak da vrse odabir procesa koji ce se izvrsavati i trajanje njihovih aktivnosti na procesoru
jedan procesor + podrzavanje niti
- niti se smenjuju stvarajuci privid paralelnog izvrsavanja
vise procesora + samo procesi
- procesi se mogu izvrsavati na vise procesora/jezgra paralelno sto sistem cini efikasnijim
vise procesora + podrzavanje niti
- najefikasniji, ali i najosetljiviji jer zahtevaju pazljivo planiranje
- obezbediti sinhronizaciju niti istog procesa koje se mogu izvrsavati na razlicitim procesorima
- voditi racuna o tome koliko koja nit i kada treba da dobije mogucnost izvrsavanja
- omoguciti sinhronizaciju i u situacijama kada nekoliko niti istog procesa treba da izvrsi zadatke u odredjenom redosledu
Multiprocesiranje
savremeni racunari - vise jezgara, a nekad i sistemi imaju vise nezavisnih procesora
Dva pristupa rasporedjivanja procesa na razlicite procesore:
- simetricno multiprocesiranje
- asimetricno multiprocesiranje
simetricno multiprocesiranje
- procesori se rasporedjuju u zavisnosti od primenjenog algoritma za rasporedjivanje
- dele zajednicku memoriju, svi imaju pristup U/I uredjajima i sistem ih gleda kao ravnopravne
asimetricno multiprocesiranje
- neki procesori zaduzeni za odredjene funkcije
- jedan procesor proglasen za glavni
- izvrsavanje koda jezgra OS-a
- vodjenje racuna o U/I operacijama
- ostali procesi izvrsavaju iskljucivo korisnicke procese dodeljene od strane glavnog procesora
- sistemi neefikasni jer se dosta sporih operacija izvrsava na jednom (glavnom) procesoru
Rasporedjivanje procesa
Dva pristupa:
- jedan zajednicki red cekanja
- razliciti redovi cekanja za svaki procesor
zajednicki red cekanja
- ravnomerno opterecenje procesora
- nakon sto procesor postane slobodan moze mu se dodeliti sledeci proces za obradu
- jednostavna implementacija - voditi racuna da se spreci da dva procesora dobiju isti proces za izvrsavanje
- sa povecanjem broja procesa moze dovesti do uskog grla
razliciti redovi cekanja
- moze se dogoditi da procesi cekaju u redovima, a da postoje nezaposleni procesori
- balansiranje opterecenja (load balancing)
- postupak za sto ravnomerniju podelu poslova izmedju procesora
Dva nacina balansiranja opterecenja:
- prenosenje migracije (push migration)
- preuzimanje migracije (pull migration)
prenosenje migracije
- iz reda procesa opterecenog procesora neki od procesa posalju u redove besposlenih ili manje zauzetih procesora
- potrebno implemetiranje algoritama za:
- odredjivanje opterecenja svi procesora
- pronalazenje najmanje zauzetog procesora
- izbor procesa koji ce migrirati
- moze se pozvati nakon sto opterecenje predje neku odredjenu granicu ili u odredjenim vremenskim intervalima
- vremenska slozenost nije zanemarljivo mala
preuzimanje migracije
- u red slobodnijeg procesora prebaciti procese iz redova zauzetijih procesora
- potrebno implemetiranje algoritama za:
- pronalazenje slobodnijih i najzauzetijih procesora
- odabir procesa koji treba preuzeti
- obicno se uzimaju procesi koji su visokog prioriteta ili koji su se malo izvrsavali
balansiranje opterecenja
- proces se ne izvrsava u celosti na jednom procesoru
- povecanje vremenske slozenosti izvrsavanja
- prilikom prebacivanja se isprazniti memorija prvog i sadrzaj premestiti na drugi procesor -> izgubljeno vreme
- dodeljivanje afinitieta (sklonost) ka odredjenom procesoru
afinitet procesa
- obicno se razvija prema procesoru na kojem je proces poceo da se izvrsava
- slab afinitet
- OS omogucava, ali ne garantuje da ce proces nastaviti izvrsavanje na istom procesoru
- jak afinitet
- OS dopusta da se procesoru precizno odredi podskup procesora na kojima moze da se izvrsava
- mnogi sistemi podrzavaju obe vrste afiniteta
- u direktnoj suprotnosti sa balansiranjem; treba voditi racuna o tome koji od ova dva pristupa ima prednost