操作系統(tǒng)第五章第二節(jié)_第1頁
操作系統(tǒng)第五章第二節(jié)_第2頁
操作系統(tǒng)第五章第二節(jié)_第3頁
操作系統(tǒng)第五章第二節(jié)_第4頁
操作系統(tǒng)第五章第二節(jié)_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第五章 設(shè)備管理操作系統(tǒng)10/7/20221第五章 設(shè)備管理I/O系統(tǒng) I/O控制方式 緩沖管理 設(shè)備分配設(shè)備處理磁盤存儲器管理10/7/20222緩沖管理緩沖的引入單緩沖和雙緩沖循環(huán)緩沖緩沖池(Buffer Pool)10/7/20223緩沖的引入緩和CPU與I/O設(shè)備間速度不匹配的矛盾 數(shù)據(jù)到達速率與其離去速率不同減少對CPU的中斷頻率,放寬對CPU中斷響應(yīng)時間的限制1位緩沖9.6 Kb/s(a)中斷CPU的頻率為9.6Kb/s,每100s中斷一次CPUCPU必須在100 s內(nèi)響應(yīng),否則數(shù)據(jù)會被沖掉8位緩沖寄存器送內(nèi)存9.6 Kb/s(b)中斷CPU的頻率降低為9.6Kb/8 10/7/2

2、0224緩沖的引入8位緩沖寄存器9.6 Kb/s送內(nèi)存(c)提高CPU和I/O設(shè)備之間的并行性提高系統(tǒng)的吞吐量和設(shè)備的利用率每800s中斷一次CPU10/7/20225緩沖管理緩沖的引入單緩沖和雙緩沖循環(huán)緩沖緩沖池(Buffer Pool)10/7/20226單緩沖和雙緩沖單緩沖(Single Buffer) CT時,每塊數(shù)據(jù)的處理時間是M+T;反之,為M+C,即由于C和T可并行,M和C或M和T不能并行因此處理一塊數(shù)據(jù)時間:Max(C,T)+M10/7/20227單緩沖和雙緩沖雙緩沖(Double Buffer) 效率有所提高,且進一步平滑了傳輸峰值。系統(tǒng)處理一塊數(shù)據(jù)的時間約為:MAX(C,T

3、)工作區(qū)用戶進程緩沖區(qū)1緩沖區(qū)2I/O 設(shè)備T1(緩沖1)M1C1M2C2M3C3T2(緩沖2)T3(緩沖3)M4C4T4(緩沖4)(a)(b)10/7/20228單緩沖和雙緩沖只能實現(xiàn)單向的數(shù)據(jù)傳輸緩沖區(qū)緩沖區(qū)A機B機(a) 單緩沖發(fā)送緩沖區(qū)接收緩沖區(qū)接收緩沖區(qū)發(fā)送緩沖區(qū)A機B機(b) 雙緩沖為了實現(xiàn)雙向數(shù)據(jù)傳輸,必須在兩臺機器中都設(shè)置兩個緩沖區(qū),一個用作發(fā)送緩沖區(qū),另一個用作接收緩沖區(qū)。10/7/20229緩沖管理緩沖的引入單緩沖和雙緩沖循環(huán)緩沖緩沖池(Buffer Pool)10/7/202210循環(huán)緩沖循環(huán)緩沖的引入當(dāng)輸入與輸出速度基本匹配時,雙緩沖能獲得較好效果;當(dāng)速度相差較大時,可

4、引入多個(大小相等)緩沖,組織成循環(huán)緩沖的形式循環(huán)緩沖的組成多個緩沖區(qū)用于裝輸入數(shù)據(jù)的空緩沖區(qū)R已裝滿數(shù)據(jù)的滿緩沖區(qū)G計算進程正在使用的現(xiàn)行工作緩沖區(qū)C多個指針指示計算進程下一可用緩沖區(qū)Nextg指示輸入進程下一可用空緩沖區(qū)Nexti指示計算進程正在使用的緩沖區(qū)Current10/7/202211循環(huán)緩沖類型:R:空緩沖;G:滿緩沖;C:當(dāng)前緩沖RGGGRG165423NextiNextgRGGGRC165423NextiNextgcurrent10/7/202212循環(huán)緩沖循環(huán)緩沖區(qū)的使用Getbuf過程為計算進程和輸入進程提供緩沖區(qū),并移動指針Releasebuf過程當(dāng)計算進程或輸入使用完

5、緩沖區(qū)后,調(diào)用過程將緩沖區(qū)釋放進程同步輸入、計算進程并行Nexti指針追趕上Nextg指針輸入進程速度大于計算進程,全部空緩沖區(qū)已滿,無可用緩沖區(qū),輸入進程阻塞(系統(tǒng)受計算限制)Nextg指針追趕上Nexti指針計算進程速度大于輸入進程,全部緩沖區(qū)空,無可用數(shù)據(jù),計算進程阻塞(系統(tǒng)受I/O限制)10/7/202213緩沖管理緩沖的引入單緩沖和雙緩沖循環(huán)緩沖緩沖池(Buffer Pool)10/7/202214緩沖池(Buffer Pool)緩沖池的組成專用緩沖的利用率不高,與環(huán)形緩沖不同的是緩沖池中的緩沖區(qū)是系統(tǒng)的公用資源,可供多個進程共享,既能用于輸入,也能用于輸出緩沖區(qū)類型空(閑)緩沖區(qū)裝

6、滿輸入數(shù)據(jù)的緩沖區(qū)裝滿輸出數(shù)據(jù)的緩沖區(qū)緩沖隊列:按其使用情況空緩沖隊列emq輸入隊列inq輸出隊列outq10/7/202215緩沖池(Buffer Pool)緩沖池的組成四種工作緩沖區(qū)用于收容輸入數(shù)據(jù)的工作緩沖區(qū)(hin)用于提取輸入數(shù)據(jù)的工作緩沖區(qū)(sin)用于收容輸出數(shù)據(jù)的工作緩沖區(qū)(hout)用于提取輸出數(shù)據(jù)的工作緩沖區(qū)(sout)10/7/202216緩沖池(Buffer Pool)兩個對緩沖區(qū)操作的過程Getbuf(type),type-隊列類型 Putbuf(type,number),number-指某緩沖區(qū)隊列是臨界資源需設(shè)置互斥信號量MS,每個隊列一個MS(type)資源信號

7、量RS ,每個隊列一個RS(type)隊列操作過程Takebuf(type) :取type所指隊列隊首緩沖區(qū)Addbuf(type,number):將number所指緩沖區(qū)加到type所指隊列尾10/7/202217緩沖池(Buffer Pool) Procedure Getbuf(type) begin Wait(RS(type); Wait(MS(type); B(number):=Takebuf(type); /從隊首摘下一個緩沖區(qū) Signal(MS(type); end Procedure Putbuf(type, number) begin Wait(MS(type); Addbu

8、f(type, number); /將指定緩沖區(qū)掛在type指定隊列上 Signal(MS(type); Signal(RS(type); end 互斥信號量MS(type)資源信號量RS(type)10/7/202218緩沖池(Buffer Pool)緩沖區(qū)工作方式hinsoutsinhout收容輸入提取輸出用戶進程提取輸入收容輸出緩沖池Getbuf(emq)Putbuf(inq,hin)Getbuf(inq)Putbuf(emp,sin)Getbuf(emq)Putbuf(outq,hout)Getbuf(outq)Putbuf(emq,sout)10/7/2022193. 緩沖區(qū)的工作方

9、式 圖 5-15 緩沖區(qū)的工作方式 1.收容輸入;2.提取輸入;3.收容輸出;4.提取輸出1. hin=getbuf(emq);putbuf(inq,hin)2. sin=getbuf(inq);計算;putbuf(emq,sin)3. hout=getbuf(emq);putbuf(outq, hout)4. sout=getbuf(outq);輸出;putbuf(emq,sout)10/7/202220設(shè)備分配設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備分配時應(yīng)考慮的因素設(shè)備獨立性獨占設(shè)備的分配程序SPOOLing技術(shù)10/7/202221 I/O軟件的總體設(shè)計目標(biāo)是:高效率和通用性。 通常,I/O軟件設(shè)計時

10、主要考慮以下問題:設(shè)備無關(guān)性、統(tǒng)一命名、出錯處理、緩沖技術(shù)、設(shè)備分配與釋放、I/O控制方式。 為了合理、高效地解決以上問題,操作系統(tǒng)通常把I/O軟件組織成以下四個層次: I/O中斷處理程序(底層) I/O設(shè)備驅(qū)動程序 與設(shè)備無關(guān)的操作系統(tǒng)I/O軟件 用戶層I/O軟件I/O軟件的目標(biāo)10/7/202222設(shè)備處理系統(tǒng)層次結(jié)構(gòu)10/7/202223設(shè)備處理中斷處理程序的處理過程設(shè)備驅(qū)動程序的功能和特點設(shè)備驅(qū)動程序的處理過程10/7/202224設(shè)備處理系統(tǒng)層次結(jié)構(gòu)接收上層軟件發(fā)來的抽象要求read/write,轉(zhuǎn)換成具體的要求,發(fā)給設(shè)備控制器將由設(shè)備控制器發(fā)來的信號送給上層軟件10/7/20222

11、5I/O中斷處理程序中斷處理程序系統(tǒng)為每類設(shè)備設(shè)置一個中斷處理程序,它們的入口地址被存放在內(nèi)存的固定單元中, 稱為中斷向量。 當(dāng)某臺設(shè)備完成一次操作時,發(fā)出中斷信號,接受中斷信號,暫停現(xiàn)行進程的執(zhí)行,根據(jù)中斷向量轉(zhuǎn)到相應(yīng)的中斷處理程序執(zhí)行。中斷處理程序的基本工作包括:保留現(xiàn)行進程的執(zhí)行現(xiàn)場;通知等待該操作完成的進程;最終轉(zhuǎn)入進程調(diào)度程序進行重新調(diào)度。10/7/202226中斷現(xiàn)場保護示意圖PSW程序狀態(tài)字PC(N1)程序計數(shù)器R0Rn寄存器開始返回用戶程序中斷服務(wù)子例程PSWPC(N1)中斷棧TTM棧指針YNN1R0Rn10/7/202227中斷處理程序的處理過程1.喚醒被阻塞的驅(qū)動程序2.保

12、護被中斷進程的CPU環(huán)境3.轉(zhuǎn)入相應(yīng)設(shè)備處理程序4.中斷處理5.恢復(fù)被中斷程序的現(xiàn)場10/7/202228設(shè)備處理中斷處理程序的處理過程設(shè)備驅(qū)動程序的功能和特點設(shè)備驅(qū)動程序的處理過程10/7/202229設(shè)備處理系統(tǒng)層次結(jié)構(gòu)10/7/202230設(shè)備驅(qū)動程序的功能和特點設(shè)備處理程序又稱為設(shè)備驅(qū)動程序,是I/O進程與設(shè)備控制器之間的通信程序不論是哪種設(shè)備驅(qū)動程序,它的功能是相同的接收用戶的I/O請求命令和參數(shù),并將命令中的抽象要求轉(zhuǎn)換為具體要求(I/O請求塊),例如,將磁盤塊號轉(zhuǎn)換為磁盤的盤面、 磁道號及扇區(qū)號檢查用戶I/O請求的合法性,了解I/O設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式發(fā)出

13、I/O命令并檢查設(shè)備狀態(tài),空閑則啟動I/O完成指定的操作,忙碌則將請求者的請求塊掛到相應(yīng)設(shè)備的I/O請求隊列及時響應(yīng)由控制器或通道發(fā)來的中斷請求并處理若計算機系統(tǒng)設(shè)置有通道,則驅(qū)動程序根據(jù)用戶的I/O請求,自動地構(gòu)成通道程序10/7/202231設(shè)備驅(qū)動程序的功能和特點注意每類設(shè)備有一個I/O請求隊列,在系統(tǒng)初始化時,將系統(tǒng)中所有設(shè)備的I/O請求隊列置為空在系統(tǒng)初啟時,系統(tǒng)為每類設(shè)備創(chuàng)建一個進程(其中的一種方式),執(zhí)行程序就是該設(shè)備的設(shè)備驅(qū)動程序。由于系統(tǒng)初啟時,相應(yīng)的I/O請求隊列為空,則在該隊列上睡眠一旦有I/O請求塊掛入,喚醒該設(shè)備驅(qū)動進程。它被調(diào)度到時,從隊列中取出一個I/O請求塊,并

14、按該塊的內(nèi)容執(zhí)行一次I/O操作,發(fā)出I/O完成(或出錯)中斷信號。然后,檢查請求隊,若為空,則進入睡眠狀態(tài),否則,取下一個請求塊10/7/202232設(shè)備驅(qū)動程序的功能和特點在不同的系統(tǒng),設(shè)備驅(qū)動程序的運行方式在整個系統(tǒng)中設(shè)置一個I/O進程,統(tǒng)一負責(zé)所有設(shè)備的驅(qū)動工作。專門用于執(zhí)行系統(tǒng)中所有各類設(shè)備的I/O操作為每一類設(shè)備設(shè)置一個進程,專門用于負責(zé)該類設(shè)備的驅(qū)動工作(I/O操作) 為每臺設(shè)備建立一個設(shè)備驅(qū)動進程,它們分別負責(zé)專門設(shè)備的驅(qū)動工作。同類設(shè)備的各驅(qū)動進程共享該類設(shè)備的設(shè)備驅(qū)動程序。不設(shè)置專門的設(shè)備處理進程,而只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備處理程序(模塊), 供用戶進程或系統(tǒng)進程調(diào)用10/

15、7/202233設(shè)備驅(qū)動程序的功能和特點為了控制I/O傳輸,系統(tǒng)為每類設(shè)備編制設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序是一種低級的系統(tǒng)例程。它必須和系統(tǒng)的輸入輸出硬設(shè)備相互通信。使用特權(quán)/指令來訪問硬件,它通常是用匯編語言或系統(tǒng)編程語言寫的任務(wù):主要負責(zé)接收和分析從設(shè)備分配轉(zhuǎn)來的信息,并根據(jù)設(shè)備分配的結(jié)果,結(jié)合具體物理設(shè)備特性完成具體工作10/7/202234設(shè)備驅(qū)動程序的功能和特點設(shè)備驅(qū)動程序的特點驅(qū)動程序主要是指在請求I/O的進程與設(shè)備控制器之間的一個通信和轉(zhuǎn)換程序驅(qū)動程序與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān), 因而對不同類型的設(shè)備應(yīng)配置不同的驅(qū)動程序驅(qū)動程序與I/O設(shè)備所采用的I/O控制方式緊密相

16、關(guān)由于驅(qū)動程序與硬件緊密相關(guān), 因而其中的一部分必須用匯編語言書寫10/7/202235設(shè)備處理中斷處理程序的處理過程設(shè)備驅(qū)動程序的功能和特點設(shè)備驅(qū)動程序的處理過程10/7/202236設(shè)備驅(qū)動程序的處理過程將抽象要求轉(zhuǎn)換為具體要求設(shè)置控制器中的寄存器檢查I/O請求的合法性若請求的設(shè)備不支持本次的I/O請求,認為是非法操作讀出和檢查設(shè)備的狀態(tài) 檢查設(shè)備是否空閑或是否就緒傳送必要的參數(shù) 如數(shù)據(jù)量、起始地址等工作方式的設(shè)置 對于有多種工作方式的設(shè)備進行設(shè)置啟動I/O設(shè)備驅(qū)動進程將自己阻塞起來,直到中斷到來時將其喚醒10/7/202237設(shè)備處理中斷處理程序的處理過程設(shè)備驅(qū)動程序的功能和特點設(shè)備驅(qū)動

17、程序的處理過程10/7/2022385.4.4 設(shè)備獨立性設(shè)備獨立性(Device Independence)的概念定義:是指用戶在編制程序時所使用的設(shè)備與實際使用的設(shè)備無關(guān)。即 應(yīng)用程序獨立于具體使用的物理設(shè)備為了實現(xiàn)設(shè)備獨立性而引入了邏輯設(shè)備和物理設(shè)備這兩個概念在應(yīng)用程序中, 使用邏輯設(shè)備名稱來請求使用某類設(shè)備;而系統(tǒng)在實際執(zhí)行時, 還必須使用物理設(shè)備名稱系統(tǒng)須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物理設(shè)備名稱的功能,這非常類似于存儲器管理中所介紹的邏輯地址和物理地址的概念10/7/202239設(shè)備獨立性設(shè)備獨立性的優(yōu)點設(shè)備分配時的靈活性系統(tǒng)可將該邏輯設(shè)備類中的任一臺分配給進程使用所有設(shè)備均占用時才阻

18、塞易于實現(xiàn)I/O重定向所謂I/O重定向,指用于I/O操作的設(shè)備可以更換,而不必改變應(yīng)用程序如調(diào)試程序時輸出到屏幕,而實際應(yīng)用時改為輸出到打印機10/7/202240設(shè)備獨立性設(shè)備獨立性軟件設(shè)備驅(qū)動程序是一個與硬件(或設(shè)備)緊密相關(guān)的軟件。設(shè)備驅(qū)動程序一方面可以定制以適合各種設(shè)備,另一方面也提供了一組標(biāo)準(zhǔn)接口。設(shè)備驅(qū)動程序的作用是為內(nèi)核I/O子系統(tǒng)隱藏設(shè)備控制器之間的差異為了實現(xiàn)設(shè)備獨立性,必須在設(shè)備驅(qū)動程序上設(shè)置一層軟件,稱為設(shè)備獨立性軟件10/7/2022412. 設(shè)備獨立性軟件 為了實現(xiàn)設(shè)備獨立性,必須再將驅(qū)動程序之上設(shè)備一層軟件,稱為設(shè)備獨立性軟件,其主要功能可分為以下兩個方面: (1)執(zhí)行所有設(shè)備的公有操作 (2)向用戶層(或文件層)軟件提供統(tǒng)一接口。10/7/2022422. 設(shè)備獨立性軟件 1) 執(zhí)行所有設(shè)備的公有操作 對獨立設(shè)備的分配與回收; 將邏輯設(shè)備名映射為物理設(shè)備名,進一步可以找到相應(yīng)物理設(shè)備的驅(qū)動程序; 對設(shè)備進行保護,禁止用戶直接訪問設(shè)備; 緩沖管理,

溫馨提示

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

評論

0/150

提交評論