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

        ?

        經(jīng)典讀寫進(jìn)程問題的改進(jìn)算法

        2017-07-20 12:11:18李廣軍
        魅力中國(guó) 2016年45期
        關(guān)鍵詞:信號(hào)量同步進(jìn)程

        李廣軍

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

        【關(guān)鍵詞】進(jìn)程; 同步; 互斥; 信號(hào)量

        引言

        利用信號(hào)量機(jī)制來實(shí)現(xiàn)讀者與寫者的同步問題,一直是操作系統(tǒng)中討論一個(gè)的經(jīng)典進(jìn)程同步問題.這類題型變化多、實(shí)例多,又與實(shí)際生活中的問題有著緊密聯(lián)系,本文利用信號(hào)量機(jī)制和wait、signal操作,在讀者-寫者問題傳統(tǒng)傳統(tǒng)解決方案的給出了兩種改進(jìn)解決方案.

        1.讀寫同步問題及傳統(tǒng)解決方案

        1.1 問題內(nèi)容

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

        (1)讀-讀共享,即允許多個(gè)讀者同時(shí)對(duì)文件進(jìn)行讀操作.

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

        (3)寫-寫互斥,即不允許多個(gè)寫者同時(shí)對(duì)文件進(jìn)行寫操作.

        1.2 傳統(tǒng)解決方案

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

        2.讀寫問題改進(jìn)解決方案

        2.1 讀寫同步公平競(jìng)爭(zhēng)解決方案

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

        算法描述:

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

        Readercount:integer:=0;

        Reader(讀者進(jìn)程)

        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(寫者進(jìn)程)

        begin

        repeat

        wait(Wmutex);

        ……

        perform write operation;

        ……

        signal(Wmutex);

        until false;

        end

        結(jié)果分析:該方案已經(jīng)基本滿足題目要求,但讀者的高優(yōu)先級(jí)可能造成后續(xù)的寫者由于被隨后而來的讀者插隊(duì)而長(zhǎng)時(shí)間等待,直到全部讀者進(jìn)程運(yùn)行完畢后,才可以使用文件.所以說上述算法為讀者優(yōu)先方案.

        2.2 寫者優(yōu)先的解決方案

        在原讀者-寫者問題上增加兩點(diǎn)要求(1)僅當(dāng)無寫者時(shí)才允許讀者使用文件;(2)多個(gè)讀寫進(jìn)程等待時(shí)首先考慮喚醒寫者.

        算法描述:

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

        Readercount,writercount:integer:=0,0;

        Reader(讀者進(jìn)程)

        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(寫者進(jìn)程)

        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

        結(jié)果分析:該方案在滿足讀寫同步問題要求的前提下也實(shí)現(xiàn)寫者進(jìn)程優(yōu)先的要求.

        3.結(jié)論

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

        參考文獻(xiàn)

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

        [2]湯子瀛,哲鳳屏.計(jì)算機(jī)操作系統(tǒng)[M].西安:西安電子科技大學(xué)出版社.2012-04

        [3]趙素萍.淺談信號(hào)量的設(shè)置與使用[J].福建:福建電腦 2013-10

        [4]程曉錦."讀者-寫者"問題的Java實(shí)現(xiàn)[J].北京:北京印刷學(xué)院學(xué)報(bào),2010-03

        [5]房永龍,周書民.基于線程的短信實(shí)時(shí)并發(fā)算法[J].上海:計(jì)算機(jī)應(yīng)用與軟件 2016-04

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

        猜你喜歡
        信號(hào)量同步進(jìn)程
        基于STM32的mbedOS信號(hào)量調(diào)度機(jī)制剖析
        債券市場(chǎng)對(duì)外開放的進(jìn)程與展望
        Nucleus PLUS操作系統(tǒng)信號(hào)量機(jī)制的研究與測(cè)試
        素質(zhì)教育理念下藝術(shù)教育改革的思路
        政府職能的轉(zhuǎn)變與中國(guó)經(jīng)濟(jì)結(jié)構(gòu)調(diào)整的同步
        商情(2016年42期)2016-12-23 14:26:58
        公共藝術(shù)與城市設(shè)計(jì)的協(xié)調(diào)與同步
        一種新型雙軌同步焊接的焊接裝置
        社會(huì)進(jìn)程中的新聞學(xué)探尋
        我國(guó)高等教育改革進(jìn)程與反思
        μC/OS- -III對(duì)信號(hào)量的改進(jìn)
        国产亚洲欧美在线| 国产色系视频在线观看| 亚洲成在人网站av天堂| 日韩无码无播放器视频| 熟女系列丰满熟妇av| 一区二区三区日本高清| 九九久久自然熟的香蕉图片| 一本大道东京热无码| 色婷婷丁香综合激情| 三级国产高清在线观看| 亚洲精品久久7777777| 亚洲首页一区任你躁xxxxx| 欧美性受xxxx狂喷水| 亚洲av综合色一区二区| 色综合久久精品亚洲国产| 国产精品日韩高清在线蜜芽| 综合久久青青草免费观看视频| 风韵丰满熟妇啪啪区99杏| 日韩人妻无码精品-专区| 国产成人综合久久久久久| 国产精品国产三级国产不卡 | 在线视频夫妻内射| 一本一道波多野结衣一区| 久久夜色精品国产噜噜噜亚洲av| 国产熟女白浆精品视频二| 扒开腿狂躁女人爽出白浆| 国产目拍亚洲精品一区二区| 国产精品亚洲av国产| 久久一本日韩精品中文字幕屁孩| 色橹橹欧美在线观看视频高清| 国产人澡人澡澡澡人碰视频| 久久久噜噜噜久久熟女| 精品国产乱码久久久久久婷婷| 无码人妻一区二区三区免费n鬼沢| 国产伪娘人妖在线观看| 亚洲成人av在线第一页| 玩弄放荡人妻少妇系列视频| 亚洲五月激情综合图片区| 日韩一级137片内射视频播放 | 成人综合婷婷国产精品久久蜜臀| 亚洲专区路线一路线二天美|