Deadlock Flashcards

1
Q

Co je to uviaznutie?

A

ak proces caka na udalost ktora nemoze nastat, teda nikdy sa neukonci

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

Ako vieme rozoznat ci je proces uviaznuty?

A

Bohuzial to nevieme

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

Kedy je mnozina procesov v stave uviaznutia?

A

Ak kazdy caka na udalost, ktoru moze sposobit len iny proces tejto mnoziny

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

Ake su 4 nutne podmienky vzniku uviaznutia?

A
  1. vzajomne vylucovanie
  2. nepreemptivne pridelovanie prostriedkov (prideleny prostriedok nie je mozne procesu odobrat)
  3. ciastnocne pridelovanie prostriedkov
  4. cakanie na prostriedky
    ak vsetky platia, mame uviaznutie
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Co je ciastocne pridelovanie prostriedkov?

A

Proces moze o prostriedky cakat postupne, moze mat nejake pridelene zatial co caka na dalsie

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

Co je cakanie na prostriedky?

A

Ak proces nema pridelene prostriedky ktore ziada, caka

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

Co je kruhove cakanie?

A

postupnost procesov taka, ze kazdy caka na prostriedok toho dalsieho a posledny na toho prveho

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

Ako vieme modelovat uviaznutie?

A

Grafom alokacie prostriedkov - bipartitny orientovany graf, kde vrcholy su procesy P a prostriedky R

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

V grafe alokacie prostriedkov, co je hrana P ->R?

A

P potrebuje prostriedok R

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

V grafe alokacie prostriedkov, co je hrana R->P?

A

Proces P ma prideleny prostriedok R a uvolni ho az ked sa ukonci

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

Co to su Petriho siete?

A

kazdy proces vsetky jeho “riadky”, sipka je smerovanie procesu alebo preplanovanie na druhy proces

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

Co je problem z pohladu OS pri rieseni uviaznutia?

A

OS moze riadit pristup len k prostiredkom ktore poskytuje ako CPU, pamat, subory ,semafory a pod., nema vsak vplyv na prostriedky implementovane procesmi

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

Ake su 4 pristupy k rieseniu problemu uviaznutia?

A
  1. Ignorovanie problemu
  2. Detekcia uviaznutia a zotavenie
  3. Predchadzanie uviaznutia
  4. Vyhybanie sa uviaznutiu
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Co je zac taktika Ignorovanie uviaznutia?

A

Len ak je uviaznutie nepravdepodobne a zriedkave, ajtak to ale nie je idealny sposob

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

Co je zac taktika detekcia uviaznutia a zotavenie?

A

Ked uviaznutie nastane, OS restartuje niektory z mnoziny uviaznutych procesov. Musi mat teda implementovany detekcny mechanizmus.

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

Ake detekcne mechanizmy uviaznutia vieme implementovat?

A
  1. operator ktory stav zisti a zasiahne
  2. taky co zrusi proces zablokovany urcitu dlhu dobu
  3. prida sa uprava alokacneho grafu, ak sa najde slucka, nastalo uviaznutie
17
Q

Co je to zotavenie?

A

Zrusenie vsetkych uviaznutych procesov, alebo jedneho, alebo navrat do neuviaznuteho stavu

18
Q

Ako vieme predchadzat uviaznutiu?

A

Upravime implementaciu aby niektora z nutnych podmienok nebola splnena, teda zrusit jednu zo styroch podmienok uviaznutia

19
Q

Ako vieme odstranit vzajomne vylucovanie?

A

Pristup k spolocnemu prostriedku moze byt sprostredkovany koordinacnym procesom ktory bude k nemu pristupovat ako jediny, s ktorym budu komunikovat procesy. Moze ale vzniknut nova kriticka oblast.

20
Q

Co je to preempcia?

A

odobranie prostriedku ktory uz bol prideleny

21
Q

Aky je problem preemptivneho pridelovania prostriedkov?

A

moze to mat fatalne dosledky, ak ich budeme nasilu brat

22
Q

Kedy vieme vyuzit preemptivnu taktiku?

A

pre zdroje ktorych stav vieme uchovat

23
Q

Ako vieme docielit Pridelenie vsetkych prostriedkov procesu?

A

Proces by mohol vzdy pred alokovanim dalsich prostriedkov uvolnit vsetky ktore ma a poziadat o zvyseny objem naraz

24
Q

Aky je problem pri pridelovani vsetkych prostriedkov?

A

mnohe procesy vopred nevedia kolko prostriedkov potrebuju

25
Q

Ako vieme eliminovat cyklicke cakanie?

A

Vsetky prostriedky ocislujeme/zoradime, kazdy proces vie ziadat prostriedky len v poradi ich cisel, tym nemoze vzniknut cyklus v grafe alokacii prostriedkov

26
Q

Co je to vyhybanie uviaznutiu?

A

OS a procesy sa spravaju tak aby k uviaznutiu nedoslo pocas vykonavania
Ziadna z nutnych podmienok nie je trvale odstranena ale procesy sa vyhybaju tomu aby platili vsetky naraz

27
Q

Co je to odmietnutie spustenia procesu?

A

pozri slide 25 + priklady

28
Q

Co je bankarov algoritmus?

A

algoritmus odmietnutia pridelenia prostriedku

29
Q

Ako funguje bankarov algoritmus?

A

Operacny system (bankar) sa rozhodne ci klientovi (procesu) prideli prostriedok daneho typu. Kazdy proces musi na zaciatku oznamit celkove mnozstvo jednotlivych prostriedkov ktore potrebuje a po skonceni ich vrati.

30
Q

Kedy bankar prideli prostriedky procesu?

A

Len ak existuje postupnost ktora vedie k uspokojeniu vsetkych procesov. Stav je bezpecny ak vedie do dalsieho bezpecneho stavu.

31
Q

Je bankarov algoritmus prakticky pouzitelny a preco?

A

Nie, lebo neda sa povedat jednoducho kolko prostriedkov proces potrebuje

32
Q

Pozri priklady bankarovho algoritmu na slajdoch od 32

A

32

33
Q

Ako vieme detekovat uviaznutie v jadre OS Linux?

A

futex() alebo pthread_mutex_lock() vrati EDEADLK

OS si pre kazdy proces udrzuje zoznam zamkov na ktore caka

34
Q

Ako vieme detekovat uviaznutie pre zamky na suboroch?

A

zamky na suboroch nastavime systemovym volanim fcntl (POSIX).

35
Q

Aky je rozdiel medzi F_SETLK a F_SETLKW?

A

F_SETLKW bude cakat az kym nebude mozne zamok ziskat