Skip to main content

Mi az étkezési filozófusok problémája?

Az étkezési filozófusok problémája egy gondolatkísérlet vagy példa, amelyet a számítástechnika területén használnak.A probléma analógiát használ a szinkronizálási kérdések szemléltetésére, amelyek akkor merülhetnek fel, amikor a számítógépek megosztják az erőforrásokat.A számítógépes tudósok az étkezési filozófusok problémáit használják, hogy megtanítsák a hallgatókat az e kérdések megoldására használt algoritmusokról.Az asztal közepén található egy tál tészta vagy más étel.Mindegyik filozófusnak mindkét oldalán van egy villája vagy pálcikája, ami azt jelenti, hogy összesen öt villa vagy pálcika van.Az étkezéshez egy filozófusnak két edényre van szüksége.Mindegyik filozófusnak egy kis időt kell töltenie arra, hogy gondolkodjon, és nem tud egyszerre gondolkodni és enni.Az étkezési filozófusok problémájának szíve a holtpont megelőzésének nehézsége.

Ebben a problémában a holtpont akkor fordul elő, amikor a filozófusok olyan helyzetbe kerülnek, ahol nem tudnak gondolkodni, sem enni.Például, ha minden filozófus balra venné az edényt, senki sem tudna enni, mert az összes edényt használni fogják, de a filozófusnak nincs kettője.Annak érdekében, hogy minden filozófus étkezzen, a hallgatónak létrehoznia kell egy algoritmust, amely biztosítja, hogy egyes filozófusok esznek, míg mások gondolkodnak.Ez lehetővé teszi mind az étkezés, mind a gondolkodás folytatódását az elakadás nélkül.Az egyik megoldás egy hatodik karakter létrehozása, a pincér, aki engedélyt ad vagy tagad a filozófusok számára a villák felvételére.Mások magukban foglalják annak a rendnek a szabályozását, amelyben a filozófusok felveszik és leteszik villáikat a rendelkezésre állás maximalizálása érdekében.Mások azt mondják, hogy a filozófusoknak azt mondják, hogy ellenőrizzék, hogy szomszédaik esznek -e, mielőtt meg akarnak enni.Lényegében minden megoldás magában foglalja az algoritmusnak nevezett szabálykészlet kidolgozását, amely akkor szabályozza, amikor a filozófusok gondolkodnak, esznek, vagy felveszik és lerakják az edényeiket.

Az étkezési filozófusok problémáját először Edsger Dijkstra holland számítógépes tudós fejezte ki 1965 -ben, mint vizsgakérdés a hallgatók számára.Azóta a probléma számos változáson ment keresztül.Számos kissé eltérő formátumban jelenik meg, amelyek közül néhány csak a történet részleteit változtatja meg, de mások, amelyek további korlátozásokat javasolnak a problémára a nehéz fogalmak bemutatására.A leggyakoribb modern verziót Tony Hoare készítette.