Konkurentno programiranje Flashcards
(30 cards)
Sta je preplitanje
- Preplitanje je mesanje izvrsavanja naredbi raznih niti, ili niti i obradjivaca prekida
- Preplitanje ima slucajan karakter jer nije poznatno kad ce se desiti prekid ili prekljucivanje
Da li preplitanje ima slucajan karakter
Da
Sta izaziva pojavu preplitanja?
- U jednoprocesorskom sistemu, u slucaju prekida procesor pokrece naredbe obradjivaca prekida sto moze da izazove prekljucivanje
Da li preplitanje moze uticati na rezultat izvrsavanja programa
Moze, stetno
Sta su deljene promenljive
Ukoliko u nekom programu razne niti pristupaju jednoj promenljivoj, ona se tad zove deljena
Sta je preduslov ocuvanja konzistentnosti deljenih promenljiva
- Obezbedjivanje medjusobne iskljucivosti. Na taj nacin se rukovanje deljenim promenljivama serijalizuje sto sprecava stetna preplitanja
Koje vrste sinhronizacije postoje
- Shinronizacija zbog medjusobne iskljucivosti
- Uslovna sinhronizacija - za izvrsavanje kriticke sekcije je potreban dodatan uslov
Sta su kriticne sekcije
- Kriticne sekcije su delovi operacija deljenih klasa cije izvrsavanje je kriticno za konzistentnost deljenih promenljiva
- Delovi kriticnih sekcija mogu da dovedu do stetnog preplitanja
Sta je sinhronizacija
Medjusobna iskljucivost kritickih sekcija koja se ostvaruje vremenskim uskladjivanjem njihovih izvrsavanja
Sta je atomski region
- Ako se u kriticnim sekcijama onemoguce prekidi tada u kriticnoj sekciji nije moguca obrada prekida pa zato ni stetno preplitanje
- Zbog neprekidnosti ove sekcije se nazivaju atomskim regionima
- Neprekidnost atomskih regiona garantuje njihovu medjusobnu iskljucivost
Sta suzava primenu atomskih regiona
- Posto su prekidi onemoguceni, odlozena je njihova obrada a samim tim i reakcija na dogadjaje
- Atomski regioni trebaju biti sto kraci, sto suzava njihovu primenu
Cemu sluzi propusnica
- Stetno preplitanje se moze spreciti preko zaustavljanja niti
- Deljena promenljiva onda mora da ima propusnicu za ulaz u njene kriticke sekcije
- Propusnica moze biti slobodna ili zauzeta
- Bez propusnice nije moguc ulaz u kriticku sekciju i zato se za nju takmice sve niti koje traze ulaz u kriticnu sekciju
- Iskljucivi regioni su kriticne sekcije koje medjusobnu iskljucivost ostvaruju preko propusnice
Sta se desava sa niti koja zatrazi a ne dobije propusnicu
Zaustavlja se aktivnost i prelazi u stanje ceka
Sta se desava kada nit vrati propusnicu
- Propusnicu dobija neka druga nit koja prelazi iz ceka u spreman.
- Ta nit ulazi u kriticnu sekciju tek kada se procesor prekljuci na nju
Kako se stiti konzistentnost propusnica
Atomskim regionima, jer su rukovanja propusnicama kratka
Sta je iskljucivi region
Kriticna sekcija koja medjusobnu iskljucivost ostvaruje preko propusnica
Sta uvode pozeljne osobine konkurentnih programa
- Ukoliko vaze pojedinacne tvrdnje onda konkurentan program ima pozeljnje osobine
- Tvrdnje su iskljucivanje nepozeljnog i ukljucivanje pozeljnog
- Ovakvo rasudjivanje je neophodno jer zakljucivanje po rezultatu moze dovesti do pogresnog zakljucka jer je izvrsenje konkurentnog programa nepredvidivo
Po cemu se konkurentno programiranje razlikuje od sekvencijalnog
Po rukovanju nitima i deljenim promenljivama
Koje prednosti ima konkurentna biblioteka u odnosu na konkurentni programski jezik
- rukovanje nitima i deljenim promenljivama moze zahtevati posebne konkurentne iskaze
- Treba se prosiriti stari ili praviti novi jezik
- Konkurentna biblioteka omogucava da se koristi vec postojeci programski jezik
Kako se opisuju niti
- Rukovanje nitima omogucava klasa thread
- Njen konstruktor stvara i pokrece niti
- Argument poziva konstruktora je adresa funkcije koja opisuje nit (i mzd parametri)
Kako se kreiraju niti?
- Konstruktor stvara i pokrece niti
- Argument poziva je adresa funkcije koja opisuje nit
- thread nazivNiti (funkcija)
- Nakon kreiranja potrebno je odrediti odnos prema main funkciji
- Join() zaustavlja aktivnost u mainu, Detach() omogucava prevremeni kraj aktivnosti niti
Kada se zauzima propusnica deljene promenljive
Pre obavljanja operacija koje mogu da dovedu do stetnog preplitanja, na pocetku kriticne sekcije
Kada se oslobadja propusnica deljene promenljive
Nakon obavljanja operacija koje mogu da dovedu do stetnog preplitanja, na kraju kriticne sekcije
Kakvu ulogu ima klasa mutex?
Omogucava medjusobnu iskljucivost kriticnih sekcija upotrebom propusnice koja reprezentuje deljenu promenljivu