第三章-3-1操作系統(tǒng)_第1頁(yè)
第三章-3-1操作系統(tǒng)_第2頁(yè)
第三章-3-1操作系統(tǒng)_第3頁(yè)
第三章-3-1操作系統(tǒng)_第4頁(yè)
第三章-3-1操作系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

DOSWindows9XWindowsNTLinuxUNIXWindowsCE第三章 操作系統(tǒng)3.1操作系統(tǒng)導(dǎo)論3.1.1什么是操作系統(tǒng)所謂操作系統(tǒng)就是能有效地管理計(jì)算機(jī)系統(tǒng)中的各種軟、硬件資源,合理地組織計(jì)算機(jī)的工作流程,為用戶創(chuàng)造良好工作環(huán)境的系統(tǒng)軟件。設(shè)置操作系統(tǒng)的目的是:1.有效地管理計(jì)算機(jī)的所有軟、硬件資源,使計(jì)算機(jī)能夠高效率地工作;2.方便用戶使用。操作系統(tǒng)是運(yùn)行在硬件上的最基本的系統(tǒng)軟件。操作系統(tǒng)的形成這工作方式有兩個(gè)主要缺點(diǎn):

(1)計(jì)算機(jī)的全部資源(CPU、內(nèi)存、外部設(shè)備等)由一個(gè)用戶獨(dú)占。(2)人工操作、CPU和輸入輸出設(shè)備的工作串行進(jìn)行。整個(gè)操作過(guò)程非常繁瑣,計(jì)算機(jī)工作效率很低。(一)手工操作方式鑿有高級(jí)語(yǔ)言編寫的紙帶3.1.2操作系統(tǒng)的分類

1、批處理操作系統(tǒng)2、分時(shí)系統(tǒng)3、實(shí)時(shí)系統(tǒng)單道批處理系統(tǒng)多道批處理系統(tǒng)批處理操作系統(tǒng)

把作業(yè)控制命令穿插在用戶的源程序中,通過(guò)它們把上機(jī)操作步驟和過(guò)程信息傳遞給系統(tǒng)。用戶的作業(yè)成批輸入到計(jì)算機(jī)系統(tǒng)中,由監(jiān)督程序(實(shí)際就是操作系統(tǒng)的前身)逐個(gè)調(diào)入內(nèi)存處理。工作特點(diǎn):用戶一次可以提交多個(gè)作業(yè),但系統(tǒng)一次只處理一個(gè)作業(yè)。處理完一個(gè)作業(yè)后,自動(dòng)調(diào)入下一個(gè)作業(yè)進(jìn)行處理。減少人工干預(yù),使計(jì)算機(jī)自動(dòng)進(jìn)行輸入、編譯和運(yùn)行程序。比如,F(xiàn)ortran源程序的編譯連接過(guò)程可用批處理來(lái)進(jìn)行。單道批處理系統(tǒng)

標(biāo)識(shí)一個(gè)作業(yè)開始調(diào)用裝配程序調(diào)FORTORAN編譯程序運(yùn)行某個(gè)作業(yè)標(biāo)識(shí)某個(gè)作業(yè)的結(jié)束功能

JOBLOADFORTORANRUNEND命令一些典型的作業(yè)控制命令外設(shè)工作(CPU等待)CPU工作外設(shè)工作(CPU等待)1ms2ms輸入一個(gè)數(shù)據(jù)處理數(shù)據(jù)輸出數(shù)據(jù)數(shù)據(jù)完結(jié)束YN2ms5ms輸入CPU輸出串行工作方式運(yùn)行中的作業(yè)進(jìn)行輸入輸出操作時(shí),處理機(jī)處于空閑等待狀態(tài),而輸入輸出操作速度很慢。處理機(jī)利用率很低。中斷機(jī)構(gòu)和通道技術(shù)的出現(xiàn),使得CPU與外設(shè)并行工作成為可能。控制信號(hào)數(shù)據(jù)設(shè)備1設(shè)備2設(shè)備3設(shè)備4設(shè)備8設(shè)備7設(shè)備5設(shè)備6通道1通道4通道2通道3CPU主存通道:用來(lái)控制外部設(shè)備與主存儲(chǔ)器之間進(jìn)行信息交換的部件CPU向通道發(fā)起動(dòng)通道的命令。通道通知設(shè)備與主存?zhèn)鬟f數(shù)據(jù),此時(shí)CPU也在進(jìn)行其它計(jì)算工作(并行工作)。當(dāng)設(shè)備與主存?zhèn)鬟f數(shù)據(jù)結(jié)束后,通道向CPU發(fā)信號(hào)(中斷),CPU停下計(jì)算工作,執(zhí)行中斷程序(中斷處理程序比較簡(jiǎn)單)。

中斷:中斷是外界(如輸入、輸出設(shè)備,通道等)向主機(jī)報(bào)告信息的一種通信方式,是CPU對(duì)系統(tǒng)中隨機(jī)事件的響應(yīng)。1ms2ms2ms輸入CPU輸出使用中斷和通道技術(shù)后,實(shí)現(xiàn)外設(shè)與CPU并行工作示意圖data1data2數(shù)據(jù)存儲(chǔ)區(qū)data1data2data3data1data2data3data4data2data3data4data5data1data3處理上一個(gè)數(shù)據(jù)data1data4繼續(xù)處理上一個(gè)數(shù)據(jù)data1data5data2當(dāng)CPU處理完上一個(gè)數(shù)據(jù)后,一方面啟動(dòng)輸出設(shè)備輸出結(jié)果,同時(shí)又啟動(dòng)輸入設(shè)備進(jìn)行操作,輸入下一次要處理的數(shù)據(jù),并且CPU也同時(shí)處理已輸入并存儲(chǔ)在計(jì)算機(jī)緩沖區(qū)中的數(shù)據(jù)。可以看出,外設(shè)與CPU的并行工作只需2ms。

上述系統(tǒng)由于一次只執(zhí)行一個(gè)作業(yè),所以系統(tǒng)內(nèi)包含的各種資源不能被充分利用起來(lái),解決的辦法是讓多道程序同時(shí)進(jìn)入內(nèi)存中—多道批處理系統(tǒng)。多道批處理系統(tǒng)示意圖打印機(jī)………作業(yè)2作業(yè)1OS………作業(yè)3作業(yè)2作業(yè)1………結(jié)果3結(jié)果2結(jié)果1用戶作業(yè)CPU用戶提交圖-21后備作業(yè)磁盤輸入井磁盤輸出井處理結(jié)果成批3.多道批處理系統(tǒng)和分時(shí)系統(tǒng)(如圖-21,圖-22)

多道批處理:

把內(nèi)存分成若干部分,把屬于同一批的若干個(gè)作業(yè)調(diào)入內(nèi)存,存放在內(nèi)存的不同部分。當(dāng)一個(gè)作業(yè)由于等待輸入輸出操作而使處理機(jī)出現(xiàn)空閑時(shí),系統(tǒng)自動(dòng)進(jìn)行切換,處理下一個(gè)作業(yè)。如果內(nèi)存空間允許,可大大提高CPU的利用率?!鳂I(yè)2作業(yè)1OS……作業(yè)3作業(yè)2作業(yè)1……結(jié)果3結(jié)果2結(jié)果1用戶作業(yè)CPU打印機(jī)用戶多道批處理系統(tǒng)示意圖提交系統(tǒng)后備作業(yè)磁盤輸入磁盤輸出處理結(jié)果成批批處理系統(tǒng)的作業(yè)以批量方式進(jìn)行,用戶不能進(jìn)行任何干預(yù)。輸入計(jì)算???????計(jì)算計(jì)算打印??????計(jì)算打印A(優(yōu)先級(jí)高)CA1A2B1B2B3C1C2多道程序并行運(yùn)行示意圖B1

C1打印OSB2OSB3打印

A2CPU

OSCPUC2CPUCPUCPUCPUCPUBA1輸入程序A的優(yōu)先級(jí)最高,C是最低,采用剝奪式的優(yōu)先調(diào)度算法。A程序B程序C程序操作系統(tǒng)A輸入請(qǐng)求B打印請(qǐng)求A輸入結(jié)束B打印結(jié)束A結(jié)束B結(jié)束T0T1T2T3T4T5T6本圖主要說(shuō)明多道程序平行運(yùn)行如何進(jìn)行CPU管理,因?yàn)锳、B、C、OS都想搶占CPU。通過(guò)分析多道程序設(shè)計(jì)工作原理來(lái)引出操作系統(tǒng)的功能:多道程序設(shè)計(jì)的主要思想是允許多個(gè)程序進(jìn)入內(nèi)存中,共享處理機(jī)和其他外部資源,同時(shí)處于運(yùn)行狀態(tài)。脫機(jī)技術(shù)脫機(jī)技術(shù)的實(shí)質(zhì):衛(wèi)星機(jī)與主機(jī)并行工作,使主機(jī)擺脫了慢速的輸入、輸出操作,即用快速的輸入、輸出設(shè)備(磁帶)代替低速設(shè)備,減少了輸入、輸出操作對(duì)系統(tǒng)的影響,緩解了外設(shè)與主機(jī)運(yùn)行速度不匹配的矛盾。

輸入設(shè)備輸出設(shè)備衛(wèi)星機(jī)主機(jī)輸入帶輸出帶在多道批處理系統(tǒng),用戶無(wú)法干預(yù)自己程序的運(yùn)行,缺乏參與感,于是分時(shí)系統(tǒng)應(yīng)運(yùn)而生。CPU終端1終端2終端3終端4分時(shí)系統(tǒng)工作示意圖終端1分時(shí)系統(tǒng)的特點(diǎn)同時(shí)性:

多個(gè)用戶終端通過(guò)多路卡連接到一臺(tái)主機(jī)。獨(dú)立性:

每個(gè)用戶通過(guò)一臺(tái)終端使用系統(tǒng),彼此獨(dú)立操作。及時(shí)性:終端用戶的請(qǐng)求很快可獲得響應(yīng)。交互性:用戶可通過(guò)鍵盤輸入命令。實(shí)時(shí)系統(tǒng)1、實(shí)時(shí)過(guò)程控制系統(tǒng)2、實(shí)時(shí)信息處理系統(tǒng)多道程序設(shè)計(jì)提高了計(jì)算機(jī)資源的利用率。但是,隨之也帶來(lái)一些問(wèn)題:例如:多道程序同時(shí)運(yùn)行,處理機(jī)如何調(diào)度?多道程序同時(shí)放在內(nèi)存中,內(nèi)存如何分配管理?多道程序爭(zhēng)奪I/O設(shè)備,I/O設(shè)備如何分配?多道程序共享系統(tǒng)資源,如何有效地管理這些資源,使得計(jì)算機(jī)能夠高效率的工作,這種重要的管理任務(wù)就是由操作系統(tǒng)來(lái)?yè)?dān)當(dāng),那么操作系統(tǒng)的功能是什么?3.1.3操作系統(tǒng)的功能1、處理機(jī)管理2、存儲(chǔ)管理3、設(shè)備管理4、文件管理1.處理機(jī)管理對(duì)處理機(jī)的分配、調(diào)度實(shí)施最有效的管理,以最大限度地提高處理機(jī)的處理能力。2.存儲(chǔ)器管理為每個(gè)進(jìn)程分配內(nèi)存。當(dāng)進(jìn)程被撤銷時(shí)回收分配出去的內(nèi)存。3.設(shè)備管理計(jì)算機(jī)系統(tǒng)的輸入、輸出設(shè)備繁多。設(shè)備管理的主要任務(wù)是:根據(jù)一定的的分配原則對(duì)設(shè)備進(jìn)行分配、調(diào)度為用戶使用I/O設(shè)備提供方便、易用、高效的操作界面。4.文件管理計(jì)算機(jī)中的所有信息(可執(zhí)行程序、文檔、數(shù)據(jù)等)都是以文件的形式保存在外部存儲(chǔ)介質(zhì)上。操作系統(tǒng)提供一套高效、方便、易用的信息管理機(jī)制,稱之為文件系統(tǒng)。其主要任務(wù)是:數(shù)據(jù)存儲(chǔ)空間的分配、回收,文件的讀寫、查找為用戶提供方便、易用、高效的服務(wù)接口,如文件的打開、關(guān)閉、讀寫以及文件的刪除等。。3.1.4操作系統(tǒng)的特征1、并發(fā)性2、共享性(1)互斥共享(2)同時(shí)訪問(wèn)3、虛擬2、共享性計(jì)算機(jī)系統(tǒng)中的硬件資源和軟件資源為各用戶所共同使用。(1)互斥共享(2)同時(shí)訪問(wèn)1、并發(fā)性再多任務(wù)操作系統(tǒng)中,“并發(fā)”是指宏觀上在一段時(shí)間內(nèi)多個(gè)進(jìn)程“同時(shí)”運(yùn)行。3、虛擬性把一個(gè)物理實(shí)體,通過(guò)適當(dāng)方法,變成為若干個(gè)邏輯上的對(duì)應(yīng)物。物理實(shí)體是實(shí)際存在的,而邏輯實(shí)體是“虛擬”的,是人的一種看法和感覺。3.2典型操作系統(tǒng)簡(jiǎn)介DOSWindows3.x,Windows95,Windows98,Windows2000,WindowsxpUNIX:IBM----AIXSUN---SunOP

HP-----HP-UXCOMPAQ---digetalunix

SCO----UNIXWARE\OpenServerLINUX:免費(fèi)的類UNIX的操作系統(tǒng),公開源代碼,內(nèi)核小,硬件要求低,穩(wěn)定可靠。程序A計(jì)算

輸出

輸入

輸出

······程序B單道作業(yè)環(huán)境中程序順序執(zhí)行示意圖1、進(jìn)程概念的引入輸入計(jì)算

3.3進(jìn)程與處理機(jī)管理3.3.1進(jìn)程的概念及定義輸入計(jì)算???????計(jì)算計(jì)算打印??????計(jì)算打印A(優(yōu)先級(jí)高)CA1A2B1B2B3C1C2多道程序并行運(yùn)行示意圖A1輸入B1

C1打印OSB2OSB3打印

A2CPU

OSCPUC2CPUCPUCPUCPUCPUB

進(jìn)程是一種活動(dòng),它由一個(gè)動(dòng)作系列組成,每個(gè)動(dòng)作是在某個(gè)數(shù)據(jù)集上執(zhí)行一段程序,整個(gè)活動(dòng)的結(jié)果是提供一種系統(tǒng)或用戶功能。調(diào)C調(diào)CBAC3、進(jìn)程與程序的區(qū)別(1)進(jìn)程是動(dòng)態(tài)概念,程序是靜止概念。(2)進(jìn)程的存在是暫時(shí)的,程序的存在是永久的。(3)一個(gè)程序?qū)?yīng)多個(gè)進(jìn)程,而一個(gè)進(jìn)程僅對(duì)應(yīng)一個(gè)程序。2、進(jìn)程的定義(4)進(jìn)程在結(jié)構(gòu)上是由程序、數(shù)據(jù)集、進(jìn)程控制塊(PCB)三部分組成的。PCB程序數(shù)據(jù)(4)異步性4、進(jìn)程的特征(1)動(dòng)態(tài)性程序運(yùn)行時(shí),始終處于停停走走的狀態(tài)。(2)并發(fā)性時(shí)間上重疊;內(nèi)存中的程序交替占用CPU(3)獨(dú)立性進(jìn)程一個(gè)一個(gè)占用CPU進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn)。

1、進(jìn)程的狀態(tài)及其變化就緒阻塞運(yùn)行等待事件事件發(fā)生時(shí)間片完進(jìn)程調(diào)度3.3.2進(jìn)程狀態(tài)及進(jìn)程控制塊

2、進(jìn)程控制塊PCB程序數(shù)據(jù)進(jìn)程名進(jìn)程起始地址現(xiàn)行狀態(tài)CPU狀態(tài)保護(hù)區(qū)進(jìn)程專用資源信息………

3、進(jìn)程控制塊(PCB)的組織形式就緒隊(duì)列首地址阻塞隊(duì)列首地址PCB1PCB2PCB3PCB4PCB5PCB6

1、進(jìn)程控制(管理)任務(wù)(1)

進(jìn)程的建立(2)

進(jìn)程的撤消(3)

進(jìn)程的阻塞(4)

進(jìn)程的喚醒3.3.3進(jìn)程控制2、進(jìn)程控制原語(yǔ)(1)創(chuàng)建原語(yǔ)(2)掛起(阻塞)原語(yǔ)(3)喚醒原語(yǔ)(4)撤消原語(yǔ)3.3.4進(jìn)程調(diào)度

1、進(jìn)程調(diào)度任務(wù)2、進(jìn)程調(diào)度方式(1)

剝奪方式(2)非剝奪方式

3、調(diào)度算法

(1)優(yōu)先級(jí)調(diào)度策略

A、靜態(tài)優(yōu)先數(shù)法B、動(dòng)態(tài)優(yōu)先數(shù)法

(2)

時(shí)間片輪轉(zhuǎn)法(3)多重時(shí)間片輪轉(zhuǎn)法

如圖解所示一級(jí)輪轉(zhuǎn)隊(duì)列時(shí)間片0.02秒二級(jí)輪轉(zhuǎn)隊(duì)列時(shí)間片0.2秒三級(jí)輪轉(zhuǎn)隊(duì)列時(shí)間片2秒進(jìn)程1進(jìn)程2進(jìn)程3進(jìn)程2進(jìn)程3進(jìn)程4進(jìn)程5進(jìn)程2進(jìn)程3進(jìn)程5結(jié)束結(jié)束程序XIO260msCPU20msIO130msCPU10msIO140msCPU20msIO120ms程序YIO130msCPU40msIO270msCPU30msIO230ms程序ZCPU40msIO160msCPU30msIO270ms時(shí)間(ms)CPUIO5010015020025030016017018019011012013030608090220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXYZXYZXZXXZXYXYYZIO270msCPU30msIO160msCPU40ms程序ZIO230msCPU30msIO270msCPU40msIO130ms程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序X時(shí)間(ms)CPUIO5010015020025030016017018019011012013030608090220210230240CPUIO1IO250100150200250160170180110120130220210230240YXZIO270msCPU30msIO160msCPU40ms程序ZIO230msCPU30msIO270msCPU40msIO130ms程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序X時(shí)間(ms)CPUIO5010015020025030016017018019011012013030608090220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXZ剩10msYIO270msCPU30msIO160msCPU40ms程序ZIO230msCPU30msIO270msCPU40msIO130ms程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序X時(shí)間(ms)CPUIO5010015020025030016017018019011012013030608090220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXYXZ剩10ms,Y剩10msIO270msCPU30msIO160msCPU40ms程序ZIO230msCPU30msIO270msCPU40msIO130ms程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序X時(shí)間(ms)CPUIO5010015020025030016017018019011012013030608090220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXYXYXZ剩10msIO270msCPU30msIO160msCPU40ms程序ZIO230msCPU30msIO270msCPU40msIO130ms程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序X時(shí)間(ms)CPUIO5010015020025030016017018019011012013030608090220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXYZXYZZXYXYYX被IO1堵塞IO270msCPU30msIO160msCPU40ms程序ZIO230msCPU30msIO270msCPU40msIO130ms程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序X時(shí)間(ms)CPUIO5010015020025030016017018019011012013030608090220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXYZXYXZXYXYYZIO270msCPU30msIO160msCPU40ms程序ZIO230msCPU30msIO270msCPU40msIO130ms程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序X時(shí)間(ms)CPUIO5010015020025030016017018019011012013030608090220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXYZXYZXXZXYXYYz剩10msIO270msCPU30msIO160msCPU40ms程序ZIO230msCPU30msIO270msCPU40msIO130ms程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序X時(shí)間(ms)CPUIO5010015020025030016017018019011012013030608090220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXYZXYZXZXXZXYXYYZ上例分析計(jì)算結(jié)果

最早結(jié)束是Y,最后結(jié)束是Z;X,Y,Z三程序到結(jié)束所用時(shí)間分別為250ms、220ms、310ms;CPU的利用率為:

單道處理時(shí)CPU的利用率:多道處理時(shí)CPU的利用率:多道程序設(shè)計(jì)的優(yōu)點(diǎn):提高了系統(tǒng)的吞吐量;提高了CPU的利用率;提高了設(shè)備的利用率。上例分析計(jì)算結(jié)果

最早結(jié)束是Y,最后結(jié)束是Z;X,Y,Z三程序到結(jié)束所用時(shí)間分別為250ms、220ms、310ms;CPU的利用率為:

1、同步與互斥的概念

3.3.5進(jìn)程的同步與互斥同步:請(qǐng)看兩個(gè)例子互斥:請(qǐng)看兩個(gè)例子臨界資源:一次僅允許一個(gè)進(jìn)程使用的資源。臨界區(qū):進(jìn)程中使用臨界資源的那段程序。例1電子郵件信箱發(fā)送進(jìn)程A接收進(jìn)程B當(dāng)信箱滿時(shí),發(fā)送進(jìn)程只有等待接收進(jìn)程取走信件,當(dāng)信箱空時(shí),接收進(jìn)程必須等待發(fā)送進(jìn)程發(fā)送信件。12n……例2:X=fun1(y)*fun2(Z)計(jì)算fun1(y)進(jìn)程p2算完fun2(Z)?取用P2計(jì)算結(jié)果計(jì)算fun2(Z)設(shè)置計(jì)算完成標(biāo)志終止YN進(jìn)程P1進(jìn)程P2????兩個(gè)協(xié)同工作進(jìn)程的同步例1:公共地段交通十字路口的控制:公共地段互斥例2X=COUNTX=X+1COUNT=XY=COUNTY=Y+1COUNT=Y臨界區(qū)臨界區(qū)進(jìn)程A進(jìn)程B????????????????進(jìn)程A與B對(duì)公共變量COUNT進(jìn)行互斥操作,最終實(shí)現(xiàn)COUNT增加2。若A與B接下面順序推進(jìn),結(jié)果COUNT只實(shí)現(xiàn)增加1。A:X=COUNT;A:X=X+1;COUNT=X;B:Y=COUNT;B:Y=Y+1;COUNT=Y;1、進(jìn)程的同步與互斥的實(shí)現(xiàn)方法利用P原語(yǔ)和V原語(yǔ)對(duì)信號(hào)量進(jìn)行操作可實(shí)現(xiàn)進(jìn)程的同步與互斥。根據(jù)信號(hào)量的用途不同,信號(hào)量分為公用信號(hào)量和私用信號(hào)量?jī)深悾?.公用信號(hào)量:每個(gè)進(jìn)程均可對(duì)他施加P操作和V操作的信號(hào)量。初值為1。通常作為互斥信號(hào)量。2.私用信號(hào)量:允許一個(gè)進(jìn)程對(duì)他施加P操作,其它進(jìn)程只能對(duì)他進(jìn)行V操作的信號(hào)量。初值為0或某個(gè)正整數(shù)n。通常作為同步信號(hào)量。P原語(yǔ)操作過(guò)程:

P操作記為P(S),其中S為一信號(hào)量,其執(zhí)行順序完成以下兩個(gè)動(dòng)作:(1)

S=S1,表示申請(qǐng)使用一個(gè)資源;(2)

若S0,表示系統(tǒng)中有資源可用,現(xiàn)進(jìn)程可繼續(xù)執(zhí)行。(3)

若S0,表示系統(tǒng)中沒(méi)有可用資源,則置該進(jìn)程阻塞狀態(tài),到S信號(hào)量的隊(duì)列中去等待,直到其他進(jìn)程在S上執(zhí)行V操作釋放它為止。

在信號(hào)量數(shù)據(jù)結(jié)構(gòu)之上定義了兩個(gè)原語(yǔ),他們是P原語(yǔ)和V原語(yǔ)。

V操作記為V(S),其中S為一信號(hào)量,其執(zhí)行順序完成以下兩個(gè)動(dòng)作:(1)

S=S+1,表示釋放一個(gè)資源;(2)

若S0,表示系統(tǒng)中沒(méi)有等待該資源的進(jìn)程,現(xiàn)進(jìn)程可繼續(xù)執(zhí)行。(3)若S0,表示系統(tǒng)中有等待該資源的進(jìn)程,則喚醒S信號(hào)量隊(duì)列中的第一個(gè)進(jìn)程,使其插入到就緒隊(duì)列,繼續(xù)執(zhí)行現(xiàn)進(jìn)程。

V原語(yǔ)操作過(guò)程:同步條件??????進(jìn)程A進(jìn)程BS=0C:P(S)V(S)同步點(diǎn)(1)實(shí)現(xiàn)進(jìn)程同步3、P-V操作的應(yīng)用查詢進(jìn)程S把查詢結(jié)果寫到緩沖區(qū)V(S1)P(S2)打印進(jìn)程PP(S1)把緩沖區(qū)內(nèi)容打印輸出V(S2)S1:表示緩沖區(qū)中是否已有可供打印的查詢結(jié)果,初值為S1=0S2:表示緩沖區(qū)中的查詢結(jié)果是否已被打印進(jìn)程取走,初值為S1=0????????????進(jìn)程A的臨界區(qū)進(jìn)程B的臨界區(qū)P(S)P(S)進(jìn)程A進(jìn)程B初值S=1V(S)V(S)(2)實(shí)現(xiàn)進(jìn)程互斥Y=COUNTY=Y+1COUNT=Y臨界區(qū)V(S)P(S)進(jìn)程BX=COUNTX=X+1COUNT=X臨界區(qū)V(S)P(S)進(jìn)程AS=1(3)實(shí)現(xiàn)進(jìn)程同步與互斥——生產(chǎn)者與消費(fèi)者問(wèn)題

生產(chǎn)者與消費(fèi)者問(wèn)題是最著名的進(jìn)程同步與互斥問(wèn)題。他描述了一組生產(chǎn)者向一組消費(fèi)者提供消息,他們共享一個(gè)有界緩沖池,生產(chǎn)者向其中投放消息,消費(fèi)者從中取得消息。生產(chǎn)者與消費(fèi)者問(wèn)題是許多相互合作進(jìn)程的一種抽象。例如,在輸入時(shí),輸入進(jìn)程是生產(chǎn)者,計(jì)算進(jìn)程是消費(fèi)者。在輸出時(shí),計(jì)算進(jìn)程是生產(chǎn)者,打印進(jìn)程是消費(fèi)者。123………NP1P2P3PmC1C2C3Cn有界緩沖池……生產(chǎn)者消費(fèi)者同步問(wèn)題:1.只要緩沖池未滿,生產(chǎn)者便可將消息送入緩沖池,否則等待。2.只要緩沖池未空,消費(fèi)者便可從緩沖池中取走一個(gè)消息,否則等待?;コ鈫?wèn)題:1.生產(chǎn)者與生產(chǎn)者之間、消費(fèi)者與消費(fèi)者之間互斥訪問(wèn)緩沖池。2.生產(chǎn)者和消費(fèi)者之間互斥訪問(wèn)緩沖池。生產(chǎn)者與消費(fèi)者之間的同步與互斥問(wèn)題

公用信號(hào)量S:初值為1,表示沒(méi)有進(jìn)程進(jìn)入臨界區(qū)。私用信號(hào)量S0:初值為0,表示產(chǎn)品數(shù)目。私用信號(hào)量Sn:初值為n,表示緩沖區(qū)中空位置個(gè)數(shù)。

為實(shí)現(xiàn)生產(chǎn)者與消費(fèi)者的同步與互斥,設(shè)兩個(gè)私用信號(hào)量和一個(gè)公用信號(hào)量:同步互斥算法:生產(chǎn)者進(jìn)程P1P(Sn)P(S)緩沖區(qū)產(chǎn)品V(S0)V(S)消費(fèi)者進(jìn)程C1P(S0)P(S)取產(chǎn)品V(Sn)V(S)公用信號(hào)量S=1,互斥信號(hào)量。私用信號(hào)量S0=0,表示產(chǎn)品數(shù)目。私用信號(hào)量Sn=n,表示緩沖區(qū)中空位置個(gè)數(shù)采用時(shí)間片輪轉(zhuǎn)法:Sn=nt=0S0=0S=1同步互斥算法:生產(chǎn)者進(jìn)程P1P(Sn)P(S)緩沖區(qū)產(chǎn)品V(S0)V(S)消費(fèi)者進(jìn)程C1P(S0)P(S)取產(chǎn)品V(Sn)V(S)公用信號(hào)量S=1,互斥信號(hào)量。私用信號(hào)量S0=0,表示產(chǎn)品數(shù)目。私用信號(hào)量Sn=n,表示緩沖區(qū)中空位置個(gè)數(shù)采用時(shí)間片輪轉(zhuǎn)法:Sn=n-1t=1S0=0S=1同步互斥算法:生產(chǎn)者進(jìn)程P1P(Sn)P(S)緩沖區(qū)產(chǎn)品V(S0)V(S)消費(fèi)者進(jìn)程C1P(S0)P(S)取產(chǎn)品V(Sn)V(S)公用信號(hào)量S=1,互斥信號(hào)量。私用信號(hào)量S0=0,表示產(chǎn)品數(shù)目。私用信號(hào)量Sn=n,表示緩沖區(qū)中空位置個(gè)數(shù)采用時(shí)間片輪轉(zhuǎn)法:Sn=n-1t=2S0=-1S=1阻塞同步互斥算法:生產(chǎn)者進(jìn)程P1P(Sn)P(S)緩沖區(qū)產(chǎn)品V(S0)V(S)消費(fèi)者進(jìn)程C1P(S0)P(S)取產(chǎn)品V(Sn)V(S)公用信號(hào)量S=1,互斥信號(hào)量。私用信號(hào)量S0=0,表示產(chǎn)品數(shù)目。私用信號(hào)量Sn=n,表示緩沖區(qū)中空位置個(gè)數(shù)采用時(shí)間片輪轉(zhuǎn)法:Sn=n-1t=3S0=-1S=0阻塞同步互斥算法:生產(chǎn)者進(jìn)程P1P(Sn)P(S)緩沖區(qū)產(chǎn)品V(S0)V(S)消費(fèi)者進(jìn)程C1P(S0)P(S)取產(chǎn)品V(Sn)V(S)公用信號(hào)量S=1,互斥信號(hào)量。私用信號(hào)量S0=0,表示產(chǎn)品數(shù)目。私用信號(hào)量Sn=n,表示緩沖區(qū)中空位置個(gè)數(shù)采用時(shí)間片輪轉(zhuǎn)法:Sn=n-1t=4S0=0S=0阻塞同步互斥算法:生產(chǎn)者進(jìn)程P1P(Sn)P(S)緩沖區(qū)產(chǎn)品V(S0)V(S)消費(fèi)者進(jìn)程C1P(S0)P(S)取產(chǎn)品V(Sn)V(S)公用信號(hào)量S=1,互斥信號(hào)量。私用信號(hào)量S0=0,表示產(chǎn)品數(shù)目。私用信號(hào)量Sn=n,表示緩沖區(qū)中空位置個(gè)數(shù)采用時(shí)間片輪轉(zhuǎn)法:Sn=n-1t=5S0=0S=-1阻塞同步互斥算法:生產(chǎn)者進(jìn)程P1P(Sn)P(S)緩沖區(qū)產(chǎn)品V(S0)V(S)消費(fèi)者進(jìn)程C1P(S0)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論