讀者寫者問題-操作系統(tǒng)課程設(shè)計(jì)(總16頁).doc
《讀者寫者問題-操作系統(tǒng)課程設(shè)計(jì)(總16頁).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《讀者寫者問題-操作系統(tǒng)課程設(shè)計(jì)(總16頁).doc(16頁珍藏版)》請(qǐng)?jiān)趨R文網(wǎng)上搜索。
1、某某大學(xué)課程設(shè)計(jì)報(bào)告課程名稱: 操作系統(tǒng)課程設(shè)計(jì)設(shè)計(jì)題目: 讀者寫者問題 系 別: 計(jì)算機(jī)系 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 組 別: 第四組 學(xué)生姓名: 某某某 學(xué) 號(hào): 起止日期: 指導(dǎo)教師: 目 錄1、需求分析11.1 課程設(shè)計(jì)題目11.2課程任務(wù)及要求11.3課程設(shè)計(jì)思想11.4軟硬件運(yùn)行環(huán)境及開發(fā)工具22、 概要設(shè)計(jì)22.1程序流程圖22.2所用原理32.2.1 并發(fā)原理32.2.2 互斥操作原理42.2.3 面向?qū)ο缶幊叹幊淘?2.2.4 鎖機(jī)制原理52.2.5 線程的原理62.2.6 讀者寫者問題的一般應(yīng)用63、 詳細(xì)設(shè)計(jì)64、 調(diào)試與操作說明115、 課程設(shè)計(jì)總結(jié)與體會(huì)126、
2、致謝137、 參考文獻(xiàn)131、需求分析1.1 課程設(shè)計(jì)題目 課程設(shè)計(jì)題目:讀者寫者問題1.2課程任務(wù)及要求編寫程序?qū)崿F(xiàn)讀者寫者算法(讀_寫互斥,讀_讀允許,寫寫互斥)給出解決方案(包括說明設(shè)計(jì)實(shí)現(xiàn)的原理,采用的數(shù)據(jù)結(jié)構(gòu)等)畫出程序的基本結(jié)構(gòu)框圖和流程圖分析說明每一部分程序的的設(shè)計(jì)思路實(shí)現(xiàn)源代碼按期提交完整的程序代碼和可執(zhí)行程序根據(jù)要求完成課程設(shè)計(jì)報(bào)告總結(jié)1.3課程設(shè)計(jì)思想 讀者-寫者問題是一個(gè)經(jīng)典的并發(fā)程序設(shè)計(jì)問題。有兩組并發(fā)進(jìn)程:讀者和寫者,共享文件F,要求:(1) 允許多個(gè)讀者同時(shí)對(duì)文件執(zhí)行讀操作;(2) 只允許一個(gè)寫者對(duì)文件執(zhí)行寫操作;(3) 任何寫者在完成寫操作之前不允許其他讀者或?qū)懻?/p>
3、工作;(4) 寫者在執(zhí)行寫操作前,應(yīng)讓已有的寫者和讀者全部退出。 單純使用信號(hào)量不能解決此問題,必須引入計(jì)數(shù)器readcount對(duì)讀進(jìn)程記數(shù)。 為了有效的解決讀者寫者問題,需要引進(jìn)讀者-寫者鎖,允許多名讀者同時(shí)以只讀的方式存取有鎖保護(hù)的對(duì)象;或一位寫者以寫方式存取有鎖保護(hù)的對(duì)象。當(dāng)一名或多名讀者上鎖后,此時(shí)形成讀鎖,寫者將不能訪問有鎖保護(hù)的對(duì)象;當(dāng)鎖被請(qǐng)求者用于寫操作時(shí),形成寫鎖,其他進(jìn)程的讀寫操作必須等待。1.4軟硬件運(yùn)行環(huán)境及開發(fā)工具本課程設(shè)計(jì)在windows操作系統(tǒng)下,使用java語言完成的。2、 概要設(shè)計(jì)2.1程序流程圖本系統(tǒng)主要有讀者和寫者兩類對(duì)象,所以系統(tǒng)主要針對(duì)的是這兩類對(duì)象的操
4、作。讀者類對(duì)象的流程圖如下:圖2.1 讀者類對(duì)象寫者類對(duì)象的流程圖如下:圖2.2 寫者類對(duì)象2.2所用原理2.2.1 并發(fā)原理進(jìn)程的并發(fā)是指一組進(jìn)程的執(zhí)行在時(shí)間上重疊的,所謂的時(shí)間重疊是指一個(gè)進(jìn)程執(zhí)行第一條指令是在另一個(gè)進(jìn)程執(zhí)行完最后一條指令之前開始的。并發(fā)的實(shí)質(zhì)是處理器在幾個(gè)進(jìn)程之間的多路復(fù)用,并發(fā)是對(duì)有限物理資源強(qiáng)制行使多用戶共享,消除計(jì)算機(jī)部件之間的互等現(xiàn)象,提高系統(tǒng)資源的利用率。并發(fā)進(jìn)程可能是無關(guān)的,也可能是交互的。進(jìn)程的交互必須是有控制的,否則會(huì)出現(xiàn)不正確的計(jì)算結(jié)果。2.2.2 互斥操作原理 互斥是指若干進(jìn)程因互相爭(zhēng)奪獨(dú)占型資源而產(chǎn)生的競(jìng)爭(zhēng)制約關(guān)系。 并發(fā)進(jìn)程中與共享變量有關(guān)的程序段
5、稱為“臨界區(qū)”,共享變量所代表的資源稱為“臨界資源”,臨界區(qū)必須以一種相對(duì)于其他進(jìn)程而言互相排斥的方式執(zhí)行。如果能夠保證一個(gè)進(jìn)程在臨界區(qū)執(zhí)行時(shí),不讓另一個(gè)進(jìn)程進(jìn)入相同的臨界區(qū),即各進(jìn)程對(duì)共享變量的訪問是互斥的,那么,就不會(huì)引發(fā)與時(shí)間有關(guān)的錯(cuò)誤。 而為了正確而有效地使用臨界資源,共享變量的并發(fā)進(jìn)程應(yīng)遵守臨界區(qū)調(diào)度的三個(gè)原則:一次至多有一個(gè)進(jìn)程進(jìn)入臨界區(qū)內(nèi)執(zhí)行;如果已有進(jìn)程在臨界區(qū)中,試圖進(jìn)入臨界區(qū)的其他進(jìn)程應(yīng)等待;進(jìn)入臨界區(qū)內(nèi)進(jìn)程應(yīng)在有限時(shí)間內(nèi)退出,以便讓等待隊(duì)列中的一個(gè)進(jìn)程進(jìn)入??偨Y(jié)起來有三句話:互斥使用,有空讓進(jìn);忙則等待,有限等待;擇一而入,算法可行。2.2.3 面向?qū)ο缶幊叹幊淘砻嫦驅(qū)?/p>
6、象是一種新興的程序設(shè)計(jì)方法,或者說它是一種新的程序設(shè)計(jì)范型,其基本思想是使用對(duì)象,類,繼承,封裝,消息等基本概念來進(jìn)行程序設(shè)計(jì)。它是從現(xiàn)實(shí)世界中客觀存在的事物(即對(duì)象)出發(fā)來構(gòu)造軟件系統(tǒng),并在系統(tǒng)構(gòu)造中盡可能運(yùn)用人類的自然思維方式,強(qiáng)調(diào)直接以問題域(現(xiàn)實(shí)世界)中的事物為中心來思考問題,認(rèn)識(shí)問題,并根據(jù)這些事物的本質(zhì)特點(diǎn),把他們抽象地表示為系統(tǒng)中的對(duì)象,作為系統(tǒng)的基本構(gòu)成單位(而不是用一些與現(xiàn)實(shí)世界中的事物相關(guān)比較遠(yuǎn),并且沒有對(duì)應(yīng)關(guān)系的其他概念來構(gòu)造系統(tǒng))。這可以使系統(tǒng)直接地映射問題域,保持問題域中事物及其相互關(guān)系的本來面貌。本課程設(shè)計(jì)中涉及了兩個(gè)對(duì)象,因此用面向?qū)ο蟮恼Z言來編程是適合的。我們這
7、次用到了Java語言。2.2.4 鎖機(jī)制原理 為了解決讀者和寫者之間的同步互斥問題,在本課程設(shè)計(jì)中要用到Java中的鎖機(jī)制,這樣會(huì)給編程帶來很大的方便。 多線程同步的實(shí)現(xiàn)最終依賴鎖機(jī)制。我們可以想象某一共享資源是一間屋子,每個(gè)人都是一個(gè)線程。當(dāng)A希望進(jìn)入房間時(shí),他必須獲得門鎖,一旦A獲得門鎖,他進(jìn)去后就立刻將門鎖上,于是B,C,D.就不得不在門外等待,直到A釋放鎖出來后,B,C,D.中的某一人搶到了該鎖(具體搶法依賴于JVM的實(shí)現(xiàn),可以先到先得,也可以隨機(jī)挑選),然后進(jìn)屋又將門鎖上。這樣,任一時(shí)刻最多有一人在屋內(nèi)(使用共享資源)。 Java語言規(guī)范內(nèi)置了對(duì)多線程的支持。對(duì)于Java程序來說,每
- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
20 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 讀者 問題 操作系統(tǒng) 課程設(shè)計(jì) 16