Viseprocesorski sistemi

Uvod

dozvoljavaju vecu fleksibilnost kada
je rad sa procesima i nitima u pitanju

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