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僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: 最近最新中文字幕免费的一页| 国产女人水多毛片18| 国产高潮视频在线观看| 国产sm重味一区二区三区| 午夜视频日本| 国产乱码精品一区二区三区中文 | 国产一级毛片网站| 国产精品男人的天堂| 91福利在线看| 国产精品播放| 久久久久人妻一区精品色奶水 | 亚洲综合极品香蕉久久网| 日本精品一在线观看视频| 国产99在线| 国内毛片视频| 日本免费福利视频| 亚洲另类第一页| av在线人妻熟妇| 日本国产在线| 精品无码专区亚洲| 国产91无毒不卡在线观看| 91视频99| 久久五月天综合| 青青青国产免费线在| 久久窝窝国产精品午夜看片| 亚洲国产理论片在线播放| 亚洲精品在线91| 亚洲中文字幕国产av| 久久久精品无码一二三区| 亚洲综合色婷婷| 亚洲视屏在线观看| 国产福利大秀91| 欧美不卡视频在线观看| 亚洲激情99| 97成人在线视频| 又黄又湿又爽的视频| av一区二区三区高清久久| 欧美色综合网站| 久久精品aⅴ无码中文字幕| 精品一区二区三区波多野结衣| 亚洲永久精品ww47国产| 熟女视频91| 欧美色丁香| 91成人在线观看| 青青青国产视频手机| 国禁国产you女视频网站| 国产午夜无码专区喷水| 久久婷婷综合色一区二区| 在线观看免费AV网| 亚洲人成网站在线观看播放不卡| 操国产美女| 六月婷婷精品视频在线观看| 在线日韩一区二区| 久久这里只精品国产99热8| 欧美性天天| 色视频国产| 亚洲成人福利网站| 国产黄色爱视频| 91亚洲精品国产自在现线| 中国毛片网| 国产一区二区三区精品久久呦| 91小视频在线观看免费版高清| 免费国产高清精品一区在线| 中文字幕在线日本| 国产激爽大片高清在线观看| 一本综合久久| 亚洲天堂网在线观看视频| 国产激情在线视频| 欧美日韩一区二区在线播放| 免费高清自慰一区二区三区| 小13箩利洗澡无码视频免费网站| 亚洲精品在线影院| 国产福利一区在线| a级毛片免费网站| 扒开粉嫩的小缝隙喷白浆视频| 91麻豆久久久| 亚洲av综合网| 国产三级国产精品国产普男人| 黄片在线永久| 久久精品人妻中文视频| 97精品国产高清久久久久蜜芽| 玖玖精品视频在线观看|