Kaj je težava Dining Philosophers?

Problem dining filozofov je miselni eksperiment ali primer, ki se uporablja na področju računalništva. Problem uporablja analogijo za ponazoritev težav s sinhronizacijo, ki se lahko pojavijo, ko si računalniki delijo vire. Računalniški znanstveniki uporabljajo probleme dining philosophers, da bi študente poučili o algoritmih, ki se uporabljajo za reševanje teh težav.

Scenarij problema filozofov v jedilnici je okrogla miza, za katero sedi pet filozofov. Na sredini mize je skleda z rezanci ali drugo hrano. Vsak filozof ima na obeh straneh po eno vilico ali palčko, kar pomeni, da je skupno pet vilic ali palčk. Da bi lahko jedel, potrebuje filozof dva pripomočka. Vsak filozof mora porabiti tudi nekaj časa za razmišljanje in ne more razmišljati in jesti hkrati. Bistvo problema filozofov jedilnice je težava pri preprečevanju zastoja.

Zastoj v tem problemu se pojavi, ko se filozofi postavijo v položaj, ko ne morejo niti razmišljati niti jesti. Na primer, če bi vsak filozof dvignil posodo na svoji levi, nihče ne bi mogel jesti, ker bi bili vsi pripomočki v uporabi, noben filozof pa ne bi imel dveh. Da bi vsem filozofom omogočili jesti, mora študent ustvariti algoritem, ki zagotavlja, da nekateri filozofi jedo, drugi pa razmišljajo. To omogoča nadaljevanje prehranjevanja in razmišljanja brez zastoja.

Obstajajo številne možne rešitve za problem filozofov jedilnice. Ena rešitev vključuje ustvarjanje šestega lika, natakarja, ki daje ali zavrača dovoljenje filozofom, da dvignejo svoje vilice. Drugi vključujejo urejanje vrstnega reda, v katerem filozofi dvignejo in odložijo svoje vilice, da bi povečali razpoložljivost. Drugi vključujejo, da filozofom rečejo, naj preverijo, ali njihovi sosedje jedo, preden poskušajo jesti. V bistvu vsaka rešitev vključuje razvoj niza pravil, imenovanih algoritem, ki ureja, kdaj filozofi razmišljajo, jedo ali poberejo in odložijo svoje pripomočke.

Problem filozofov v jedilnici je prvič izrazil nizozemski računalničar Edsger Dijkstra leta 1965 kot izpitno vprašanje za študente. Od takrat je težava doživela številne spremembe. Pojavlja se v številnih nekoliko različnih oblikah, od katerih nekatere spreminjajo le podrobnosti zgodbe, druge pa predlagajo dodatne omejitve problema za prikaz težkih konceptov. Najpogostejšo sodobno različico je ustvaril Tony Hoare.