38 - Uváznutí při přidělování prostředků, detekce a řešení Flashcards

1
Q

Přidělování prostředů, uváznutí a základní pojmy

A

Uváznutí

  • každý proces má přiděleny nějaké prostředky (s omezenou kapacitou) a žádný nemůže pokračovat protože čeká na některý z blokovaných prostředků
  • aneb: čekání na událost, která nenastane (prostředek, který nebude nikdy přidělen)

Kdy nastává?

  1. zamykání zámků, semaforů, souborů,..
  2. přidělování paměti (nebo bufferů) - je málo paměti, procesy chtějí víc, uváznou
  3. deadlock při zasílání zpráv

Příčiny uváznutí:

  1. Pouze jeden proces může používat přidělený prostředek, ostatní čekají
  2. Proces, který má přidělené prostředky, se při neúspěšné alokaci dalších nevzdá těchto prostředků, uvolní je až po ukončení
  3. Proces získává prostředky sekvenčně, oddělenými alokacemi
  4. Prostředek nemůže být preemptivně odebrán, proces sám uvolňuje prostředky

Problémy uváznutí

  • Detekce - Jak zjistit které procesy uvázly?
  • Zotavení - Jak se z uváznutí dostat?
  • Prevence - Jak se uváznutí vyhnout?

Typy prostředků

  • Serially Reusable (SR) - opakované použitelné
  • Consumable Resources (CR) - jednorázové použitelné
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Stav systému

A
  • reprezentuje stav alokace prostředků
  • přechody - stav je měněn procesy při požadavku (request), získání (allocation) a uvolnění (release) prostředku

blokovaný proces = nemůže změnit stav systému (Pokud není proces v daném stavu systému blokovaný může změnit jeho stav)
Uváznutý proces = je blokován a žádné změn stavu ho neodblokují

Stav uváznutí = stav systému, ve kterém je alespoň jeden uváznutý proces
Prevence uváznutí = omezení přechodů mezi stavy ale stavy uváznutí byly nedostupné
Bezpečný stav = nelze se z něj dostat do stavu uváznutí

PS: konstrukce grafu není v běžícím systému možná, jelikož nejsem předem známy požadavky

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

SR - Serially Reusable prostředky

A

SR prostředky:

  • Prostředek se skládá z konstantního počtu stejných jednotek
  • Jednotka je buďto volná nebo přidělená.
  • Proces může uvolnit jednotku, pokud ji má přidělenu.

Graf alokace SR prostředků (prostředky - obdelník, procesy - kruh, přidělení, čekání)

  • ukazuje stav systému pro SR prostředky
  • Prostředek může být přidělen do maximální kapacity
  • lze žádat maximálně o jeho celou kapacitu

Detekce uváznutí - hledá procesy, které nejsou zablokovány a mohou přivést systém do jiného stavu (požadavkem, přidělením, uvolněním)
!!! Procesy jsou zablokovány, pokud jejich požadavek nemůže být uspokojen ani nemohou uvolnit prostředky. !!!

Redukce grafu alokace prostředků - nezablokovaným procesem p - odstraňuje hrany z/do p přidělením požadovaných prostředků, dokončením procesu a jejich následným uvolněním.
- aneb spustíme a dokončíme proces

Neredukovatelný graf = nelze žádným procesem redukovat -> stav uváznutí
Úplně redukovatelný graf = je možné odstranit všechny hrany nějakou sekvencí redukcí. Všechny sekvence vedoucí k úplně redukovanému grafu jsou ekvivalentní.

Algoritmus detekce - Postupně prochází graf a redukuje jej - s využitím znalosti počtu požadovaných a přidělených prostředků
- Složitost O(mn)

Nutnou podmínkou uváznutí je cyklus v grafu alokace SR.
- Pokud graf neobsahuje cyklus nemůže nastat uváznutí - opačně to neplatí (bez cyklu nemůže být uváznutí, ale cyklus neznamená uváznutí)

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

SR - Speciální typy systémů

A

Knot = silná komponenta, ze které nevede žádná hrana ven, ale pouze dovnitř. Silná komponenta grafu je maximálně silně souvislý graf.

(Silně souvislá komponenta je takový maximální podgraf orientovaného grafu, v němž pro každou dvojici vrcholů u, v existuje sled.)

Systém s okamžitým přidělením = přiděluje prostředky ihned. V grafu alokace SR prostředků pak zůstavají pouze neuspojitelné požadavky.
- Nutnou a postačující podmínkou uváznutí v systému s okamžitým přidělováním je KNOT v grafu alokace

Systém s prostředky kapacity 1 = všechny prostředky mají kapacitu pouze 1
- Nutnou a postačující podmínkou uváznutí v systému s prostředky kapacity 1 je CYKLUS v grafu alokace

Systém s jednotkovými požadavky = procesy žádají o maximálně jednu jednotku prostředku
- Nutnou a postačující podmínkou uváznutí v systému s jednotkovými požadavky je KNOT v grafu alokace

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

SR - zotavení z uváznutí

A

a) násilným ukončením procesu
b) odebráním prostředků
- Přímé - blokující požadavek na prostředky je ukončen chybou “prostředky odebrány”
- Nepříme - návrat k předchozímu stavu (rollback na checkpoint)

Výběr procesu pro odebrání SR prostředků podle:

  • priorita procesu
  • cena znovuprovedení
  • typ procesu (systémový, uživatelský, …)

Po odebrání se změní stav (graf) a přepočítá se.

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

SR - prevence uváznutí

A

= omezuje přechody tak, aby se uváznutí vyhnula

Metody

  1. Sdílení prostředků (ale to porušuje podmínku výlučnosti).
  2. Přidělovat vždy všechny prostředky najednou jednomu procesu jedním požadavkem (neefektivní).
  3. Každému procesu umožnit držet vždy jen jeden prostředek (ne vždy možné - některé procesy mohou potřebovat držet více prostředků v jeden okamžik).
  4. Při požadavku další jednotky se nejprve všech vzdát a žádat najednou (né vždy možné)
  5. Používat blokující požadavky pouze pokud ještě žádné prostředky nevlastní, o další žádá neblokujícím způsobem. Pokud se nepodaří získat všechny, musí se všech vzdát a žádat znovu.
  6. Prostředky žádat v pevném pořadí (vzrůstající), pak nemůže vzniknout uváznutí (nejpoužívanější).

Bankéřův algoritmus - omezuje maximální počet požadavků
- Každý proces v systému deklaruje svoje maximální požadavky na prostředky
- Je kontrolováno zda: < počet_přidělených_prostředků > + < počet_požadovaných_prostředků > < = < deklarované_maximum >
Princip algoritmu:
Povolit pouze takové přidělení, po kterém existuje alespoň jedna posloupnost uspokojení maximálních požadavků všech procesů.

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

CR prostředky - Consumable - jednorázové prostředky

A
  • CR - jednorázově použitelné - consumable resources
  • počet dostupných prostředků se mění konzumováním a produkcí
  • počet jednotek není omezen

Neomezený systém - !!!prevence není možná!!!

  • Stav uváznutí - všechny procesy zablokované
  • Zotavení - Pokud není některý proces zablokovaný může vyprodukovat libovolný počet prostředků a tím ostatní uvolnit
  • Prevence - Žádný stav systému není bezpečný !!!prevence není možná!!!

Systém se známými producenty - !!!prevence není možná!!!

  • Stav uváznutí - uváznutí pro všechny zúčastněné procesy (neexistuje žádný postup redukcí vedoucí na stav,kde proces není zablokován)
  • Zotavení - zrušení zablokovaného procesu, pokud možno ne producenta
  • Prevence - Žádný stav systému není bezpečný (prevence není možná)
  • Zablokování může nastat při požadavku i přidělení
  • Nutnou podmínkou uváznutí je cyklus v grafu alokace
  • !!! záleží na pořadí redukcí !!! Pořadí redukcí v grafu alokací je důležité (mění se počet jednotek)

Systém se známými producenty a konzumenty = pro každý prostředek je definována množina producentů a konzumentů tohoto prostředku

  • Všechny stavy jsou bezpečné pokud je graf blokovaných požadavků redukovatelný
  • Na pořadí redukcí nezáleží
  • Systém není bezpečný pokud neexistuje alespoň jeden proces, který nic nekonzumuje = systím je bezpečný pokud existuje alespoň jeden proces, který nic nekonzumuje
How well did you know this?
1
Not at all
2
3
4
5
Perfectly