• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      進(jìn)程間通信之“讀者—寫者”問題的分析與實(shí)現(xiàn)

      2012-04-29 11:52:48郝亞洲李文敏
      關(guān)鍵詞:間通信線程隊(duì)列

      郝亞洲 李文敏

      計(jì)算機(jī)操作系統(tǒng)原理課程是計(jì)算機(jī)科學(xué)與技術(shù)及相關(guān)專業(yè)的核心課程,歷來為計(jì)算機(jī)及信息學(xué)科所重視。操作系統(tǒng)原理課程中重要的一環(huán)就是進(jìn)程間的通信問題。而“讀者-寫者”問題更是進(jìn)程間通信的經(jīng)典,學(xué)好它不僅可使學(xué)生鞏固理論學(xué)習(xí)的概念、原理、設(shè)計(jì)及算法,同時(shí)也可培養(yǎng)軟件開發(fā)所應(yīng)有的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和軟件工程素養(yǎng)。

      操作系統(tǒng);文件系統(tǒng);功能調(diào)用

      1.問題的提出及論文的目的

      在Windows7環(huán)境下,創(chuàng)建一個(gè)控制臺(tái)進(jìn)程,此進(jìn)程包含n個(gè)線程。用這n個(gè)線程來表示n個(gè)讀者或?qū)懻?。每個(gè)線程按相應(yīng)測(cè)試數(shù)據(jù)文件的要求進(jìn)行讀寫操作。用信號(hào)量機(jī)制分別實(shí)現(xiàn)讀者優(yōu)先和寫者優(yōu)先問題。

      通過分析并實(shí)現(xiàn)經(jīng)典的“讀者-寫者”問題,鞏固對(duì)線程及其同步機(jī)制的學(xué)習(xí)效果,加深對(duì)相關(guān)基本概念的理解,并讓讀者了解如何將基本原理和實(shí)際設(shè)計(jì)有機(jī)的結(jié)合。

      2.設(shè)計(jì)思路

      可以將所有讀者和所有寫者分別存于一個(gè)讀者等待隊(duì)列和一個(gè)寫者等待隊(duì)列中,每當(dāng)讀允許時(shí),就從讀者隊(duì)列中釋放一個(gè)或多個(gè)讀者線程進(jìn)行讀操作;每當(dāng)寫允許時(shí),就從寫者隊(duì)列中釋放一個(gè)寫者線程進(jìn)行寫操作。

      讀者優(yōu)先。讀者優(yōu)先指的是除非有寫者在寫文件,否則讀者不需要等待。所以可以用一個(gè)整數(shù)變量Read count記錄當(dāng)前的讀者數(shù)目,用于確定是否需要釋放正在等待的寫者進(jìn)程(當(dāng)Read count=0時(shí),表明所有的讀者讀完,需要釋放寫者等待隊(duì)列中的一個(gè)寫者)。每當(dāng)一個(gè)讀者開始讀文件時(shí),必須修改Read count變量。因此需要一個(gè)互斥對(duì)象mutex來實(shí)現(xiàn)對(duì)全局變量Read count修改時(shí)的互斥。

      另外,為了實(shí)現(xiàn)讀-寫互斥,需要增加一個(gè)臨界區(qū)對(duì)象Write。當(dāng)寫者發(fā)出寫請(qǐng)求時(shí),必須申請(qǐng)臨界區(qū)對(duì)象的所有權(quán)。通過這種方法,可以實(shí)現(xiàn)讀-寫互斥,當(dāng)Read count=1時(shí)(即第一個(gè)讀者到來時(shí)),讀者線程也必須申請(qǐng)臨界區(qū)對(duì)象的所有權(quán)。

      當(dāng)讀者擁有臨界區(qū)的所有權(quán)時(shí),寫者阻塞在臨界區(qū)對(duì)象Write上。當(dāng)寫者擁有臨界區(qū)的所有權(quán)時(shí),第一個(gè)讀者判斷完”Read count==1”后阻塞在Write上,其余的讀者由于等待對(duì)Read count的判斷,阻塞在mutex上。

      寫者優(yōu)先。寫者優(yōu)先與讀者優(yōu)先相類似。不同之處在于一旦一個(gè)寫者到來,它應(yīng)該盡快對(duì)文件進(jìn)行寫操作,如果有一個(gè)寫者在等待,則新到來的讀者不允許進(jìn)行讀操作。為此應(yīng)當(dāng)填加一個(gè)整形變量Write count,用于記錄正在等待的寫者的數(shù)目,當(dāng)Write count=0時(shí),才可以釋放等待的讀者線程隊(duì)列。

      為了對(duì)全局變量Write count實(shí)現(xiàn)互斥,必須增加一個(gè)互斥對(duì)象mutex3。

      為了實(shí)現(xiàn)寫者優(yōu)先,應(yīng)當(dāng)填加一個(gè)臨界區(qū)對(duì)象read,當(dāng)有寫者在寫文件或等待時(shí),讀者必須阻塞在read上。

      讀者線程除了要對(duì)全局變量Read count實(shí)現(xiàn)操作上的互斥外,還必須有一個(gè)互斥對(duì)象對(duì)阻塞read這一過程實(shí)現(xiàn)互斥。這兩個(gè)互斥對(duì)象分別命名為mutex1,mutex2。

      以上內(nèi)容很清楚的講述了進(jìn)程間通信之經(jīng)典問題—“讀者-寫著”問題的本質(zhì),并且提出了實(shí)現(xiàn)的方法,可以幫助讀者學(xué)好操作系統(tǒng)這門核心的計(jì)算機(jī)專業(yè)課程。

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

      [2]特南鮑姆.現(xiàn)代操作系統(tǒng)[M].北京:機(jī)械工業(yè)出版社,2002.01

      [3]William Stalling.操作系統(tǒng):精髓與設(shè)計(jì)原理[M].北京:電子工業(yè)出版社,2006.03

      猜你喜歡
      間通信線程隊(duì)列
      細(xì)胞間通信預(yù)測(cè)方法研究進(jìn)展
      隊(duì)列里的小秘密
      基于多隊(duì)列切換的SDN擁塞控制*
      軟件(2020年3期)2020-04-20 00:58:44
      綜合航電分區(qū)間通信元模型設(shè)計(jì)研究
      在隊(duì)列里
      豐田加速駛?cè)胱詣?dòng)駕駛隊(duì)列
      淺談linux多線程協(xié)作
      基于核間寄存器的多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信研究
      Linux線程實(shí)現(xiàn)技術(shù)研究
      一種適應(yīng)多核處理器核間通信機(jī)制的設(shè)計(jì)
      泾阳县| 吴忠市| 西林县| 颍上县| 满城县| 庆城县| 龙口市| 工布江达县| 崇仁县| 颍上县| 综艺| 外汇| 洛南县| 天祝| 利川市| 锦屏县| 昌吉市| 肃北| 桂阳县| 称多县| 伽师县| 池州市| 霞浦县| 阿坝县| 榆中县| 和硕县| 凤山县| 客服| 怀集县| 旬邑县| 连山| 普陀区| 保德县| 六枝特区| 邯郸县| 灌南县| 兰坪| 屏边| 丘北县| 台中县| 浦东新区|