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

Smazaný obsah Přidaný obsah
Lukina (diskuse | příspěvky)
doplnění zdrojů
m apostrofy + překlepy
Řádek 1:
'''Problém obědvajících filosofů''' ([[dining philosophers problem]]) 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 [[program|programů]]) v operačním systému.
== Ilustrace problému obědvajících filosofů ==
Řádek 7:
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í]] ([[starvation]]), 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 rychlých [[interval|intervalech]] jízeníjezení a filosofování.
 
Vyhladovělých by mohlo také nastat nezávisle na deadlocku, pokud je filozof neschopný získat obě vidličky během stejného časového úseku. Například můžeme uvažovat pravidlo, že filozof pustí jednu vidličku 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 vidličky a pak si je za 5 minut opět vezmou, situace se opakuje, znovu mají po jedné vidličky všichni filosofové.