999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用管程概念求解哲學家進餐問題

2015-03-25 13:22:54詹勁松
長春大學學報 2015年12期
關鍵詞:進程概念

詹勁松

(福建師范大學福清分校 電子與信息工程學院,福建 福清350300)

0 引言

哲學家進餐問題是操作系統中經典的同步問題,它需要在多個進程或線程之間分配多個資源,使進程(線程)能向前推進。我們的目的是要在這種情況下采用某種策略,預防死鎖的發生。管程是一種高級的同步構造,利用Java 高級別并發對象可以實現管程概念。通過管程可以方便地實現這種死鎖預防策略。

1 哲學家進餐問題

5 位哲學家圍坐在一張圓桌旁邊,圓桌中央放置一碗米飯,每兩人之間放置一支筷子。每位哲學家思考、饑餓,然后吃飯。為了吃飯,他必須拿起與他相鄰的左、右兩支筷子。他不能從別的哲學家手里搶奪筷子。吃完飯后,他會放下筷子,并又開始思考。

如果對每個哲學家的吃飯過程不加限制,很快就進入這樣一個狀態,每人搶得一支筷子,結果誰也吃不了飯,也就是進入了死鎖的狀態。產生死鎖有4 個必要條件,互斥、占有并等待、非搶占和循環等待[1]。如果能夠使一組進程(線程)在推進的整個過程中,這4 個條件之一或更多保持不成立,那么這組進程(線程)就不會陷入死鎖狀態。哲學家問題的死鎖預防有多種方法。其中一種是:每位哲學家要能取到手邊的兩支筷子才開始吃飯,否則他一支筷子也不取。這種解法的實質是預先分配需要的全部資源,從而破壞產生死鎖的占有并等待這個必要條件。本文就是采用這種解法。

2 管程

為了解決同步問題程序中使用信號量容易出錯的問題,70 年代初,P.B.Hansen 和C.A.R.Hoare 等人提出了管程的概念。其基本思想是:把分散于各進程(線程)中的臨界區集中起來統一管理,并把共享資源用數據結構來抽象表示,建立一個管程結構來管理相應的訪問[2]。管程結構確保一次只能有一個進程(線程)在管程內活動。

管程結構通過防止對一個資源的并發訪問來達到了實現臨界區的目的,從而提供了實現互斥的手段,但是管程并沒有提供進程(線程)和其他進程(線程)之間同步的途徑。當一個進程(線程)進入了管程并調用了管程的一個過程。如果該過程在執行時發現資源不能得到滿足,當然應該讓此進程(線程)阻塞,同時需要開放管程,讓之前被阻擋在管程外邊的進程(線程)之一進入。為此需要定義一個另外的同步機制,這可由條件(Condition)結構來提供。條件變量只有操作wait()和signal()。前者用于阻塞調用的進程(線程)。后者用于啟動一個被阻塞的進程(線程)。

3 Java 高級別并發對象

在Java SE 5.0 之前,用Java 實現管程有些不精確。因為線程之間的同步只能使用Object 類的wait(),和notify()或notifyAll()來實現。只能向任何一個被阻塞線程或者全部被阻塞線程發送啟動消息,不能準確定位向某一個被阻塞線程發送消息。Java SE 5.0 引入了ReentrantLock 類和Condition 接口[3],改變了這個狀況。通過調用Condtiton 對象的signal 方法,某個哲學家吃完飯,放下筷子就可以準確地向其相鄰的兩位哲學家線程發出啟動信號。

4 算法描述

借助信號量,算法描述如下:

其Java 實現代碼:

以Monitor1 類實現管程概念,內含pickup、putdown 兩個方法,供哲學家線程對象調用。這兩個方法是互斥的,確保一次只能有一個哲學家線程在管程內活動。運用管程概念,哲學家線程運行過程編程十分簡單。只要調用管程相應的方法,就能夠保證線程之間的互斥和同步。

我們在四核i5 CPU,4G 內存的計算機,Windows7 平臺上運行該程序4 個小時沒有發生死鎖和也沒有發生餓死。5 個哲學家線程進入吃飯狀態的幾率差不多。

5 結語

本文利用Java 高級別對象和管程概念給出了哲學家進餐問題死鎖預防的一種解法。與文獻4 中的方法相比[4],借助管程概念求解哲學家進餐問題,把所有的互斥、同步相關代碼集中在于管程類內,在更高的層次上解決問題,使代碼不容易出錯,可讀性更好,并且程序模塊化的程度更高。

[1] Abraham Silbertschatz,Peter Baer Galvin,Geg Gagne.操作系統概念[M].鄭扣根,譯.7 版.北京:高等教育出版社,2010.

[2] 費翔林,駱斌.操作系統教程[M].5 版。北京:高等教育出版社,2014.

[3] CayS.Horstmann,Gary Cornell.Java 核心技術卷1[M].周立新,陳波,葉乃文,等譯.北京:機械工業出版社,2013.

[4] 詹勁松.利用Java 高級別并發對象求解哲學家進餐問題[J].佳木斯大學學報(自然科學版),2013,31(6):905-906.

猜你喜歡
進程概念
Birdie Cup Coffee豐盛里概念店
現代裝飾(2022年1期)2022-04-19 13:47:32
幾樣概念店
現代裝飾(2020年2期)2020-03-03 13:37:44
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
學習集合概念『四步走』
聚焦集合的概念及應用
論間接正犯概念之消解
概念的限制
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: jizz在线观看| 黄色国产在线| 久久久久青草线综合超碰| 亚洲精品成人片在线观看| 国产国拍精品视频免费看| 日韩免费毛片视频| 久久亚洲国产最新网站| 欧美日韩在线亚洲国产人| 99中文字幕亚洲一区二区| 国产网站一区二区三区| 欧美成人综合在线| 国产一级二级三级毛片| 自慰网址在线观看| 成人a免费α片在线视频网站| 亚洲欧美国产五月天综合| 国产自在线播放| 亚洲最新在线| 亚洲性视频网站| 亚洲天堂精品在线观看| 99这里只有精品免费视频| 久草中文网| 亚洲国产成人自拍| 国产成人一区在线播放| 欧美亚洲一区二区三区导航| 欧美精品v欧洲精品| 国产亚洲欧美另类一区二区| 国产精品尤物铁牛tv| 亚洲欧美自拍中文| 91精品情国产情侣高潮对白蜜| 亚洲丝袜第一页| 国产在线视频福利资源站| 亚洲丝袜第一页| 激情综合婷婷丁香五月尤物| 国产农村妇女精品一二区| 日韩国产 在线| 亚洲高清资源| 日本一区二区三区精品视频| 亚洲中久无码永久在线观看软件| 亚洲精品午夜天堂网页| 久久精品人人做人人爽97| 香蕉99国内自产自拍视频| 国产精品不卡永久免费| 久久国产成人精品国产成人亚洲| 欧美成人日韩| 久久精品国产精品青草app| 国产91色| 中文成人无码国产亚洲| 极品av一区二区| 久久精品一卡日本电影| 国产亚洲精久久久久久久91| 国产成人无码Av在线播放无广告| 91精品最新国内在线播放| 亚洲色图欧美一区| 亚洲无线一二三四区男男| 69av在线| 亚洲一欧洲中文字幕在线| 亚洲欧美一区二区三区蜜芽| 亚洲日本在线免费观看| 亚洲欧美日韩另类在线一| 欧美亚洲国产精品久久蜜芽| 国产精品吹潮在线观看中文| 中文无码精品A∨在线观看不卡| 日本不卡在线播放| 国外欧美一区另类中文字幕| 99re经典视频在线| 国产亚洲精品无码专| 日韩欧美中文在线| 97人人模人人爽人人喊小说| 美女国内精品自产拍在线播放| 亚洲中文字幕精品| 国产一级片网址| 欧美色丁香| 亚洲国产第一区二区香蕉| 亚洲人成网18禁| 中文字幕av无码不卡免费 | 永久天堂网Av| 69视频国产| 日韩欧美国产综合| 国产成人亚洲精品色欲AV| 91小视频在线播放| 日韩专区第一页| 欧美日本一区二区三区免费|