Konkurentno programiranje Flashcards

1
Q

Sta je preplitanje

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Da li preplitanje ima slucajan karakter

A

Da

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Sta izaziva pojavu preplitanja?

A
  • U jednoprocesorskom sistemu, u slucaju prekida procesor pokrece naredbe obradjivaca prekida sto moze da izazove prekljucivanje
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Da li preplitanje moze uticati na rezultat izvrsavanja programa

A

Moze, stetno

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Sta su deljene promenljive

A

Ukoliko u nekom programu razne niti pristupaju jednoj promenljivoj, ona se tad zove deljena

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Sta je preduslov ocuvanja konzistentnosti deljenih promenljiva

A
  • Obezbedjivanje medjusobne iskljucivosti. Na taj nacin se rukovanje deljenim promenljivama serijalizuje sto sprecava stetna preplitanja
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Koje vrste sinhronizacije postoje

A
  • Shinronizacija zbog medjusobne iskljucivosti
  • Uslovna sinhronizacija - za izvrsavanje kriticke sekcije je potreban dodatan uslov
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Sta su kriticne sekcije

A
  • Kriticne sekcije su delovi operacija deljenih klasa cije izvrsavanje je kriticno za konzistentnost deljenih promenljiva
  • Delovi kriticnih sekcija mogu da dovedu do stetnog preplitanja
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Sta je sinhronizacija

A

Medjusobna iskljucivost kritickih sekcija koja se ostvaruje vremenskim uskladjivanjem njihovih izvrsavanja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Sta je atomski region

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Sta suzava primenu atomskih regiona

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Cemu sluzi propusnica

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Sta se desava sa niti koja zatrazi a ne dobije propusnicu

A

Zaustavlja se aktivnost i prelazi u stanje ceka

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Sta se desava kada nit vrati propusnicu

A
  • Propusnicu dobija neka druga nit koja prelazi iz ceka u spreman.
  • Ta nit ulazi u kriticnu sekciju tek kada se procesor prekljuci na nju
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Kako se stiti konzistentnost propusnica

A

Atomskim regionima, jer su rukovanja propusnicama kratka

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Sta je iskljucivi region

A

Kriticna sekcija koja medjusobnu iskljucivost ostvaruje preko propusnica

17
Q

Sta uvode pozeljne osobine konkurentnih programa

A
  • 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
18
Q

Po cemu se konkurentno programiranje razlikuje od sekvencijalnog

A

Po rukovanju nitima i deljenim promenljivama

19
Q

Koje prednosti ima konkurentna biblioteka u odnosu na konkurentni programski jezik

A
  • 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
20
Q

Kako se opisuju niti

A
  • Rukovanje nitima omogucava klasa thread
  • Njen konstruktor stvara i pokrece niti
  • Argument poziva konstruktora je adresa funkcije koja opisuje nit (i mzd parametri)
21
Q

Kako se kreiraju niti?

A
  • 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
22
Q

Kada se zauzima propusnica deljene promenljive

A

Pre obavljanja operacija koje mogu da dovedu do stetnog preplitanja, na pocetku kriticne sekcije

23
Q

Kada se oslobadja propusnica deljene promenljive

A

Nakon obavljanja operacija koje mogu da dovedu do stetnog preplitanja, na kraju kriticne sekcije

24
Q

Kakvu ulogu ima klasa mutex?

A

Omogucava medjusobnu iskljucivost kriticnih sekcija upotrebom propusnice koja reprezentuje deljenu promenljivu

25
Q

Kakvu ulogu ima klasa unique_lock

A
  • Isti efekat kao sa klasom mutex se moze postici i template klasom unique_lock
  • Konstruktor poziva lock() a destruktor poziva unlock()
  • kao argument template klase treba se navesti objekat klase mutex
  • Iskljuciva klasa je deljena klasa ciju konzistentnost stite iskljucivi regioni
26
Q

Kakvu ulogu ima condition_variable

A
  • Uslovna sinhronizacija
  • Ukoliko se nit zaustavi u iskljucivom regioni jer neki uslov nije ispunjen, druga nit moze da objavi ispunjenje tog uslova i omoguci nastavak prve niti ako ispuni uslov
27
Q

Koje vrste razmena poruka postoje

A
  • Sinhrona - zaustavlja se aktivnost prve niti dok i druga nit ne zapocne razmenu
  • Asinhrona - posiljalac i primalac se ne srecu, aktivnost staje samo kad je komunikacioni kanal pun/prazan
28
Q

U cemu se razlikuju sinhrona i asinhrona razmena poruka

A
  • U sinhronoj se posiljalac i primalac srecu sto znaci da je aktivnost zaustavljena dok i druga nit ne pocne da razmenjuje poruke. U asinhronoj nije tako
29
Q

Po kojim ciljevima se konkurentno programiranje razlikuje od sekvencijalnog

A
  • Osnovni cilj konkurentnog a jedini cilj sekvencijalnog programiranja je opisivanje obrade podataka
  • Dodatni ciljevi konkurentnog programiranja su bolje iskoriscenje racunara i cvrsce sprezanje sa okolinom
30
Q

Sta je mrtva petlja?

A

Ukoliko postoji medjuzavisnost niti koja dovodi do trajnog zaustavljanja aktivnosti niti. Izvrsavanje konkurentnog programa u tom slucaju nema kraja.