1.1 Flashcards
1-6 pdf (9 cards)
Koje su ključne razlike u implementaciji između barijere sa promenom parnosti i barijere
sa kombinacionim stablom ?
Barijera sa promenom parnos8 (centralizovana) ima problem memorijskog konflikta jer sve niE
spinuju nad istom lokacijom . Polje s ens e je način održavanja uniformnog vremena noEfikacije
na keš-koherentnim mulEprocesorima .
Barijera sa kombinacionim stablom umanjuje memorijski konflikt razdvajanjem velike barijere
na stablo manjih barijera. Niti kombinuju pristizanje na barijeru penjući se uz stablo, a
distribuiraju notifikacije potomcima za napuštanje barijere silazeći niz stablo.
Zašto barijera sa kombinacionim stablom nije optimalna za NUMA arhitekture bez
keširanja?
Zbog toga što niti posete nepredvidljivi broj lokacija tokom kretanja uz stablo, ovakav pristup ne bi dobro radio na NUMA arhitekturama bez keširanja, jer može proizvesti neuniformna vremena notifikacije . Takođe, mrežna tačka usijanja (hotspot) zbog preterane komunikacije prilikom spinovanja čini je lošom za distribuirane arhitekture .
Koje su prednosti barijere sa statičkim stablom u poređenju sa drugim tipovima barijera?
Na keš-koherentnim multiprocesorima, staEčka barijera zahteva log(n) koraka kretanja kroz stablo
za kompletiranje, dok noEfikacija zahteva samo promenu vrednosE globalnog bita s ens e , koji se
dalje propagira mehanizmom za koherenciju keševa. To rezultira vrlo malim keš saobraćajem ,
minimalnim zahtevom za prostorom i može se optimalno primenjuje na NUMA arhitekturama .
Koja je svrha monitora u programiranju konkurentnih sistema i koje probleme rešava?
Monitor je konstrukcija programskog jezika za kontrolu pristupa deljenim podacima . Rešava
probleme sinhronizacije na visokom nivou time što blokira niti koje čekaju i dozvoljava prekide
unutar kritične sekcije . Monitor garantuje uzajamno isključivanje – samo jedna nit može u
jednom trenutku da izvršava proceduru monitora. Ako druga nit pokuša, ona se blokira i čeka u
redu.
Enkapsulira deljene strukture podataka, procedure koje se izvršavaju na tim podacima i
sinhronizaciju između konkurentnih poziva procedura .
Zašto su semafori , iako korisni, nekada problematični za upotrebu?
Semafori su u osnovi globalne deljene promenljive kojima se može pristupiE bilo gde u
programu . Ne postoji nikakva veza između semafora i podataka koje E semafori kontrolišu, niti
bilo kakva kontrola ili garancija ispravnog korišćenja. Zbog toga su nekada teški za upotrebu i
podložni bagovima .
Koje su mane tradicionalnog zaključavanja (locking) u multiprocesorskim sistemima?
Skalabilnost: Zaključavanje grube granularnosti nije skalabilno. Zaključavanje fine granularnosti
dovodi do problema kada se isti objekat zaključava različitim redosledom.
Robustnost: Nije robusno zbog fenomena kao što su:
Inverzija prioriteta: Nit niskog prioriteta drži ključ potreban niti višeg prioriteta, a nit srednjeg
prioriteta može da preduzme CPU, uzrokujući gladovanje niti višeg prioriteta .
Efekat konvoja: Kada nit koja drži ključ nije aktivna (zbog prekida, strane greške, itd.), druge niti
koje zahtevaju ključ se svrstavaju u red čekanja, bez mogućnosti napredovanja .
Upotrebljivost: Teško je za upotrebu jer je konzervaEvno, može izazvati uzajamno blokiranje i
propuštena buđenja niti .
Kompozicija: Nema svojstvo kompozicije, što znači da je teško obezbediti atomičnost operacija
koje uključuju više objekata bez uvođenja novih problema skalabilnosti ili stanja trke .
Šta je transakcija u kontekstu transakcione memorije i koja svojstva poseduje?
Transakcija je sekvenca koraka koje izvršava jedna nit . Transakcije imaju mogućnost serijalizacije,
što znači da izgledaju kao da se izvršavaju sekvencijalno . Izvršavaju se špekula8vno , privremeno
menjajući objekte. Ukoliko se završe bez sinhronizacionog konflikta, vrše predaju (commit) i
promene postaju trajne. U suprotnom, vrše prekidanje (abort) i sve privremene promene se
odbacuju .
Koje su glavne razlike između nestrpljivog (Eager) i lenjog (Lazy) pravljenja verzije
(versioning) kod transakcione memorije?
Nestrpljivo (Eager) pravljenje verzije: Brzi commit, spori abort . Podaci se direktno upisuju u
memoriju, a ako dođe do prekida, undo l og se koriste za vraćanje starih vrednosti .
Lenjo (Lazy) pravljenje verzije: Spori commit, brzi abort . Podaci se privremeno čuvaju u baferu
sve do tačke za predaju, kada se memorija kompletno ažurira . Pristup memoriji za čitanje može
biE sporiji nego kod nestrpljive verzije jer se bafer mora pretraživaE kod svakog špekulaEvnog
čitanja .
Kako Hardverska Transakciona Memorija (HTM) detektuje konflikte koristeći MESI
protokol i kakva su njena ograničenja?
HTM korisE MESI protokol sa dodatnim transakcionim bitom u svakom tagu keš linije . Ovaj bit
se setuje kada se vrednost stavi u keš radi transakcije .
Detekcija konflikta: Ukoliko MESI protokol invalidira transakcionu stavku (zbog konflikta
pisanja/čitanja ili pisanja/pisanja) ili ako je modifikovana transakciona linija izbačena iz keša,
tada se ta transakcija prekida (abort) . Razlog za prekid kod izbacivanja je što keš-koherentni
protokol ne može detektovaE konflikt kada linija više nije u kešu .
Ograničenja:
Veličina transakcije: Ograničena je veličinom keša .
Trajanje transakcije: Ograničeno je dužinom vremenskog kvantuma raspoređivača, jer
operaEvni sistem čisE keš kada isEskuje nit sa procesora . Zbog toga je HTM najbolja za
kratke i male transakcije .
Konflik8 mapiranja keša: Transakcija koja korisE dve adrese mapirane u istu keš liniju
(kod direktno preslikanih keševa) ili k+ 1 adresa u isE set (kod set-asocijaEvnih keševa)
biće neuspešna.
Nedostatak menadžera konflikta: HTM nema menadžera konflikta, što može dovesE do
izgladnjivanja transakcija .