Problém obědvajících filozofů: Porovnání verzí

Smazaný obsah Přidaný obsah
ZéroBot (diskuse | příspěvky)
G3robot (diskuse | příspěvky)
m komprese kódu, substituce šablony vjazyce2
Řádek 2:
 
'''Problém obědvajících (též večeřících) filosofů''' je myšlenkový [[experiment]], který se používá k ověření správné činnosti správy [[proces|procesů]]. Formuloval jej [[Edsger Dijkstra]] v roce [[1965]]. Každý [[operační systém]] má [[správa|správu]] procesů, což je vlastně [[algoritmus]], který řídí vznik, zánik a plánování procesů (běžících [[počítačový program|programů]]) v operačním systému.
== Ilustrace problému obědvajících filosofů ==
 
Řádek 9:
Když filosofové (procesy) spolu nekomunikují nebo komunikují nesprávně, může se každý z nich rozhodnout, že vezme například levou hůlku. Teď chce každý z nich vzít pravou hůlku, ale ta je obsazena, takže filozof nemůže ani obědvat, ani filosofovat. Takový stav se nazývá [[uváznutí]] ([[deadlock]]). Musí tedy buď počkat, dokud se hůlka uvolní, nebo hůlku položit a zkusit to později znovu.
 
Jiným kritickým stavem je [[vyhladovění]] ({{Vjazyce2Vjazyce|en}} {{Cizojazyčně|en|''starvation''}}, {{Vjazyce2Vjazyce|cs}} {{Cizojazyčně|cs|''stárnutí zdrojů''}}), které nastává, když se filozof nedostane po určité době k jídlu (resp. proces ke [[zdroj|zdrojům]]). Nastává například při velmi krátkých [[časový interval|intervalech]] jezení a filosofování.
 
Vyhladovění by mohlo také nastat nezávisle na deadlocku, pokud je filozof neschopný získat obě hůlky během stejného časového úseku. Například můžeme uvažovat pravidlo, že filozof pustí jednu hůlku z ruky za 5 minut od okamžiku, kdy si jí vezme a čeká dalších 5 minut na to, aby udělal další pokus najíst se. Tento režim eliminuje možnost deadlocku (systém se vždy může dostat do jiného stavu), ale stále je problémem [[livelock]]. Když totiž všichni filozofové položí najednou hůlky a pak si je za 5 minut opět vezmou, situace se opakuje, znovu mají po jedné hůlce všichni filosofové.
Řádek 20:
 
=== Řešení za pomocí přidání číšníka ===
Jednoduché řešení lze dosáhnout zavedením číšníka u stolu. Číšník určí, kdo si hůlky vezme, co v podstatě vyřeší problém rozhodování. Protože si uvědomuje, které hůlky jsou použity, je schopen rozhodnout a zabránit tak deadlocku. Protože na stole zůstala v případě 5 filozofů ještě jedna hůlka, je zřejmé, že následovat v jezení bude ten filozof, který se stal jejím dočasným majitelem. Tomu pak číšník přisoudil hůlku, kterou zrovna obsluhuje vedle sedící filozof.