בעיית הפילוסופים הסועדים

בעיית הפילוסופים הסועדים מסבירה בעיה במחשבים כשכמה תוכניות רוצות את אותם חפצים.


חמישה פילוסופים יושבים סביב שולחן. יש חמש צלחות וחמישה מזלגות. כל פילוסוף צריך שני מזלגות כדי לאכול. כל מזלג נמצא בין שתי צלחות. כל פילוסוף יכול לקחת רק את המזלג שמימינו או שמאלו. הוא לוקח אחד ואז מנסה לקחת את השני. הפילוסופים לא מדברים זה עם זה.

שתי בעיות יכולות לקרות: קיפאון והרעבה. קיפאון (deadlock) הוא מצב שבו אף אחד לא יכול להמשיך. לדוגמה, אם כולם לוקחים קודם את המזלג מימין, אף אחד לא יכול להשיג את המזלג הנוסף. רעבה (starvation) היא מצב שבו מישהו אף פעם לא מצליח לאכול. למשל, אם כל פעם שמישהו לא מצליח הוא מהנה את המזלג ומנסה שוב, הוא אולי לא יצליח לאכול אף פעם.



אולי יהודי מלצר עוזר: כל פילוסוף מבקש רשות מהמלצר לפני שהוא לוקח מזלג. המלצר נותן רשות רק כאשר זה בטוח. כך לא יווצר קיפאון. הרעיון דומה לסמפור (סמפור = שיטה שמגבילה מי יכול לקחת משאבים).


רעיון אחר הוא לתת לכל מי שרוצה לאכול "אסימון" (אסימון = כלי מיוחד). מי שמחזיק את האסימון יכול לקחת מזלגות. זה מונע קיפאון, אך יכול לגרום לחכות ארוך. לפעמים עדיין ייתכן שמישהו יהיה רעב ולא יאכל.

תגובות גולשים

התגובה תפורסם באתר לאחר אישור המערכת

עדיין אין תגובות. היה הראשון להגיב!