"Yemek filozofları sorunu" sunulan problemdi.
Temelde, yemesi gereken 5 filozof var. (Her filozofun önünde hiç bitmeyen bir tabak hayal edin), her tabak arasında bir çatal (5 tabak, 5 çatal, 5 filozof).
Bir filozof ancak çatalı hem sağa hem de çatalı sola tutuyorsa yiyebilir. (herhangi bir zamanda yalnızca iki filozof yiyebilir).
Kullanılabilir olduğu zaman bir çatal toplanabilir ve tutulursa bırakılabilir. Her çatal birbirine bağlı olarak toplanmalıdır. (bir seferde bir).
Bir filozof yemek yemezken, düşünüyorlar (alternatif durumlara ihtiyaç duyma, sorunu yönlendiren şeydir).
Birinin (bir filozofun bir çatalı tutup diğerini beklediği, başka bir filozofun yemek yemesini önlediği), kilitlenmeyen bir sistem oluşturmadan, her birinin düşünme ve alternatif düşünme (diğerlerinin yiyebilmesi için) yapmalarına nasıl izin verirsiniz?
Bunun kökleri eşzamanlı sistemlerde var ve Concurrency'i tartışırken sunulan tipik bir üniversite sorusu.
Sorunu çözmek için 4 ya da 5 "resmi" algoritmanın geliştirildiğine inanıyorum, ancak "Yemek felsefecileri sorunu" için Google’da hızlı bir arama yapılması size çeşitli sonuçlar verecektir.
Eğer varsa kağıdın orijinal versiyonunu okumak sayfa 866 üzerinde dipnotlar belirtir: "IFIP Kongresi'nde 1965, 213-217 Bildirileri." Eşzamanlı programlama kontrolünde bir sorun nedeniyle Çözümler ".
Eşzamanlılık ve paylaşılan kaynaklardaki sorun "Yemek Felsefesi Sorunu" dur. :-)
Umarım yardımcı olur.