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

Smazaný obsah Přidaný obsah
Lukina (diskuse | příspěvky)
Lukina (diskuse | příspěvky)
Řádek 10:
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]] jezení a filosofování.
 
Vyhladovělých by mohlo také nastat nezávisle na deadlocku, pokud je filozof neschopný získat obě vidličkyhůlky během stejného časového úseku. Například můžeme uvažovat pravidlo, že filozof pustí jednu vidličkuhů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 vidličkyhůlky a pak si je za 5 minut opět vezmou, situace se opakuje, znovu mají po jedné vidličkyhůlce všichni filosofové.
 
Nedostatek volných vidličekhůlek je [[analogie|analogii]] ke zamykání [[sdílení|sdílených]] prostředků v reálném počítačovém [[programování]], situace známá, jako [[souběžnost]]. Zamykání prostředku je běžná [[technika]], jak zajistit [[konzistence|konzistenci]] daného zdroje v čase. Když [[zdroj]], se kterým [[program]] pracuje, už je uzamčen jiným programem, program čeká, dokud není odemčen. Pokud některé programy vyžadují zamykání zdrojů, může nastat deadlock. Závisí tudíž na okolnostech. Například, jeden program potřebuje dva soubory ke zpracování. Když dva takové programy uzamknou každý jeden z těchto souborů, oba budou čekat na to, aby ten druhý uvolnil zdroj, který má k dispozici, což se nikdy nestane.
 
Obecně je problém obědvajících filozofů běžný abstraktním problémem používaným na vysvětlení různých otázek, které se objevují v záležitosti vzájemné výlučnosti, jako hlavní myšlenky daného problému.
 
== Řešení ==