Uváznutí (deadlock)

  • Situace, kdy několik vláken čeká na událost/prostředek, kterou může vyvolat/uvolnit pouze jedno z čekajících vláken

Výpočetní prostředky

  • fyzické (fyzická paměť, tiskárna)
  • logické (mutex, soubor)

Typy sdílených prostředků

  • Odnímatelné (preemtable)
    • Může být odebrán bez problémů (odložení procesu z paměti na disk)
  • Neodnímatelné (non-preemtable)
    • Nemohou být odebrány bez rizika (tiskárna, mutex)
    • Většina prostředků jsou neodnímatelné

Coffmanovy podmínky

  • Vzájemné vyloučení (postačující)

    • Prostředek je buď držen nebo volný (mutex)
  • Podmínka neodnímatelnosti (postačující)

    • Prostředek již přidělen nesmí být násilně odebrán (musí být dobrovolně uvolněn)
  • Podmínka "drž a čekej" (postačující)

    • Vlákno s prostředky může žádat o další (čeká na další) prostředky, které má někdo jiný
  • Podmínka kruhového čekání (nutná)

    • Musí existovat smyčka 2 a více vláken, ve které každé vlákno čeká
  • Při splnění všech 4 nastává deadlock pro odstranění stačí zrušit jednu z nich


Vytvořeno: 7. 8. 2024, 13:25
Poslední aktualizace: 7. 8. 2024, 13:25