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用哲學生活。空想的東西 前人早就想過了。每個時代需要時代的代言人。這就是哲學家的事情。只需要一步 把自己變成神經病人。沒有步驟,你認為是就是了。哲學家只是別人給的乙個稱號罷了,他沒有乙個...
為什麼哲學家們都不說「人話 」?
哲學家說的是生活中最簡單的話,由於一般從事生產的人重視物質感受,從而忽略了生活中的精神感受,以至於人們從來不去思考這些簡單的問題,所以認為哲學家說的話很繞 很玄,如果人們停下腳步感受一下這些不是 人話 的話,會發現這些道理其實我們都懂。人生是一筆交易 為什麼現實生活中,沒有人說真話?誰說真話,誰就被...
哲學家門巴尼德思想觀念,人文哲學
家們巴基斯思想概念概論那麼說他的概論很先進的,我們都可以學習 門把你得的思想和觀念是非常好的,而且他的思想觀念理念都是非常先進的,非常有哲理性的是乙個非常值得人們學習的 哲學家門巴尼德思想觀念這個不清楚,你可以去查一下資料 這話都是一些觀點吧,就是您的觀念要遵循著這個觀點來。這家門前巴尼德思想觀念,...
權利意志說 是下列哪位哲學家的學說
一,權力意志 由於遲到五 十分鐘,漏去重要介紹文字及關於權力意志的引入 霍布斯 實現意志 對權力的渴求權力 要求 意志 權力 權力就是意志,意志就是權力.權力意志 尼采晚期思想的核心術語.任何一句話,都可能是深入乙個哲學家思想的門徑.道德的譜系 第二章十二節 懲罰與起源的目的應該分開.重新評價一切價...