Skip to main content

Jaký je problém filozofů stolování?

Problémem filozofů stravování je myšlenkový experiment nebo příklad používaný v oblasti informatiky.Problém používá analogii k ilustraci problémů synchronizace, které mohou nastat, když počítače sdílejí zdroje.Počítačoví vědci používají problémy s jídelním filozofem k výuce studentů o algoritmech používaných k vyřešení těchto problémů.

Scénář problému s jídelním filozofem je kruhový stůl, na kterém se usadí pět filozofů.Uprostřed stolu je mísa nudlí nebo jiného jídla.Každý filozof má na obou stranách jednu vidličku nebo hůlky, což znamená, že je celkem pět vidlic nebo hůlky.K jídlu potřebuje filozof dvě náčiní.Každý filozof musí také strávit nějaký čas přemýšlením a nemůže myslet a jíst současně.Srdcem problému s jídelním filozofem je obtížnost prevence zablokování.

Složení v tomto problému nastává, když se filozofové dostanou do pozice, kde si nemohou myslet ani jíst.Například, pokud by každý filozof měl vyzvednout náčiní po jeho levici, nikdo by nebyl schopen jíst, protože všechny náčiní by se používalo, ale žádný filozof by neměl dva.Aby mohl všechny filozofy jíst, musí student vytvořit algoritmus, který zajišťuje, že někteří filozofové jedí, zatímco jiní přemýšlejí.To umožňuje stravování i myšlení pokračovat bez zastavení.Jedno řešení zahrnuje vytvoření šesté postavy, číšníka, který poskytuje nebo popírá povolení filozofům, aby si vyzvedli své vidlice.Jiní zahrnují regulaci pořadí, ve kterém filozofové vyzvednou a odkládají své vidličky, aby maximalizovali dostupnost.Jiní zahrnují řečení filozofům, aby zkontrolovali, zda jejich sousedé jedí, než se pokusí jíst.Každé řešení v podstatě zahrnuje rozvoj souboru pravidel, nazývaných algoritmus, který se řídí, když filozofové myslí, jedí nebo vyzvednou a položí své náčiní.

Problém s jídelním filozofem byl poprvé vyjádřen nizozemským počítačovým vědcem Edsgerem Dijkstra v roce 1965 jako otázka pro studenty.Od té doby problém prošel řadou změn.Objevuje se v řadě mírně odlišných formátů, z nichž některé mění pouze podrobnosti o příběhu, ale jiné, které navrhují další omezení problému, aby prokázaly obtížné koncepty.Nejběžnější moderní verzi vytvořil Tony Hoare.