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

經典讀寫進程問題的改進算法

2017-07-20 12:11:18李廣軍
魅力中國 2016年45期
關鍵詞:同步進程

李廣軍

【摘要】讀者-寫者問題是操作系統中經典進程同步問題之一,本文在闡述傳統解決讀者寫者問題方案的基礎上,給出了改進解決方案和算法。

【關鍵詞】進程; 同步; 互斥; 信號量

引言

利用信號量機制來實現讀者與寫者的同步問題,一直是操作系統中討論一個的經典進程同步問題.這類題型變化多、實例多,又與實際生活中的問題有著緊密聯系,本文利用信號量機制和wait、signal操作,在讀者-寫者問題傳統傳統解決方案的給出了兩種改進解決方案.

1.讀寫同步問題及傳統解決方案

1.1 問題內容

某共享文件,多個讀者(只讀文件進程)和多個寫者(只寫文件進程)在某個時間段內對該文件資源異步進行讀寫.為避免文件數據出現丟失修改和讀臟數據的情況,對讀者寫者要求如下:

(1)讀-讀共享,即允許多個讀者同時對文件進行讀操作.

(2)讀-寫互斥,即不允許讀者和寫者同時對文件分別進行讀寫操作.

(3)寫-寫互斥,即不允許多個寫者同時對文件進行寫操作.

1.2 傳統解決方案

解決方案:為實現讀者與寫者進程間在讀寫和寫寫互斥設置一個互斥信號量Wmutex.另外,再設置一個整型變量Readercount表示正在讀的進程數目.由于只要有一個讀進程在讀,便不允許寫進程去寫.因此,僅當Readercount =0,表示尚無讀進程在讀時,讀進程才需要執行Wait(Wmutex)操作.若Wait(Wmutex)操作成功,讀進程便可去讀,相應地做Readercount+1操作.同理,僅當讀進程在執行了Readercount-1操作后其值為0時,才須執行Signal(Wmutex)操作,以便讓寫進程操作.又因為Readercount是一個可被多個讀進程訪問的臨界資源,因此,也應該為它設置一個互斥信號量Rmutex.

2.讀寫問題改進解決方案

2.1 讀寫同步公平競爭解決方案

解決方案:為實現讀者與寫者進程間在讀寫和寫寫互斥設置一個互斥信號量Wmutex.另外,再設置一個整型變量Readercount表示正在讀的進程數目.由于只要有一個讀進程在讀,便不允許寫進程去寫.因此,僅當Readercount =0,表示尚無讀進程在讀時,讀進程才需要執行Wait(Wmutex)操作.若Wait(Wmutex)操作成功,讀進程便可去讀,相應地做Readercount+1操作.同理,僅當讀進程在執行了Readercount-1操作后其值為0時,才須執行Signal(Wmutex)操作,以便讓寫進程操作.又因為Readercount是一個可被多個讀進程訪問的臨界資源,因此,也應該為它設置一個互斥信號量Rmutex.

算法描述:

Var Rmutex,Wmutex:semaphore:=1,1;

Readercount:integer:=0;

Reader(讀者進程)

begin

repeat

wait(Rmutex);

if Readercount=0 then wait(Wmutex);

Readercount:= Readercount+1;

signal(Rmutex);

……

perform read operation;

……

wait(Rmutex);

Readercount:= Readercount-1;

if Readercount=0 then signal(Wmutex);

signal(Rmutex);

until false;

end

writer(寫者進程)

begin

repeat

wait(Wmutex);

……

perform write operation;

……

signal(Wmutex);

until false;

end

結果分析:該方案已經基本滿足題目要求,但讀者的高優先級可能造成后續的寫者由于被隨后而來的讀者插隊而長時間等待,直到全部讀者進程運行完畢后,才可以使用文件.所以說上述算法為讀者優先方案.

2.2 寫者優先的解決方案

在原讀者-寫者問題上增加兩點要求(1)僅當無寫者時才允許讀者使用文件;(2)多個讀寫進程等待時首先考慮喚醒寫者.

算法描述:

Var Rmutex,Wmutex, Wcmutex,Idmutex ,Enmutex:semaphore:=1,1,1,1,1;

Readercount,writercount:integer:=0,0;

Reader(讀者進程)

begin

repeat

wait(Enmutex);

wait(Idmutex);

wait(Rmutex);

if Readercount=0 then wait(Wmutex);

Readercount:= Readercount+1;

signal(Rmutex);

signal(Idmutex);

signal(Enmutex);

……

perform read operation;

……

wait(Rmutex);

Readercount:= Readercount-1;

if Readercount=0 then signal(Wmutex);

signal(Rmutex);

until false;

end

writer(寫者進程)

begin

repeat

wait(Wcmutex)

if writercount=0 then wait(Idmutex);

writercount:=writercount+1;

signal(Wcmutex);

wait(Wmutex);

……

perform write operation;

……

signal(Wmutex);

wait(Wcmutex)

writercount:=writercount-1;

if writercount=0 then signal(Idmutex);

signal(Wcmutex);

until false;

end

結果分析:該方案在滿足讀寫同步問題要求的前提下也實現寫者進程優先的要求.

3.結論

讀寫同步問題是進程同步問題中的經典實例,若對它問題能熟練掌握的話,那么對于常見一類進程多次訪問,而不同類的進程必須互斥訪問資源的控制這類問題也就不難解決了.

參考文獻

[1]帖軍,陸際光.同步互斥機制中的讀者-寫者模型[J].武漢:中南民族大學學報.2013-09

[2]湯子瀛,哲鳳屏.計算機操作系統[M].西安:西安電子科技大學出版社.2012-04

[3]趙素萍.淺談信號量的設置與使用[J].福建:福建電腦 2013-10

[4]程曉錦."讀者-寫者"問題的Java實現[J].北京:北京印刷學院學報,2010-03

[5]房永龍,周書民.基于線程的短信實時并發算法[J].上海:計算機應用與軟件 2016-04

[6]夏春梅.用記錄型信號量解決讀者—寫者問題[J].安微:機械工業出版社,2012-06

猜你喜歡
同步進程
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
素質教育理念下藝術教育改革的思路
政府職能的轉變與中國經濟結構調整的同步
商情(2016年42期)2016-12-23 14:26:58
公共藝術與城市設計的協調與同步
有源應答器DBPL解碼算法研究及FPGA實現
一種新型雙軌同步焊接的焊接裝置
時間統一系統秒同步故障遠程預警系統設計
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: 国产成人精品高清不卡在线| 久久精品电影| 亚洲AⅤ无码国产精品| 91视频精品| 国产成人精品男人的天堂| 51国产偷自视频区视频手机观看| а∨天堂一区中文字幕| 国产97视频在线观看| 婷婷亚洲视频| 亚洲二区视频| 狠狠操夜夜爽| 欧美在线视频不卡| 99久视频| 操国产美女| 国产天天射| 亚洲va视频| 青青操视频在线| 又黄又湿又爽的视频| 亚洲视频欧美不卡| 天堂成人在线| 日韩a在线观看免费观看| 亚洲婷婷丁香| 国产成人免费| 色吊丝av中文字幕| 国产亚洲精品自在线| 伊人久久久大香线蕉综合直播| 免费看黄片一区二区三区| 国产精品网曝门免费视频| 99国产在线视频| 在线亚洲天堂| 成人久久精品一区二区三区| 男人天堂伊人网| 欧美一级在线看| 一本大道无码日韩精品影视| 国产91麻豆视频| 国产一区二区影院| 亚洲国语自产一区第二页| 粗大猛烈进出高潮视频无码| 色婷婷啪啪| 国产第一页亚洲| 精品国产免费第一区二区三区日韩| 日本一区高清| 欧美亚洲激情| 国产中文一区a级毛片视频| 91九色国产在线| 国产综合欧美| 久久香蕉国产线看观| 一级毛片在线播放免费| 91精品国产自产在线观看| 欧美在线黄| 国产无码在线调教| 亚洲综合极品香蕉久久网| 亚洲精品国产成人7777| 久久不卡国产精品无码| 熟妇人妻无乱码中文字幕真矢织江 | 99这里精品| 全部毛片免费看| 亚洲人成网站18禁动漫无码| 欧美午夜一区| 伊人精品视频免费在线| 久久婷婷综合色一区二区| 国产精品视屏| 在线亚洲小视频| 中文字幕精品一区二区三区视频| 青青操视频在线| 久久国产拍爱| 亚洲成av人无码综合在线观看| 91av成人日本不卡三区| 国产精品一老牛影视频| 香蕉网久久| 国产精品思思热在线| 精品人妻系列无码专区久久| 91高清在线视频| 亚洲日韩国产精品无码专区| 亚洲第一区在线| 亚洲综合精品第一页| 午夜日本永久乱码免费播放片| 色老二精品视频在线观看| 国产成人91精品免费网址在线| 国产综合无码一区二区色蜜蜜| 国产精品私拍在线爆乳| 精品久久香蕉国产线看观看gif|