進(jìn)程同步與互斥_哲學(xué)家進(jìn)餐問(wèn)題.doc

進(jìn)程同步與互斥_哲學(xué)家進(jìn)餐問(wèn)題.doc

ID:59316650

大小:169.00 KB

頁(yè)數(shù):16頁(yè)

時(shí)間:2020-09-05

進(jìn)程同步與互斥_哲學(xué)家進(jìn)餐問(wèn)題.doc_第1頁(yè)
進(jìn)程同步與互斥_哲學(xué)家進(jìn)餐問(wèn)題.doc_第2頁(yè)
進(jìn)程同步與互斥_哲學(xué)家進(jìn)餐問(wèn)題.doc_第3頁(yè)
進(jìn)程同步與互斥_哲學(xué)家進(jìn)餐問(wèn)題.doc_第4頁(yè)
進(jìn)程同步與互斥_哲學(xué)家進(jìn)餐問(wèn)題.doc_第5頁(yè)
資源描述:

《進(jìn)程同步與互斥_哲學(xué)家進(jìn)餐問(wèn)題.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、網(wǎng)絡(luò)教育學(xué)院《操作系統(tǒng)》課程設(shè)計(jì)題目:進(jìn)程同步與互斥哲學(xué)家進(jìn)餐問(wèn)題學(xué)習(xí)中心:層次:專業(yè):年級(jí):年秋季學(xué)號(hào):學(xué)生:輔導(dǎo)教師:完成日期:目錄1.題目要求與開(kāi)發(fā)環(huán)境11.1題目目的與要求11.2題目開(kāi)發(fā)環(huán)境11.3開(kāi)發(fā)原型圖11.4設(shè)計(jì)界面截圖22.總體設(shè)計(jì)思想以及相關(guān)知識(shí)22.1總體設(shè)計(jì)思想22.2本程序涉及到的概念32.2.1簡(jiǎn)介32.2.2臨界資源32.2.3進(jìn)程同步32.2.4進(jìn)程互斥42.2.5實(shí)現(xiàn)臨界區(qū)互斥的基本方法4硬件實(shí)現(xiàn)方法4信號(hào)量實(shí)現(xiàn)方式53.流程和效果圖53.1程序流程圖及簡(jiǎn)介53.2流程圖各階段程序界面的變化74.程序源代碼95.設(shè)計(jì)總

2、結(jié)141.題目要求與開(kāi)發(fā)環(huán)境1.1題目目的與要求題目的目的:通過(guò)實(shí)現(xiàn)哲學(xué)家進(jìn)餐問(wèn)題的同步深入了解和掌握進(jìn)程同步和互斥的原理。題目要求:簡(jiǎn)單描述哲學(xué)家進(jìn)餐問(wèn)題??稍O(shè)計(jì)五個(gè)哲學(xué)家,每人都需要一雙筷子。哲學(xué)家有兩種活動(dòng):吃飯和思考,需要成功設(shè)計(jì)讓每個(gè)哲學(xué)家能夠順利吃飯。1.2題目開(kāi)發(fā)環(huán)境系統(tǒng)平臺(tái):Windows7旗艦版實(shí)現(xiàn)語(yǔ)言:C#開(kāi)發(fā)工具:MicrosoftVisualStudio20101.3開(kāi)發(fā)原型圖哲學(xué)家11哲學(xué)家2哲學(xué)家5哲學(xué)家4哲學(xué)家31.4設(shè)計(jì)界面截圖只是為了體現(xiàn)算法,關(guān)鍵我不會(huì)美工,所以界面比較簡(jiǎn)單2.總體設(shè)計(jì)思想以及相關(guān)知識(shí)2.1總體設(shè)計(jì)思想

3、哲學(xué)家的生活就是思考和吃飯,即思考,餓了就吃,吃飽了再思考,循環(huán)往復(fù)。要求是:每一個(gè)哲學(xué)家只有在拿到位于他左右兩側(cè)的筷子后,才能夠就餐;哲學(xué)家不能拿著一只筷子不放手,也不能從其他哲學(xué)家手中搶奪筷子;哲學(xué)家每次吃飽后必須放下他手中的兩只筷子恢復(fù)思考,不能強(qiáng)抓住筷子不放。設(shè)計(jì)一個(gè)程序,能夠顯示當(dāng)前各哲學(xué)家的狀態(tài)和桌上筷子的使用情況,并能無(wú)死鎖的推算出下一狀態(tài)各哲學(xué)家的狀態(tài)和桌上筷子的使用情況。即設(shè)計(jì)一個(gè)能安排哲學(xué)家正常生活的程序。開(kāi)始本來(lái)是準(zhǔn)備用C++設(shè)計(jì)的,但是最近開(kāi)始自學(xué)C#,發(fā)現(xiàn)微軟封裝了很多基類,調(diào)用十分方便??梢院芎?jiǎn)單的設(shè)計(jì)出程序,正好練習(xí)一下,所

4、以就用C#設(shè)計(jì)程序了,同時(shí)在百度查找了很多資料。2.2本程序涉及到的概念2.2.1簡(jiǎn)介???進(jìn)程同步是一個(gè)操作系統(tǒng)級(jí)別的概念,是在多道程序的環(huán)境下,存在著不同的制約關(guān)系,為了協(xié)調(diào)這種互相制約的關(guān)系,實(shí)現(xiàn)資源共享和進(jìn)程協(xié)作,從而避免進(jìn)程之間的沖突,引入了進(jìn)程同步。2.2.2臨界資源???在操作系統(tǒng)中,進(jìn)程是占有資源的最小單位(線程可以訪問(wèn)其所在進(jìn)程內(nèi)的所有資源,但線程本身并不占有資源或僅僅占有一點(diǎn)必須資源)。但對(duì)于某些資源來(lái)說(shuō),其在同一時(shí)間只能被一個(gè)進(jìn)程所占用。這些一次只能被一個(gè)進(jìn)程所占用的資源就是所謂的臨界資源。典型的臨界資源比如物理上的打印機(jī),或是存在

5、硬盤或內(nèi)存中被多個(gè)進(jìn)程所共享的一些變量和數(shù)據(jù)等(如果這類資源不被看成臨界資源加以保護(hù),那么很有可能造成丟數(shù)據(jù)的問(wèn)題)。???對(duì)于臨界資源的訪問(wèn),必須是互訴進(jìn)行。也就是當(dāng)臨界資源被占用時(shí),另一個(gè)申請(qǐng)臨界資源的進(jìn)程會(huì)被阻塞,直到其所申請(qǐng)的臨界資源被釋放。而進(jìn)程內(nèi)訪問(wèn)臨界資源的代碼被成為臨界區(qū)。???對(duì)于臨界區(qū)的訪問(wèn)過(guò)程分為四個(gè)部分:???1.進(jìn)入?yún)^(qū):查看臨界區(qū)是否可訪問(wèn),如果可以訪問(wèn),則轉(zhuǎn)到步驟二,否則進(jìn)程會(huì)被阻塞???2.臨界區(qū):在臨界區(qū)做操作???3.退出區(qū):清除臨界區(qū)被占用的標(biāo)志???4.剩余區(qū):進(jìn)程與臨界區(qū)不相關(guān)部分的代碼2.2.3進(jìn)程同步進(jìn)程同步也

6、是進(jìn)程之間直接的制約關(guān)系,是為完成某種任務(wù)而建立的兩個(gè)或多個(gè)線程,這個(gè)線程需要在某些位置上協(xié)調(diào)他們的工作次序而等待、傳遞信息所產(chǎn)生的制約關(guān)系。進(jìn)程間的直接制約關(guān)系來(lái)源于他們之間的合作。比如說(shuō)進(jìn)程A需要從緩沖區(qū)讀取進(jìn)程B產(chǎn)生的信息,當(dāng)緩沖區(qū)為空時(shí),進(jìn)程B因?yàn)樽x取不到信息而被阻塞。而當(dāng)進(jìn)程A產(chǎn)生信息放入緩沖區(qū)時(shí),進(jìn)程B才會(huì)被喚醒。概念如下圖所示。2.2.4進(jìn)程互斥進(jìn)程互斥是進(jìn)程之間的間接制約關(guān)系。當(dāng)一個(gè)進(jìn)程進(jìn)入臨界區(qū)使用臨界資源時(shí),另一個(gè)進(jìn)程必須等待。只有當(dāng)使用臨界資源的進(jìn)程退出臨界區(qū)后,這個(gè)進(jìn)程才會(huì)解除阻塞狀態(tài)。?比如進(jìn)程B需要訪問(wèn)打印機(jī),但此時(shí)進(jìn)程A占有

7、了打印機(jī),進(jìn)程B會(huì)被阻塞,直到進(jìn)程A釋放了打印機(jī)資源,進(jìn)程B才可以繼續(xù)執(zhí)行。概念如下圖所示。2.2.5實(shí)現(xiàn)臨界區(qū)互斥的基本方法硬件實(shí)現(xiàn)方法通過(guò)硬件實(shí)現(xiàn)臨界區(qū)最簡(jiǎn)單的辦法就是關(guān)CPU的中斷。從計(jì)算機(jī)原理我們知道,CPU進(jìn)行進(jìn)程切換是需要通過(guò)中斷來(lái)進(jìn)行。如果屏蔽了中斷那么就可以保證當(dāng)前進(jìn)程順利的將臨界區(qū)代碼執(zhí)行完,從而實(shí)現(xiàn)了互斥。這個(gè)辦法的步驟就是:屏蔽中斷--執(zhí)行臨界區(qū)--開(kāi)中斷。但這樣做并不好,這大大限制了處理器交替執(zhí)行任務(wù)的能力。并且將關(guān)中斷的權(quán)限交給用戶代碼,那么如果用戶代碼屏蔽了中斷后不再開(kāi),那系統(tǒng)豈不是跪了?還有硬件的指令實(shí)現(xiàn)方式,這個(gè)方式和接下

8、來(lái)要說(shuō)的信號(hào)量方式如出一轍。但是通過(guò)硬件來(lái)實(shí)現(xiàn),這里就不細(xì)說(shuō)了。信號(hào)量實(shí)現(xiàn)方式這

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。