亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用管程概念求解哲學(xué)家進(jìn)餐問(wèn)題

        2015-03-25 13:22:54詹勁松
        關(guān)鍵詞:管程高級(jí)別哲學(xué)家

        詹勁松

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

        0 引言

        哲學(xué)家進(jìn)餐問(wèn)題是操作系統(tǒng)中經(jīng)典的同步問(wèn)題,它需要在多個(gè)進(jìn)程或線程之間分配多個(gè)資源,使進(jìn)程(線程)能向前推進(jìn)。我們的目的是要在這種情況下采用某種策略,預(yù)防死鎖的發(fā)生。管程是一種高級(jí)的同步構(gòu)造,利用Java 高級(jí)別并發(fā)對(duì)象可以實(shí)現(xiàn)管程概念。通過(guò)管程可以方便地實(shí)現(xiàn)這種死鎖預(yù)防策略。

        1 哲學(xué)家進(jìn)餐問(wèn)題

        5 位哲學(xué)家圍坐在一張圓桌旁邊,圓桌中央放置一碗米飯,每?jī)扇酥g放置一支筷子。每位哲學(xué)家思考、饑餓,然后吃飯。為了吃飯,他必須拿起與他相鄰的左、右兩支筷子。他不能從別的哲學(xué)家手里搶奪筷子。吃完飯后,他會(huì)放下筷子,并又開(kāi)始思考。

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

        2 管程

        為了解決同步問(wèn)題程序中使用信號(hào)量容易出錯(cuò)的問(wèn)題,70 年代初,P.B.Hansen 和C.A.R.Hoare 等人提出了管程的概念。其基本思想是:把分散于各進(jìn)程(線程)中的臨界區(qū)集中起來(lái)統(tǒng)一管理,并把共享資源用數(shù)據(jù)結(jié)構(gòu)來(lái)抽象表示,建立一個(gè)管程結(jié)構(gòu)來(lái)管理相應(yīng)的訪問(wèn)[2]。管程結(jié)構(gòu)確保一次只能有一個(gè)進(jìn)程(線程)在管程內(nèi)活動(dòng)。

        管程結(jié)構(gòu)通過(guò)防止對(duì)一個(gè)資源的并發(fā)訪問(wèn)來(lái)達(dá)到了實(shí)現(xiàn)臨界區(qū)的目的,從而提供了實(shí)現(xiàn)互斥的手段,但是管程并沒(méi)有提供進(jìn)程(線程)和其他進(jìn)程(線程)之間同步的途徑。當(dāng)一個(gè)進(jìn)程(線程)進(jìn)入了管程并調(diào)用了管程的一個(gè)過(guò)程。如果該過(guò)程在執(zhí)行時(shí)發(fā)現(xiàn)資源不能得到滿足,當(dāng)然應(yīng)該讓此進(jìn)程(線程)阻塞,同時(shí)需要開(kāi)放管程,讓之前被阻擋在管程外邊的進(jìn)程(線程)之一進(jìn)入。為此需要定義一個(gè)另外的同步機(jī)制,這可由條件(Condition)結(jié)構(gòu)來(lái)提供。條件變量只有操作wait()和signal()。前者用于阻塞調(diào)用的進(jìn)程(線程)。后者用于啟動(dòng)一個(gè)被阻塞的進(jìn)程(線程)。

        3 Java 高級(jí)別并發(fā)對(duì)象

        在Java SE 5.0 之前,用Java 實(shí)現(xiàn)管程有些不精確。因?yàn)榫€程之間的同步只能使用Object 類的wait(),和notify()或notifyAll()來(lái)實(shí)現(xiàn)。只能向任何一個(gè)被阻塞線程或者全部被阻塞線程發(fā)送啟動(dòng)消息,不能準(zhǔn)確定位向某一個(gè)被阻塞線程發(fā)送消息。Java SE 5.0 引入了ReentrantLock 類和Condition 接口[3],改變了這個(gè)狀況。通過(guò)調(diào)用Condtiton 對(duì)象的signal 方法,某個(gè)哲學(xué)家吃完飯,放下筷子就可以準(zhǔn)確地向其相鄰的兩位哲學(xué)家線程發(fā)出啟動(dòng)信號(hào)。

        4 算法描述

        借助信號(hào)量,算法描述如下:

        其Java 實(shí)現(xiàn)代碼:

        以Monitor1 類實(shí)現(xiàn)管程概念,內(nèi)含pickup、putdown 兩個(gè)方法,供哲學(xué)家線程對(duì)象調(diào)用。這兩個(gè)方法是互斥的,確保一次只能有一個(gè)哲學(xué)家線程在管程內(nèi)活動(dòng)。運(yùn)用管程概念,哲學(xué)家線程運(yùn)行過(guò)程編程十分簡(jiǎn)單。只要調(diào)用管程相應(yīng)的方法,就能夠保證線程之間的互斥和同步。

        我們?cè)谒暮薸5 CPU,4G 內(nèi)存的計(jì)算機(jī),Windows7 平臺(tái)上運(yùn)行該程序4 個(gè)小時(shí)沒(méi)有發(fā)生死鎖和也沒(méi)有發(fā)生餓死。5 個(gè)哲學(xué)家線程進(jìn)入吃飯狀態(tài)的幾率差不多。

        5 結(jié)語(yǔ)

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

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

        [2] 費(fèi)翔林,駱斌.操作系統(tǒng)教程[M].5 版。北京:高等教育出版社,2014.

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

        [4] 詹勁松.利用Java 高級(jí)別并發(fā)對(duì)象求解哲學(xué)家進(jìn)餐問(wèn)題[J].佳木斯大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,31(6):905-906.

        猜你喜歡
        管程高級(jí)別哲學(xué)家
        成人高級(jí)別腦膠質(zhì)瘤術(shù)后復(fù)發(fā)相關(guān)因素分析
        肺原發(fā)未分化高級(jí)別多形性肉瘤1例
        高級(jí)別管線鋼X80的生產(chǎn)實(shí)踐
        山東冶金(2019年2期)2019-05-11 09:12:00
        哲學(xué)家的幽默與智慧
        《與哲學(xué)家的一天》(組詩(shī))
        多管程布置微通道分液冷凝器的熱力性能
        高級(jí)別島葉膠質(zhì)瘤的外科治療策略
        為RTX51Tiny項(xiàng)目添加管程模塊※
        多管程管殼式換熱器隔板槽面積計(jì)算
        山西化工(2010年6期)2010-09-12 07:51:46
        計(jì)算機(jī)操作系統(tǒng)哲學(xué)家進(jìn)餐問(wèn)題的教學(xué)探討
        亚洲午夜精品第一区二区| 精东天美麻豆果冻传媒mv| 草草浮力地址线路①屁屁影院| 国产成人无码av在线播放dvd| 亚洲熟女av中文字幕网站| 国产在线精品亚洲视频在线| 亚洲乱码av一区二区蜜桃av| 免费a级毛片在线播放| 国产一精品一av一免费| 久久老子午夜精品无码怎么打 | a级国产乱理伦片在线播放| 国产精品一区二区韩国AV| 亚洲av色香蕉一区二区蜜桃| av免费在线播放观看| 国产无套内射又大又猛又粗又爽| 久久视频在线| 双腿张开被9个黑人调教影片| 女同成片av免费观看| 日本一区二区三区高清视| 久久久久久自慰出白浆| 九九精品国产亚洲av日韩| 精品中文字幕制服中文| 国产精品污一区二区三区在线观看| 粉嫩的极品女神尤物在线| 热99re久久精品这里都是精品免费| 五级黄高潮片90分钟视频| 久久中国国产Av秘 入口| 中文字幕一区二区区免| 蜜桃一区二区三区视频网址| 免费网站看av片| 国内少妇偷人精品视频免费| 精选二区在线观看视频| 一区二区二区三区亚洲| 国产亚洲精品久久久闺蜜 | av资源在线播放网站| 国产成人亚洲一区二区| 国产av无码专区亚洲av蜜芽| 香蕉视频www.5.在线观看| 日本亚洲一级中文字幕| 精品久久中文字幕系列| 娜娜麻豆国产电影|