哲學家就餐問題,哲學家就餐問題

時間 2022-10-08 07:31:04

1樓:朱曾巫馬雅霜

兩個地方應該是pv操作,pv都是操作元語,不可中斷p操作是將訊號量-1

v操作是將訊號量+1

pv一定要配對使用

哲學家進餐可以通過訊號量機制解決,避免死鎖注釋如下:

void

test(int

i)//測試哲學家i是否滿足eating條件//通過p操作後進入eating,否則在p(s[i])處阻塞}state[i]=thinking;

//初始化狀態位

s[i]=0;

//初始化s[i]

訊號量void

philosopher(int

i)p(mutex);

//對mutex加鎖,防止多個程序同時對state[i]操作state[i]=thinking;

//設定i狀態

test([i-1]%5);

//為左邊和右邊測試並設定s狀態

test([i+1]%5);

v(mutex);

//釋放訊號量}

2樓:

五位哲學家坐在一張圓桌,桌子**的乙個前空盤通心粉每人,每兩個男人之間放一根筷子行為的每乙個哲學家的想法,感覺餓了,然後吃通心粉吃麵食,每個哲學家必須兩根筷子,而且每個人只能直接從左邊或右邊,拿起筷子

定義n 5

無效哲學家(int i)的 }

為了防止死鎖發生時所採取的措施:

最多允許4個哲學家圍坐在桌子同時,只有當左,右兩側的哲學家筷子是可以的,只是為了讓他的筷子,(?),所有的哲學家數,奇數號的哲學家必須首先走左邊的筷子,偶數哲學家,反之亦然,為了避免死鎖, ,哲學家分為三種狀態,思考,飢餓,吃飯,和時間拿到兩筷子,或不採取

在哲學家就餐問題的解決方案( 1)

定義n 5

無效哲學家(我) }

哲學家就餐問題的解決方案(2)

定義n 5

定義的思考0

定義hungry 1

定義吃2 br />#的typedef int訊號;

int狀態[n];

訊號量互斥= 1;

訊號[n];

無效測試(int i)

>} 無效哲學家(我) }

狀態[ =思維

[i] = 0

-----------

事實上,我不明白......

3樓:臸鏡

因為是一張圓的桌子,桌子坐五個人,每個人的右手邊有一支筷子(桌子上共5只),2號坐在1號的左邊,那麼1號拿左手邊的筷子和2號拿右手邊的筷子便是取同一支筷子,3,4號同理。

點反對的人是非要我補這張圖麼?看清楚題主問的什麼好伐?有要**麼?一天就知道上網找**抄不會自己寫的也是人才

哲學家進餐問題(在計算機作業系統方面的相關程式設計)

哲學家進餐問題的演算法與實現

古希臘為理想而死的哲學家,古希臘三大哲學家是誰,他們的主要哲學思想史什麼

嚴格的說,蘇格拉底也不是為理想而死的。至少不是他自願的,他是被當時的統治者燒死的!而且原因好像是乙個莫須有的罪名!他的學生柏拉圖曾經為他辯護過!其實,在古希臘,那個奴隸社會中,希臘城邦的思想是比較自由的!早期的希臘哲學並不是源於希臘本土,而是源於希臘的殖民地,這個遠離希臘本土的地方,特別有利於希臘哲...

成為乙個哲學家需要幾步?哲學家是幹什麼的

只要你不是原地踏步,一步就可以了!又或者 1 學習 2 理解 3 思考 4 發表 5 得到認可。2步。1學哲學。2用哲學生活。空想的東西 前人早就想過了。每個時代需要時代的代言人。這就是哲學家的事情。只需要一步 把自己變成神經病人。沒有步驟,你認為是就是了。哲學家只是別人給的乙個稱號罷了,他沒有乙個...

為什麼哲學家們都不說「人話 」?

哲學家說的是生活中最簡單的話,由於一般從事生產的人重視物質感受,從而忽略了生活中的精神感受,以至於人們從來不去思考這些簡單的問題,所以認為哲學家說的話很繞 很玄,如果人們停下腳步感受一下這些不是 人話 的話,會發現這些道理其實我們都懂。人生是一筆交易 為什麼現實生活中,沒有人說真話?誰說真話,誰就被...

哲學家門巴尼德思想觀念,人文哲學

家們巴基斯思想概念概論那麼說他的概論很先進的,我們都可以學習 門把你得的思想和觀念是非常好的,而且他的思想觀念理念都是非常先進的,非常有哲理性的是乙個非常值得人們學習的 哲學家門巴尼德思想觀念這個不清楚,你可以去查一下資料 這話都是一些觀點吧,就是您的觀念要遵循著這個觀點來。這家門前巴尼德思想觀念,...

權利意志說 是下列哪位哲學家的學說

一,權力意志 由於遲到五 十分鐘,漏去重要介紹文字及關於權力意志的引入 霍布斯 實現意志 對權力的渴求權力 要求 意志 權力 權力就是意志,意志就是權力.權力意志 尼采晚期思想的核心術語.任何一句話,都可能是深入乙個哲學家思想的門徑.道德的譜系 第二章十二節 懲罰與起源的目的應該分開.重新評價一切價...