哲學(xué)家進(jìn)餐問(wèn)題是荷蘭學(xué)者Dijkstra 提出的經(jīng)典問(wèn)題之一,它是一個(gè)信號(hào)量機(jī)制問(wèn)題的應(yīng)用,在操作系統(tǒng)文化史上具有非常重要的地位。對(duì)該問(wèn)題的剖析有助于學(xué)生深刻地理解計(jì)算機(jī)系統(tǒng)中的資源共享、進(jìn)程同步、死鎖等問(wèn)題,并能熟練地應(yīng)用信號(hào)量來(lái)解決生活中的控制流程,即將生活中的控制流程用形式化的方式表達(dá)出來(lái)。
假設(shè)有5個(gè)哲學(xué)家,他們花費(fèi)一生中的時(shí)光思考和吃飯。這些哲學(xué)家共用一個(gè)圓桌,每個(gè)哲學(xué)家都有一把椅子。在桌子中央是一碗通心面,在桌子上放著5只筷子。(如圖所示)當(dāng)一個(gè)哲學(xué)家思考時(shí),他與其他同事不交互。時(shí)而,哲學(xué)家會(huì)感到饑餓,并試圖拿起與他相近的兩只筷子(他與鄰近左、右之間的筷子)。一個(gè)哲學(xué)家一次只能拿起一只筷子。顯然,他不能從其他哲學(xué)家手里拿走筷子。當(dāng)一個(gè)饑餓的哲學(xué)家同時(shí)有兩只筷子時(shí),他就不能不用釋放他的筷子而自己吃了。當(dāng)吃完后,他會(huì)放下兩只筷子,并再次開(kāi)始思考。
規(guī)定奇數(shù)號(hào)哲學(xué)家先拿他左邊的筷子,然后再去拿右邊的筷子;而偶數(shù)號(hào)哲學(xué)家則相反。按此規(guī)定,將是1、 2號(hào)哲學(xué)家競(jìng)爭(zhēng)1號(hào)筷子;3、4號(hào)哲學(xué)家競(jìng)爭(zhēng)3號(hào)筷子。即五位哲學(xué)家都先競(jìng)爭(zhēng)奇數(shù)號(hào)筷子,獲得后,再去競(jìng)爭(zhēng)偶數(shù)號(hào)筷子,最后總會(huì)有一位哲學(xué)家能獲得兩只筷子而進(jìn)餐。
標(biāo)簽:
Dijkstra
家
信號(hào)量
地理
上傳時(shí)間:
2014-01-23
上傳用戶:teddysha