版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本章要點(diǎn)(1/6)目標(biāo):操作系統(tǒng)處理用戶I/O請(qǐng)求的基本過(guò)程。I/O控制方式了解I/O控制方式的演變過(guò)程(由低效演變?yōu)楦咝В?,每種I/O控制方式是如何進(jìn)行控制的,又是如何提高CPU的利用率。程序I/O方式中斷驅(qū)動(dòng)I/O控制方式DMAI/O控制方式通道控制方式緩沖管理緩沖的引入目的是什么?如果沒(méi)有緩沖區(qū),CPU和I/O設(shè)備應(yīng)如何工作;引入緩沖后,可帶來(lái)什么好處?單緩沖是如何提高I/O速度的,它存在著哪些不足,而雙緩沖、循環(huán)緩沖又是如何進(jìn)一步提高CPU和I/O設(shè)備的并行性的。緩沖池是為了解決什么問(wèn)題而引入的,引入緩沖池后系統(tǒng)將如何處理I/O設(shè)備和CPU間的數(shù)據(jù)傳輸。本章要點(diǎn)(2/6)設(shè)備獨(dú)立性什么是設(shè)備獨(dú)立性?為什么設(shè)備獨(dú)立性能提高設(shè)備分配的靈活性,并使I/O重定向的實(shí)現(xiàn)變得更為容易?如何實(shí)現(xiàn)設(shè)備獨(dú)立性?設(shè)備獨(dú)立性軟件具有哪些功能,它是如何實(shí)現(xiàn)邏輯設(shè)備名到實(shí)際使用的物理設(shè)備名之間的轉(zhuǎn)換的?本章要點(diǎn)(3/6)虛擬設(shè)備和SPOOLing技術(shù)什么是虛擬設(shè)備技術(shù)?虛擬設(shè)備技術(shù)的關(guān)鍵是什么?什么是SPOOLing技術(shù)?SPOOLing系統(tǒng)由哪幾部分組成,假脫機(jī)和脫機(jī)I/O技術(shù)的異同。如何共享打印機(jī)?為什么SPOOLing技術(shù)可加快I/O的速度,為什么它可以把一臺(tái)獨(dú)占的設(shè)備換成可供多個(gè)進(jìn)程共享的虛擬設(shè)備?本章要點(diǎn)(4/6)設(shè)備處理設(shè)備驅(qū)動(dòng)程序的作用與任務(wù)是什么?設(shè)備驅(qū)動(dòng)程序應(yīng)具備哪些功能?I/O中斷處理程序的主要任務(wù)是什么,具體應(yīng)包含哪些工作?CPU是如何響應(yīng)I/O中斷的,一次完整的I/O操作是如何在設(shè)備驅(qū)動(dòng)程序和I/O中斷的配合下完成的?本章要點(diǎn)(5/6)磁盤(pán)調(diào)度磁盤(pán)調(diào)度的概念。磁盤(pán)調(diào)度的目標(biāo)是什么?對(duì)移動(dòng)頭磁盤(pán),磁盤(pán)訪問(wèn)時(shí)間應(yīng)由哪幾部分組成,各部分又分別是如何進(jìn)行計(jì)算的,為什么磁盤(pán)調(diào)度的主要目標(biāo)是優(yōu)化平均尋道時(shí)間。FCFS、SSTF、SCAN、CSCAN、N-Step-SCAN以及FSCAN等算法分別是如何進(jìn)行磁盤(pán)調(diào)度的,在這些算法的演變過(guò)程中,分別解決了哪些問(wèn)題。本章要點(diǎn)(6/6)第六章輸入輸出系統(tǒng)6.1I/O系統(tǒng)的功能、模型和接口6.2I/O設(shè)備和設(shè)備控制器6.3中斷機(jī)構(gòu)和中斷處理程序6.4設(shè)備驅(qū)動(dòng)程序6.5與設(shè)備無(wú)關(guān)的I/O軟件6.6用戶層的I/O軟件6.7緩沖區(qū)管理6.8磁盤(pán)存儲(chǔ)器的性能和調(diào)度6.1I/O系統(tǒng)的功能、模型和接口6.1.1I/O系統(tǒng)的基本功能I/O系統(tǒng)是用于實(shí)現(xiàn)數(shù)據(jù)輸入、輸出及數(shù)據(jù)存儲(chǔ)的系統(tǒng)。I/O系統(tǒng)包括:I/O和存儲(chǔ)信息的設(shè)備設(shè)備控制器高速總線I/O通道或I/O處理機(jī)1、I/O系統(tǒng)的組成目標(biāo)1:方便用戶使用I/O設(shè)備。隱藏物理設(shè)備的細(xì)節(jié)為千差萬(wàn)別的設(shè)備配置設(shè)備控制器。實(shí)現(xiàn)方式:抽象的I/O命令。與設(shè)備的無(wú)關(guān)性是在隱藏物理設(shè)備細(xì)節(jié)的基礎(chǔ)上實(shí)現(xiàn)的。實(shí)現(xiàn)方式:抽象的邏輯設(shè)備名。2、I/O系統(tǒng)的基本功能目標(biāo)2:提高CPU和I/O設(shè)備的利用率。提高CPU和I/O設(shè)備的利用率盡可能地讓處理機(jī)和I/O設(shè)備并行操作。實(shí)現(xiàn)方式:要求處理機(jī)能快速響應(yīng)用戶的I/O請(qǐng)求;盡量減少在每個(gè)I/O設(shè)備運(yùn)行時(shí)處理機(jī)的干預(yù)時(shí)間。對(duì)I/O設(shè)備進(jìn)行控制對(duì)I/O設(shè)備進(jìn)行控制是驅(qū)動(dòng)程序的功能。實(shí)現(xiàn)方式:根據(jù)設(shè)備傳輸速率與傳輸數(shù)據(jù)單位等不同,可以采用四種控制方式之一。2、I/O系統(tǒng)的基本功能目標(biāo)3:提供設(shè)備共享與錯(cuò)誤處理。確保對(duì)設(shè)備的正確共享獨(dú)占設(shè)備:應(yīng)互斥地訪問(wèn),需要考慮到分配的安全性。共享設(shè)備:一段時(shí)間內(nèi)允許從上進(jìn)程同時(shí)訪問(wèn),需考慮到提高效率問(wèn)題。錯(cuò)誤處理臨時(shí)性錯(cuò)誤:通過(guò)重試操作予以糾正。持久性錯(cuò)誤:需向上層報(bào)告。錯(cuò)誤的處理應(yīng)盡可能在接近硬件的層面上進(jìn)行。2、I/O系統(tǒng)的基本功能6.1.2I/O系統(tǒng)的層次結(jié)構(gòu)和模型1、I/O軟件的層次結(jié)構(gòu)用戶層軟件設(shè)備獨(dú)立性軟件設(shè)備驅(qū)動(dòng)程序中斷處理程序硬件I/O應(yīng)答執(zhí)行I/O系統(tǒng)調(diào)用、格式化I/O、為作Spooling準(zhǔn)備設(shè)備命名、映射、保護(hù)、分塊處理、緩沖、分配設(shè)置設(shè)備寄存器,檢查設(shè)備執(zhí)行狀態(tài)實(shí)現(xiàn)物理I/O操作圖6-1I/O系統(tǒng)的層次結(jié)構(gòu)負(fù)責(zé)I/O完成時(shí),喚醒設(shè)備驅(qū)動(dòng)程序進(jìn)程,進(jìn)行中斷處理2、I/O系統(tǒng)中各種模塊之間的層次視圖圖6-2I/O系統(tǒng)中各模塊之間的層次視圖I/O系統(tǒng)接口RW/HW接口用戶層軟件設(shè)備獨(dú)立性軟件設(shè)備驅(qū)動(dòng)程序中斷處理程序設(shè)備控制器向上層提供對(duì)設(shè)備進(jìn)行操作抽象I/O命令,方便高層對(duì)設(shè)備的使用I/O系統(tǒng)保存被中斷進(jìn)程的CPU環(huán)境,轉(zhuǎn)入相應(yīng)設(shè)備的中斷處理程序處理,處理完成后,恢復(fù)被中斷進(jìn)程的CPU環(huán)境,返回?cái)帱c(diǎn)繼續(xù)執(zhí)行是進(jìn)程與設(shè)備控制器之間的通信程序,將上層發(fā)來(lái)的抽象I/O請(qǐng)求轉(zhuǎn)換為對(duì)I/O設(shè)備的具體命令和參數(shù),并裝入至設(shè)備控制器中I/O軟件獨(dú)立于具體使用的物理設(shè)備,方便系統(tǒng)的更新與擴(kuò)展6.1.3I/O系統(tǒng)接口1、塊設(shè)備接口該接口反映了大部磁盤(pán)存儲(chǔ)器和光盤(pán)存儲(chǔ)器的本質(zhì)特征,用于控制該類(lèi)設(shè)備的輸入或輸出:塊設(shè)備:數(shù)據(jù)的存取和傳輸都是以數(shù)據(jù)塊為單位的設(shè)備典型的塊設(shè)備:磁盤(pán)設(shè)備基本特征:傳輸速率較高;可尋址I/O控制方式:DMA方式隱藏了磁盤(pán)的二維結(jié)構(gòu)每個(gè)扇區(qū)的地址用磁道號(hào)和扇區(qū)號(hào)來(lái)表示將抽象命令映射為低層操作將上層發(fā)來(lái)的對(duì)文件或設(shè)備的操作命令映射為設(shè)備能識(shí)別的較低層具體操作2、流設(shè)備接口又稱為字符設(shè)備接口,用于控制字符設(shè)備的輸入或輸出:字符設(shè)備:數(shù)據(jù)的存取和傳輸都是以字符為單位的設(shè)備典型的塊設(shè)備:鍵盤(pán)、打印機(jī)設(shè)備基本特征:傳輸速率較低;不可尋址I/O控制方式:中斷驅(qū)動(dòng)方式get和put操作對(duì)字符設(shè)備只能采取順序存取的方式,配置有字符緩沖區(qū)io-control指令為流設(shè)備中的通用指令,該指令中包含了許多參數(shù),每個(gè)參數(shù)表示一個(gè)和具體設(shè)備相關(guān)的特定功能大多數(shù)流設(shè)備都屬于獨(dú)占設(shè)備,必須互斥地訪問(wèn)3、網(wǎng)絡(luò)通信接口6.2I/O設(shè)備和設(shè)備控制器6.2.1I/O設(shè)備按設(shè)備的使用特性分類(lèi)存儲(chǔ)設(shè)備:也稱外存或后備存儲(chǔ)器、輔助存儲(chǔ)器,是計(jì)算機(jī)系統(tǒng)用以存儲(chǔ)信息的主要設(shè)備。該類(lèi)設(shè)備存取速度較內(nèi)存慢,但容量比內(nèi)存大得多,相對(duì)價(jià)格也便宜。輸入/輸出設(shè)備:輸入設(shè)備輸出設(shè)備交互式設(shè)備1、I/O設(shè)備的類(lèi)型按傳輸速率分類(lèi)低速設(shè)備:傳輸率每秒幾個(gè)~數(shù)百字節(jié),鍵盤(pán)、鼠標(biāo)中速設(shè)備:傳輸率每秒數(shù)千個(gè)~數(shù)萬(wàn)字節(jié),打印機(jī)高速設(shè)備:傳輸率每秒數(shù)十萬(wàn)~數(shù)兆字節(jié),磁盤(pán)機(jī)、光盤(pán)機(jī)按信息交換的單位分類(lèi)塊設(shè)備:用于存儲(chǔ)信息,基本單位是塊。典型塊設(shè)備是磁盤(pán)。其傳輸速率高,可尋址,I/O系統(tǒng)采用DMA方式。字符設(shè)備:用于數(shù)據(jù)的輸入和輸出?;締挝皇亲址?。傳輸速率低,不可尋址,I/O采用中斷驅(qū)動(dòng)方式。1、I/O設(shè)備的類(lèi)型CPU——控制器——設(shè)備三種信號(hào)線:數(shù)據(jù)信號(hào)線:雙向,有緩存控制信號(hào)線:控制器發(fā)給設(shè)備,要求其完成相關(guān)操作狀態(tài)信號(hào)線:設(shè)備發(fā)給控制器,后者“顯示”2、設(shè)備與控制器之間的接口圖6-3設(shè)備與控制器間的接口6.2.2設(shè)備控制器設(shè)備控制器是CPU與I/O設(shè)備之間的接口。功能:控制I/O設(shè)備,實(shí)現(xiàn)I/O設(shè)備與計(jì)算機(jī)間的數(shù)據(jù)交換在小型和微型機(jī)中,它常采用印刷電路卡插入計(jì)算機(jī)主板上的總線插槽通過(guò)若干接口寄存器或接口緩沖區(qū)與CPU通信設(shè)備控制器是一個(gè)可編址的設(shè)備設(shè)備控制器可分為兩大類(lèi):控制字符設(shè)備的控制器;控制塊設(shè)備的控制器。接收和識(shí)別命令控制寄存器:來(lái)存放接收的命令和參數(shù)命令譯碼器:對(duì)接收的命令進(jìn)行譯碼操作系統(tǒng)將命令寫(xiě)入控制器的控制寄存器(或接口緩沖區(qū))中,以實(shí)現(xiàn)輸入/輸出,并從控制寄存器讀取狀態(tài)信息或結(jié)果信息數(shù)據(jù)交換CPU————控制器(數(shù)據(jù)寄存器)—————設(shè)備標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài)設(shè)備控制器中設(shè)置了“狀態(tài)寄存器”
1、設(shè)備控制器的基本功能
數(shù)據(jù)總線數(shù)據(jù)信號(hào)線地址識(shí)別CPU通過(guò)“地址”與設(shè)備通信,設(shè)備控制器應(yīng)能識(shí)別它所控制的設(shè)備地址以及其各寄存器的地址。配置地址譯碼器I/O指令形式與I/O地址是相互關(guān)聯(lián)的內(nèi)存映像編址(內(nèi)存映像I/O模式)I/O獨(dú)立編址(I/O專用指令)數(shù)據(jù)緩沖用于解決I/O設(shè)備速率低,而CPU和內(nèi)存的速率很高的矛盾差錯(cuò)控制進(jìn)行差錯(cuò)檢測(cè),并向CPU報(bào)告1、設(shè)備控制器的基本功能
設(shè)備控制器與處理機(jī)的接口設(shè)備控制器與設(shè)備的接口I/O邏輯:在其控制下完成與CPU、設(shè)備的通信。2、設(shè)備控制器的組成
圖6-4設(shè)備控制器的組成6.2.3內(nèi)存映像I/O格式:io-storecpu-reg,dev-no,dev-reg
將CPU寄存器的內(nèi)容復(fù)制到控制器寄存器中缺點(diǎn):訪問(wèn)內(nèi)存和訪問(wèn)設(shè)備需要用兩種不同指令。格式:storecpu-reg,k//將CPU寄存器中的內(nèi)容傳送到控制器0的第1個(gè)寄存器opcode將內(nèi)存地址與設(shè)備控制器中寄存器的地址統(tǒng)一編址,用k表示0<=k<=n-1,則為內(nèi)存地址k>=n,為設(shè)備控制器的寄存器地址1、利用特定的I/O指令2、內(nèi)存映像I/OPC上的I/O控制器與其對(duì)應(yīng)的I/O地址6.2.3內(nèi)存映像I/O圖6-5設(shè)備尋址形式6.2.4I/O通道通道:一種特殊的執(zhí)行I/O指令的處理機(jī),與CPU共享內(nèi)存,可以有自己的總線。引入目的:解脫CPU對(duì)I/O的組織、管理,提高CPU與設(shè)備,設(shè)備與設(shè)備之間的并行工作能力。CPU只需發(fā)送I/O命令給通道,通道通過(guò)調(diào)用內(nèi)存中的相應(yīng)通道程序完成任務(wù)。I/O通道是一種特殊的處理機(jī),與一般的處理機(jī)差別指令類(lèi)型單一通道沒(méi)有自己的內(nèi)存1、I/O通道(I/OChannel)設(shè)備的引入2、通道類(lèi)型
1)字節(jié)多路通道(ByteMultiplexorChannel)
圖5-3字節(jié)多路通道的工作原理各子通道以時(shí)間片輪轉(zhuǎn)方式共享通道,適用于低、中速設(shè)備,如打印機(jī)。主通道字節(jié)數(shù)據(jù)流輪詢無(wú)子通道,僅一主通道,某時(shí)間由某設(shè)備獨(dú)占,適于高速設(shè)備,如磁盤(pán),磁帶等。選擇通道在一段時(shí)間內(nèi)只能執(zhí)行一個(gè)通道程序,只允許一臺(tái)設(shè)備進(jìn)行數(shù)據(jù)傳輸當(dāng)這臺(tái)設(shè)備數(shù)據(jù)傳輸完成后,再選擇與通道連接的另一臺(tái)設(shè)備,執(zhí)行相應(yīng)的通道程序通道未共享,利用率低。2、通道類(lèi)型
2)數(shù)組選擇通道(BlockSelectorChannel)2、通道類(lèi)型
3)數(shù)組多路通道(BlockMultiplexorChannel)
子通道不是以時(shí)間片方式,而是“按需分配”,綜合了前面2種通道類(lèi)型的優(yōu)點(diǎn)。結(jié)合了選擇通道傳送速度高和字節(jié)多路通道能進(jìn)行分時(shí)并行操作的優(yōu)點(diǎn)。它先為一臺(tái)設(shè)備執(zhí)行一條通道指令,然后自動(dòng)轉(zhuǎn)接,為另一臺(tái)設(shè)備執(zhí)行一條通道指令主要連接高速設(shè)備對(duì)于連接多臺(tái)磁盤(pán)機(jī)的數(shù)組多路通道,它可以啟動(dòng)它們同時(shí)執(zhí)行移臂定位操作,然后,按序交叉地傳輸一批批數(shù)據(jù)。數(shù)據(jù)多路通道實(shí)際上是對(duì)通道程序采用多道程序設(shè)計(jì)的硬件實(shí)現(xiàn)3、“瓶頸”問(wèn)題
圖6-7單通路I/O系統(tǒng)3、“瓶頸”問(wèn)題
通道“瓶頸”問(wèn)題解決措施:1)提高I/O設(shè)備的獨(dú)立性;2)增加設(shè)備到主機(jī)之間的通路,而不是增加通道。圖6-8多通路I/O系統(tǒng)4、通道工作原理通道相當(dāng)于一個(gè)功能簡(jiǎn)單的處理機(jī),包含通道指令(空操作,讀操作,寫(xiě)操作,控制,轉(zhuǎn)移操作),并可執(zhí)行用這些指令編寫(xiě)的通道程序,向控制器發(fā)出命令,并具有向CPU發(fā)中斷信號(hào)的功能。一旦CPU發(fā)出指令,啟動(dòng)通道,則通道獨(dú)立于CPU工作。通道運(yùn)算控制部件通道地址字CAW:記錄通道程序在內(nèi)存中的地址通道命令字CCW:保存正在執(zhí)行的通道指令通道狀態(tài)字CSW:存放通道執(zhí)行后的返回結(jié)果通道數(shù)據(jù)字CDW:存放傳輸數(shù)據(jù)通道和CPU共用內(nèi)存,通過(guò)周期竊取方式取得4、通道工作原理CPU:執(zhí)行用戶程序,當(dāng)遇到I/O請(qǐng)求時(shí),可根據(jù)該請(qǐng)求生成通道程序放入內(nèi)存(也可事先編好放入內(nèi)存),并將該通道程序的首地址放入CAW中;之后執(zhí)行“啟動(dòng)I/O”指令,啟動(dòng)通道工作通道:接收到“啟動(dòng)I/O”指令后,從CAW中取出通道程序的首地址,并根據(jù)首地址取出第一條指令放入CCW中,同時(shí)向CPU發(fā)回答信號(hào),使CPU可繼續(xù)執(zhí)行其他程序,而通道則開(kāi)始執(zhí)行通道程序,完成傳輸工作通道程序完成實(shí)際I/O,啟動(dòng)I/O設(shè)備,執(zhí)行完畢后,如果還有下一條指令,則繼續(xù)執(zhí)行,否則表示傳輸完成當(dāng)通道傳輸完成最后一條指令時(shí),向CPU發(fā)I/O中斷,并且通道停止工作。CPU接收中斷信號(hào),從CSW中取得有關(guān)信息,決定下一步做什么6.3中斷機(jī)構(gòu)和中斷處理程序6.3.1中斷簡(jiǎn)介
1、中斷和陷入中斷(interrupt)中斷是指CPU對(duì)I/O設(shè)備發(fā)來(lái)的中斷信號(hào)的一種響應(yīng)中斷的處理流程:CPU暫停正在執(zhí)行的程序,保留CPU環(huán)境后,自動(dòng)地轉(zhuǎn)去執(zhí)行該I/O設(shè)備的中斷處理程序。執(zhí)行完后,再回到斷點(diǎn),繼續(xù)執(zhí)行原來(lái)的程序。陷入(trap)陷入:由CPU內(nèi)部事件所引起的中斷陷入的處理流程與中斷類(lèi)似中斷和陷入的主要區(qū)別:中斷信號(hào)源來(lái)自于CPU外部陷入信號(hào)源來(lái)自CPU內(nèi)部2、中斷向量表和中斷優(yōu)先級(jí)中斷向量表中斷向量:是指中斷服務(wù)程序入口地址的偏移量與段基值,一個(gè)中斷向量占據(jù)4字節(jié)空間。每個(gè)中斷向量對(duì)應(yīng)于一個(gè)中斷處理程序。中斷向量表:把所有的中斷向量集中起來(lái),按中斷類(lèi)型號(hào)從小到大的順序存放到存儲(chǔ)器的某一區(qū)域內(nèi),這個(gè)存放中斷向量的存儲(chǔ)區(qū)叫做中斷向量表,即中斷服務(wù)程序入口地址表。中斷優(yōu)先級(jí)中斷優(yōu)先級(jí):為使系統(tǒng)能及時(shí)響應(yīng)并處理發(fā)生的所有中斷,系統(tǒng)根據(jù)引起中斷事件的重要性和緊迫程度,硬件將中斷源分為若干個(gè)級(jí)別,稱作中斷優(yōu)先級(jí)。3、多中斷源的處理方式當(dāng)處理機(jī)正在處理一個(gè)中斷,又來(lái)了一個(gè)新的中斷請(qǐng)求時(shí):屏蔽(禁止)中斷:當(dāng)處理機(jī)正在處理一個(gè)中斷時(shí),對(duì)任何新到的中斷請(qǐng)求都暫時(shí)不予理睬,直到處理機(jī)已經(jīng)完成本次中斷的處理后,處理機(jī)再去檢查是否有中斷發(fā)生。所有中斷都將按順序依次處理。嵌套中斷:當(dāng)同時(shí)有多個(gè)不同優(yōu)先級(jí)的中斷請(qǐng)求時(shí),CPU按照由高到低的順序響應(yīng)。高優(yōu)先級(jí)的中斷請(qǐng)求可以搶占正在運(yùn)行的低優(yōu)先級(jí)中斷的處理機(jī)。當(dāng)同級(jí)中斷同時(shí)到時(shí),則按位響應(yīng)。6.3.2中斷處理程序
中斷處理程序的處理過(guò)程:測(cè)定是否有未響應(yīng)的中斷信號(hào);保護(hù)被中斷進(jìn)程的CPU環(huán)境;轉(zhuǎn)入相應(yīng)的設(shè)備處理程序;中斷處理;恢復(fù)CPU環(huán)境并退出中斷。圖6-10中斷現(xiàn)場(chǎng)保護(hù)示意圖圖6-11中斷處理流程6.4設(shè)備驅(qū)動(dòng)程序6.4設(shè)備驅(qū)動(dòng)程序
設(shè)備驅(qū)動(dòng)程序:又稱設(shè)備處理程序,它是I/O進(jìn)程與設(shè)備控制器之間的通信程序。主要任務(wù):接收上層軟件發(fā)來(lái)的抽象I/O要求,轉(zhuǎn)換為具體要求后,發(fā)送給設(shè)備控制器,啟動(dòng)設(shè)備去執(zhí)行;將由設(shè)備控制發(fā)來(lái)的信號(hào)傳送給上層軟件。接收與設(shè)備無(wú)關(guān)的軟件發(fā)來(lái)的I/O命令和參數(shù),將命令中的抽象要求轉(zhuǎn)換為與設(shè)備相關(guān)的低層操作系統(tǒng)序列;檢查用戶I/O請(qǐng)求的合法性,檢查設(shè)備狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備工作方式;發(fā)出I/O命令。如果設(shè)備空閑,則啟動(dòng)I/O設(shè)備,完成指定I/O操作;如果設(shè)備忙碌,則將請(qǐng)求者的請(qǐng)求掛在設(shè)備隊(duì)列上等待;及時(shí)響應(yīng)設(shè)備中斷請(qǐng)求,轉(zhuǎn)入相應(yīng)的中斷處理程序進(jìn)行處理;對(duì)設(shè)置了通道的計(jì)算機(jī)系統(tǒng),則自動(dòng)構(gòu)成通道程序。1、設(shè)備驅(qū)動(dòng)程序的功能6.4.1設(shè)備驅(qū)動(dòng)程序概述
驅(qū)動(dòng)程序主要是實(shí)現(xiàn)設(shè)備無(wú)關(guān)的軟件和設(shè)備控制器之間通信和轉(zhuǎn)換的程序。驅(qū)動(dòng)程序與設(shè)備控制器、I/O設(shè)備的硬件特性緊密相關(guān),不同類(lèi)型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序。驅(qū)動(dòng)程序與所使用的操作系統(tǒng)也是相關(guān)的。驅(qū)動(dòng)程序與I/O控制方式緊密相關(guān),常用的設(shè)備控制方式是中斷驅(qū)動(dòng)和DMA方式。驅(qū)動(dòng)程序與配件緊密相關(guān),因而其中的一部分必須用匯編語(yǔ)言編寫(xiě)。有很多驅(qū)動(dòng)程序的基本部分固化在ROM中。驅(qū)動(dòng)程序應(yīng)允許重入。一個(gè)正在運(yùn)行的驅(qū)動(dòng)程序會(huì)在上一次調(diào)用完成前被再次調(diào)用。2、設(shè)備驅(qū)動(dòng)程序的特點(diǎn)
設(shè)備處理方式可分為三類(lèi):為每一類(lèi)設(shè)備設(shè)置一個(gè)進(jìn)程,專門(mén)用于執(zhí)行這類(lèi)設(shè)備的I/O操作。在整個(gè)系統(tǒng)中設(shè)置一個(gè)I/O進(jìn)程,專門(mén)用于執(zhí)行系統(tǒng)中所有各類(lèi)設(shè)備的I/O操作。不設(shè)置專門(mén)的設(shè)備處理進(jìn)程,而只為各類(lèi)設(shè)備設(shè)置相應(yīng)的設(shè)備處理程序(模塊),供用戶進(jìn)程或系統(tǒng)進(jìn)程調(diào)用。3、設(shè)備處理方式設(shè)備驅(qū)動(dòng)程序的主要任務(wù):完成必要的準(zhǔn)備工作、啟動(dòng)指定設(shè)備,并完成止層指定的I/O工作。處理過(guò)程:將抽象要求轉(zhuǎn)換為具體要求;檢查I/O請(qǐng)求的合法性;讀出和檢查設(shè)備的狀態(tài);傳送必要的參數(shù);工作方式的設(shè)置;啟動(dòng)I/O設(shè)備。6.4.2設(shè)備驅(qū)動(dòng)程序的處理過(guò)程
6.4.3對(duì)I/O設(shè)備的控制方式
四個(gè)階段:輪詢的可編程I/O方式——中斷的可編程I/O方式——DMA控制方式——通道控制方式。趨勢(shì):提高CPU與I/O設(shè)備的并行度。輪詢方式:CPU需花代價(jià)不斷測(cè)試I/O設(shè)備狀態(tài),CPU資源浪費(fèi)極大。例:99.9ms+0.1ms=100ms99.9ms在忙等向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)檢查狀態(tài)?從I/O控制器中讀入字向內(nèi)存中寫(xiě)入字傳送完畢?出錯(cuò)處理CPU→I/OI/O→CPU未就緒未完完成執(zhí)行下一條I/O指令I(lǐng)/O→CPUCPU→RAM就緒1、輪詢的可編程I/O方式向I/O發(fā)命令——返回——執(zhí)行其它任務(wù)。I/O中斷產(chǎn)生——CPU轉(zhuǎn)相應(yīng)中斷處理程序。如:讀數(shù)據(jù),讀完后以中斷方式通知CPU,CPU完成數(shù)據(jù)從I/O——內(nèi)存向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)檢查狀態(tài)?從I/O控制器中讀入字向內(nèi)存中寫(xiě)入字傳送完畢?CPU→I/OCPU做其它事中斷I/O→CPU出錯(cuò)就緒I/O→CPUCPU→RAM
未完完成執(zhí)行下一條I/O指令2、中斷的可編程I/O方式DMA方式的引入中斷I/O,CPU“字節(jié)”干預(yù)一次,即每“字節(jié)”傳送產(chǎn)生一次中斷。DMA:由DMA控制器直接控制總線傳遞數(shù)據(jù)塊。DMA控制器完成從I/O——內(nèi)存。DMA方式的特點(diǎn)數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊,即在CPU與I/O設(shè)備之間,每次傳送至少一個(gè)數(shù)據(jù)塊;所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存的,或者相反;僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開(kāi)始和結(jié)束時(shí),才需CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完成的。3、直接存儲(chǔ)器訪問(wèn)控制方式DMA控制器的組成主機(jī)與DMA控制器的接口、I/O控制邏輯、DMA控制器與塊設(shè)備的接口圖6-14DMA控制器的組成3、直接存儲(chǔ)器訪問(wèn)控制方式DMA工作過(guò)程圖6-12DMA方式的工作流程3、直接存儲(chǔ)器訪問(wèn)控制方式DMA方式與中斷方式的主要區(qū)別中斷方式是在數(shù)據(jù)緩沖寄存區(qū)滿后,發(fā)中斷請(qǐng)求,CPU進(jìn)行中斷處理;DMA方式則是在所要求傳送的數(shù)據(jù)塊全部傳送結(jié)束時(shí)要求CPU進(jìn)行中斷處理,大大減少了CPU進(jìn)行中斷處理的次數(shù);中斷方式的數(shù)據(jù)傳送是由CPU控制完成的,而DMA方式則是在DMA控制器的控制下不經(jīng)過(guò)CPU控制完成的3、直接存儲(chǔ)器訪問(wèn)控制方式I/O通道控制方式的引入DMA方式:對(duì)多離散塊的讀取仍需要多次中斷通道方式:CPU只需給出通道程序首址。要訪問(wèn)I/O設(shè)備后,通道程序就可完成一組塊操作
4、I/O通道控制方式通道是通過(guò)執(zhí)行通道程序,并與設(shè)備控制器來(lái)共同實(shí)現(xiàn)對(duì)I/O設(shè)備的控制。通道程序是由一系列的通道指令(或稱為通道命令)所構(gòu)成。通道指令與一般的機(jī)器指令不同,在每條指令中包含的信息較多,有操作碼、內(nèi)存地址、計(jì)數(shù)(讀或?qū)憯?shù)據(jù)的字節(jié)數(shù))、通道程序結(jié)束位P和記錄結(jié)束標(biāo)志R。通道程序操作PR計(jì)數(shù)內(nèi)存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE112507206.5與設(shè)備無(wú)關(guān)的I/O軟件6.5.1與設(shè)備無(wú)關(guān)軟件的基本概念設(shè)備獨(dú)立性:即設(shè)備無(wú)關(guān)性,指應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備早期操作系統(tǒng)采用這種方式,應(yīng)用程序直接使用設(shè)備的物理名稱缺點(diǎn):不靈活、不方便,不利于提高設(shè)備的利用率為實(shí)現(xiàn)與設(shè)備無(wú)關(guān)性,引入邏輯設(shè)備和物理設(shè)備的概念邏輯設(shè)備名:抽象的設(shè)備名,不指定具體的某臺(tái)物理設(shè)備I/O重定向:指無(wú)須改變應(yīng)用程序,就可以更換用于I/O操作的設(shè)備。1、以物理設(shè)備名使用設(shè)備2、引入邏輯設(shè)備名系統(tǒng)只能識(shí)別物理設(shè)備名,所以系統(tǒng)必須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物理設(shè)備名稱的功能。邏輯設(shè)備表(LUT)分配流程:進(jìn)程用邏輯設(shè)備名申請(qǐng)?jiān)O(shè)備系統(tǒng)為邏輯設(shè)備分配一臺(tái)具體的物理設(shè)備在LUT上建立一個(gè)表目通過(guò)LUT得到物理設(shè)備及其driver入口。邏輯設(shè)備名物理設(shè)備名Driver入口地址3、邏輯設(shè)備名稱到物理設(shè)備名稱的轉(zhuǎn)換LUT的配置整個(gè)系統(tǒng)一張LUT表:要求:邏輯名不重復(fù),(一般用于單用戶系統(tǒng))每個(gè)用戶一張LUT表??芍孛?可限制用戶對(duì)某些設(shè)備的使用圖6-19邏輯設(shè)備表3、邏輯設(shè)備名稱到物理設(shè)備名稱的轉(zhuǎn)換設(shè)備獨(dú)立性軟件:在驅(qū)動(dòng)程序之上設(shè)置的一層軟件,用于實(shí)現(xiàn)所有設(shè)備都需要的功能,并且向用戶級(jí)軟件提供一個(gè)統(tǒng)一的接口,具體包括:1、設(shè)備驅(qū)動(dòng)程序的統(tǒng)一接口每個(gè)設(shè)備驅(qū)動(dòng)程序與OS之間都有相同的接口將邏輯設(shè)備名與相應(yīng)的物理設(shè)備驅(qū)動(dòng)程序入口關(guān)聯(lián)對(duì)設(shè)備進(jìn)行保護(hù),禁止用戶直接訪問(wèn)設(shè)備2、緩沖管理為了緩解CPU和I/O設(shè)備之間速度不匹配的矛盾,提高CPU的利用率6.5.2與設(shè)備無(wú)關(guān)的軟件3、差錯(cuò)控制暫時(shí)性錯(cuò)誤:因發(fā)生暫時(shí)性事件引起的,可以通過(guò)重試操作來(lái)糾正。一般設(shè)備出現(xiàn)故障,主要由設(shè)備驅(qū)動(dòng)程序處理,而設(shè)備獨(dú)立性軟件只處理那些設(shè)備驅(qū)動(dòng)程序無(wú)法處理的錯(cuò)誤。持久性錯(cuò)誤:由持久性故障引起。4、對(duì)獨(dú)占設(shè)備的分配與回收由系統(tǒng)統(tǒng)一分配獨(dú)占設(shè)備。5、獨(dú)立于設(shè)備的邏輯數(shù)據(jù)塊設(shè)備獨(dú)立性軟件能夠隱藏不同設(shè)備的差異性而被邏輯設(shè)備使用,并向高層軟件提供大小統(tǒng)一的邏輯數(shù)據(jù)塊。6.5.3設(shè)備分配
包括:對(duì)設(shè)備、設(shè)備控制器、通道的分配當(dāng)某進(jìn)程向系統(tǒng)提出I/O請(qǐng)求時(shí),設(shè)備分配程序按一定策略分配設(shè)備、控制器和通道,形成一條數(shù)據(jù)傳輸通路,以供主機(jī)和設(shè)備間信息交換設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表(DCT)、控制器控制表(COCT),通道表(CHCT),系統(tǒng)設(shè)備表(SDT)系統(tǒng)為每一個(gè)設(shè)備都配置了一張?jiān)O(shè)備控制表,用于記錄本設(shè)備的情況。圖6-17設(shè)備控制表
1、設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)1)設(shè)備控制表DCT2)控制器控制表、通道控制表和系統(tǒng)設(shè)備表圖6-18COCT、CHCT和SDT
表目1……表目i……設(shè)備類(lèi)型設(shè)備標(biāo)識(shí)符進(jìn)程標(biāo)識(shí)符DCT表指針驅(qū)動(dòng)程序入口地址表目1……表目i……設(shè)備類(lèi)型設(shè)備標(biāo)識(shí)符設(shè)備狀態(tài)(等待/不等待,忙/閑)COCT表指針重復(fù)執(zhí)行次數(shù)或時(shí)間設(shè)備隊(duì)列的隊(duì)首指針設(shè)備隊(duì)列的隊(duì)尾指針表目1……表目i……控制器標(biāo)識(shí)符控制器狀態(tài)(忙/閑)CHCT表指針控制器隊(duì)列的隊(duì)首指針控制器隊(duì)列的隊(duì)尾指針表目1……表目i……通道標(biāo)識(shí)符通道狀態(tài)(忙/閑)COCT表指針通道隊(duì)列的隊(duì)首指針通道隊(duì)列的隊(duì)尾指針DCT設(shè)備控制表SDT系統(tǒng)設(shè)備表DCT集合
SDT集合
COCT控制器控制表CHCT通道控制表CHCT集合COCT集合設(shè)備分配的數(shù)據(jù)結(jié)構(gòu)圖2、設(shè)備分配時(shí)應(yīng)考慮的因素分配設(shè)備考慮的因素:I/O設(shè)備的固有屬性獨(dú)享設(shè)備:排它性分配;設(shè)備得不到充分利用,控制不好可能死鎖。共享設(shè)備:注意調(diào)度的合理性虛擬設(shè)備:需要引入SPOOLing技術(shù);虛擬設(shè)備屬于邏輯設(shè)備。I/O設(shè)備的分配算法FCFS高優(yōu)先級(jí)2、設(shè)備分配時(shí)應(yīng)考慮的因素分配設(shè)備考慮的因素:設(shè)備分配的安全性安全分配方式:
每進(jìn)程獲得一I/O后,即block,直到其I/O完成,運(yùn)行時(shí)不保持任何資源。優(yōu)點(diǎn):安全缺點(diǎn):進(jìn)程進(jìn)展緩慢,CPU和I/O設(shè)備之間是串行的不安全分配方式:進(jìn)程發(fā)出I/O請(qǐng)求后,仍在繼續(xù)運(yùn)行,需要時(shí)又可發(fā)出第二個(gè)I/O請(qǐng)求。僅當(dāng)進(jìn)程請(qǐng)求的設(shè)備已被另一個(gè)進(jìn)程占用時(shí),才被阻塞。優(yōu)點(diǎn):一個(gè)進(jìn)程可同時(shí)操作多個(gè)設(shè)備缺點(diǎn):分配不安全,需安全性計(jì)算3、獨(dú)占設(shè)備的分配程序分配設(shè)備(SDT->DCT)分配控制器(DCT->COCT)分配通道(COCT->CHCT)1)基本的設(shè)備分配程序進(jìn)程P提出所需的I/O設(shè)備根據(jù)物理設(shè)備名,從SDT中找出該設(shè)備的DCT由DCT的設(shè)備狀態(tài)字段,檢查該設(shè)備是否忙?將該進(jìn)程的PCB插入到該設(shè)備的等待隊(duì)列中檢查本次設(shè)備分配是否安全?將此設(shè)備分配給該進(jìn)程從其DCT中找出與該設(shè)備連接的控制器的COCT,檢查該控制器是否忙?將該進(jìn)程的PCB插入到該控制器的的等待隊(duì)列中將該控制器分配給進(jìn)程從COCT中找到與該控制器連接的通道的CHCT,檢查該通道是否忙?將該進(jìn)程的PCB插入到該通道的的等待隊(duì)列中將該通道分配給進(jìn)程至此,設(shè)備、控制器和通道三者都已分配成功啟動(dòng)I/O設(shè)備,進(jìn)行具體的I/O操作不忙不忙不忙忙忙安全不安全忙單通道系統(tǒng)的設(shè)備分配流程2)設(shè)備分配程序的改進(jìn)基本設(shè)備分配程序的缺點(diǎn):進(jìn)程是以物理設(shè)備名來(lái)提出I/O請(qǐng)求的;采用的是單通路的I/O系統(tǒng)結(jié)構(gòu),容易產(chǎn)生“瓶頸”現(xiàn)象。設(shè)備分配程序的改進(jìn)增加設(shè)備的獨(dú)立性考慮多通路情況3、獨(dú)占設(shè)備的分配程序6.6用戶層的I/O軟件6.6用戶層的I/O軟件
大部分I/O軟件都在操作系統(tǒng)內(nèi)部,但仍有一小部分在用戶層,包括:用戶層軟件必須通過(guò)一組系統(tǒng)調(diào)用(庫(kù)函數(shù)的調(diào)用)來(lái)取得操作系統(tǒng)服務(wù)。操作系統(tǒng)中有一部分運(yùn)行在內(nèi)核之外的程序,也是歸屬于I/O系統(tǒng),如Spooling系統(tǒng)、網(wǎng)絡(luò)傳輸文件時(shí)的守護(hù)進(jìn)程。6.6.1系統(tǒng)調(diào)用與庫(kù)函數(shù)系統(tǒng)調(diào)用:一組由操作系統(tǒng)內(nèi)核提供的,為運(yùn)行在用戶態(tài)的應(yīng)用程序提供操作系統(tǒng)服務(wù)的例程。系統(tǒng)調(diào)用是應(yīng)用程序取得OS所有服務(wù)的唯一途徑。1、系統(tǒng)調(diào)用圖6-20系統(tǒng)調(diào)用的執(zhí)行過(guò)程內(nèi)核提供了OS的基本功能,為了函數(shù)擴(kuò)展了OS內(nèi)核,使用用戶能方便地取得OS的服務(wù)。2、庫(kù)函數(shù)6.6.2假脫機(jī)(SPOOLing)系統(tǒng)
脫機(jī)輸入輸出技術(shù):為緩和CPU與I/O設(shè)備間速度不匹配的矛盾提出來(lái)的利用外圍控制機(jī),在不需要CPU的控制下完成低速I(mǎi)/O設(shè)備與高速磁盤(pán)之間的數(shù)據(jù)傳輸。假脫機(jī)技術(shù):是指在多道程序的環(huán)境下,利用多道程序中的一道或兩道來(lái)模擬外圍控制機(jī),從而在聯(lián)機(jī)的條件下實(shí)現(xiàn)脫機(jī)I/O功能的技術(shù),也稱為SPOOLing技術(shù)。解決問(wèn)題:在進(jìn)程所需物理設(shè)備不存在或被占用時(shí)使用該設(shè)備
1、假脫機(jī)技術(shù)2、SPOOLing的組成圖6-21(a)SPOOLing系統(tǒng)的組成SPOOLing技術(shù)是對(duì)脫機(jī)輸入/輸出系統(tǒng)的模擬。SPOOLing系統(tǒng)是建立在通道技術(shù)和多道程序技術(shù)的基礎(chǔ)上,以高速隨機(jī)外存為后援存儲(chǔ)器。2、SPOOLing的組成輸入井模擬脫機(jī)輸入時(shí)的磁盤(pán),用于收容I/O設(shè)備輸入的數(shù)據(jù);輸出井模擬脫機(jī)輸出時(shí)的磁盤(pán),用于收容用戶程序的輸出數(shù)據(jù)。井文件:輸入/輸出井中的數(shù)據(jù)以文件的形式組織管理,稱為~,一個(gè)文件僅存放一個(gè)進(jìn)程的輸入/輸出數(shù)據(jù),所有文件鏈成隊(duì)列圖6-21(b)SPOOLing的工作原理輸入緩沖區(qū)用于暫存由輸入設(shè)備傳送的數(shù)據(jù),之后再傳送到輸入井;輸出緩沖區(qū)用于暫存由輸出井傳送的數(shù)據(jù),之后再傳送到輸出設(shè)備。輸入進(jìn)程:用于模擬脫機(jī)輸入時(shí)的外圍控制機(jī),將用戶要求的數(shù)據(jù)從輸入設(shè)備傳送到輸入緩沖區(qū),再存放到輸入井。輸出進(jìn)程:用于模擬脫機(jī)輸出時(shí)的外圍控制機(jī),把用戶要求輸入的數(shù)據(jù)從內(nèi)存?zhèn)魉筒⒋娣诺捷敵鼍>芾沓绦颍河糜诳刂谱鳂I(yè)與磁盤(pán)井之間信息的交換,從輸入井讀取信息或?qū)⑿畔⑤敵鲋凛敵鼍?、SPOOLing系統(tǒng)的特點(diǎn)
提高了I/O的速度。(2)將獨(dú)占設(shè)備改造為共享設(shè)備。(3)實(shí)現(xiàn)了虛擬設(shè)備功能。4、假脫機(jī)打印機(jī)系統(tǒng)
SPOOLing技術(shù)將獨(dú)占設(shè)備改造成為共享設(shè)備:圖6-21(c)假脫機(jī)打印機(jī)系統(tǒng)的組成磁盤(pán)緩沖區(qū)磁盤(pán)緩沖區(qū):用于暫存用戶程序的輸出。打印緩沖區(qū):用于暫存從磁盤(pán)緩沖區(qū)送來(lái)的數(shù)據(jù),以后再傳送給打印機(jī)設(shè)備打印。假脫機(jī)管理進(jìn)程:為每個(gè)要求打印的用戶數(shù)據(jù)建立一個(gè)假脫機(jī)文件,并把它放入到假脫機(jī)文件隊(duì)列中。假脫機(jī)打印進(jìn)程:依次從假脫機(jī)文件隊(duì)列中取文件進(jìn)行打印。4、假脫機(jī)打印機(jī)系統(tǒng)
假脫機(jī)管理進(jìn)程完成的工作:由輸出進(jìn)程在輸出井中為之申請(qǐng)一個(gè)空閑磁盤(pán)塊區(qū),并將要打印的數(shù)據(jù)送入其中;輸出進(jìn)程再為用戶進(jìn)程申請(qǐng)一張空白的用戶請(qǐng)求打印表,并將用戶的打印要求填入其中,再將該表掛到請(qǐng)求打印隊(duì)列上。假脫機(jī)打印進(jìn)程完成的工作:當(dāng)打印機(jī)空閑時(shí),從假脫機(jī)文件隊(duì)列的隊(duì)首摘取一張請(qǐng)求打印表,然后根據(jù)表中的要求將要打印的數(shù)據(jù)由輸出井傳送到內(nèi)存緩沖區(qū),再交付打印機(jī)進(jìn)行打印。假脫機(jī)文件隊(duì)列為空時(shí),假脫機(jī)打印進(jìn)程自我阻塞。5、守護(hù)進(jìn)程假若進(jìn)程打開(kāi)打印機(jī)特殊文件后幾小時(shí)內(nèi)無(wú)所事事,其他進(jìn)程什么都打印不了!解決方案:創(chuàng)建守護(hù)(精靈)進(jìn)程(daemon)、SPOOLing目錄守護(hù)進(jìn)程負(fù)責(zé)為用戶在磁盤(pán)緩沖區(qū)中申請(qǐng)一個(gè)空閑盤(pán)塊,并將要打印的數(shù)據(jù)送入其中,將該盤(pán)塊的首址返回給請(qǐng)求進(jìn)程每個(gè)要求打印的進(jìn)程首先生成要打印的文件,放入假脫機(jī)文件隊(duì)列(SPOOLing目錄)中守護(hù)進(jìn)程:是唯一獲準(zhǔn)使用打印機(jī)的進(jìn)程,它還負(fù)責(zé)打印SPOOLing目錄里的文件通過(guò)禁止對(duì)特殊文件的直接使用→提高使用效率5、守護(hù)進(jìn)程SPOOLing技術(shù)今天仍被廣泛使用網(wǎng)絡(luò)文件傳送先把文件送到網(wǎng)絡(luò)SPOOLing目錄,然后網(wǎng)絡(luò)守護(hù)進(jìn)程把它取出并傳遞到目標(biāo)地址Internet電子郵件系統(tǒng)為了寄郵,調(diào)用電子郵件程序待發(fā)信存在SPOOLing中供以后傳輸注意:SPOOLing只提高設(shè)備利用率,縮短用戶程序執(zhí)行時(shí)間,并不提高CPU利用率6.7緩沖管理6.7.1緩沖的引入凡是數(shù)據(jù)到達(dá)和離去速度不匹配的地方均可采用緩沖技術(shù)1、緩和CPU和I/O設(shè)備間速度不匹配的矛盾。如:計(jì)算——打印buffer——打印2、減少對(duì)CPU的中斷頻率如:buffer越大,“buffer滿”信號(hào)發(fā)生頻率越低。3、解決數(shù)據(jù)粒度不匹配的問(wèn)題4、提高CPU和I/O并行性
圖5-10利用緩沖寄存器實(shí)現(xiàn)緩沖CPU每100us中斷一次CPU每800us中斷一次緩沖區(qū)設(shè)置硬緩沖:由硬件寄存器實(shí)現(xiàn)(例如:設(shè)備中設(shè)置的緩沖區(qū))軟緩沖:在內(nèi)存中開(kāi)辟一個(gè)空間,用作緩沖區(qū)緩沖區(qū)管理單緩沖雙緩沖循環(huán)緩沖緩沖池6.7.2單緩沖和雙緩沖最簡(jiǎn)單的一種緩沖形式當(dāng)一個(gè)用戶進(jìn)程發(fā)出I/O請(qǐng)求時(shí),操作系統(tǒng)便在主存中為之分配一緩沖區(qū),可以實(shí)現(xiàn)預(yù)讀和滯后寫(xiě)塊設(shè)備輸入時(shí),系統(tǒng)對(duì)每一整塊數(shù)據(jù)的處理時(shí)間=max(C,T)+M。如果無(wú)緩沖區(qū),則處理時(shí)間為T(mén)+C1、單緩沖(SingleBuffer)
圖6-23單緩沖工作示意圖
平行2、雙緩沖(DoubleBuffer)圖6-24雙緩沖工作示意圖可以實(shí)現(xiàn)用戶數(shù)據(jù)區(qū)—緩沖區(qū)之間交換數(shù)據(jù)和緩沖區(qū)—外設(shè)之間交換數(shù)據(jù)的并行,加快I/O速度,提高設(shè)備利用率系統(tǒng)處理一塊數(shù)據(jù)的時(shí)間可表示為:max(C,T)CT圖6-25雙機(jī)通信時(shí)緩沖區(qū)的設(shè)置6.7.3環(huán)形緩沖區(qū)多個(gè)緩沖區(qū),每個(gè)緩沖區(qū)的大小相同。緩沖區(qū)類(lèi)型有:空緩沖區(qū)R、滿緩沖區(qū)G、正在使用緩沖區(qū)C多個(gè)指針:Nexti、Nextg、Current1、環(huán)形緩沖區(qū)的組成圖6-26環(huán)形緩沖區(qū)2、環(huán)形緩沖區(qū)的使用
nextg:指示下一個(gè)應(yīng)取數(shù)據(jù)的bufnexti:指示下一個(gè)空buf.Getbuf:取nextg對(duì)應(yīng)緩沖區(qū)提供使用,將Nextg置為空,Nextg=(Nextg+1)ModN將Nexti對(duì)應(yīng)緩沖區(qū)提供使用,將Nexti置為滿,Nexti=(Nexti+1)ModNReleasebuf:若C空,則改為R;若C滿,則改為G;3、進(jìn)程之間的同步
Nexti追上Nextg:表示輸入速度>輸出速度,全部buf滿,這時(shí)輸入進(jìn)程阻塞Nextg追上Nexti:輸入速度<輸出速度,全部buf空,這時(shí)輸出進(jìn)程阻塞。6.7.4緩沖池(BufferPool)
問(wèn)題:當(dāng)系統(tǒng)配置較多的設(shè)備時(shí),使用專用緩沖區(qū)就要消耗大量的內(nèi)存空間,且其利用率不高。解決:為了提高緩沖區(qū)的利用率,目前廣泛使用公用緩沖池,池中的緩沖區(qū)可供多個(gè)進(jìn)程共享。3個(gè)隊(duì)列:空緩沖隊(duì)列emq輸入隊(duì)列inq輸出隊(duì)列outq四個(gè)工作緩沖區(qū):hin:收容輸入數(shù)據(jù)sin:提取輸入數(shù)據(jù)hout:收容輸出數(shù)據(jù)sout:提取輸出數(shù)據(jù)1、緩沖池的組成2、Getbuf過(guò)程和Putbuf過(guò)程voidGetbuf(unsignedtype){
wait(RS(type));
wait(MS(type));B(number)=Takebuf(type);
signal(MS(type));}voidPutbuf(type,number){
wait(MS(type));Addbuf(type,number);
signal(MS(type));
signal(RS(type));}MS(type):用于互斥訪問(wèn)緩沖池隊(duì)列的互斥信號(hào)量RS(type):用于保證進(jìn)程同步使用緩沖區(qū)的資源信號(hào)量Takebuf(type):用于從type所指示的隊(duì)列的隊(duì)首摘下一個(gè)緩沖區(qū)Addbuf(type,number):用于將由參數(shù)number所指示的緩沖區(qū)掛在type隊(duì)列上3、緩沖區(qū)的工作方式hin:getbuf(emq);數(shù)據(jù)裝入;putbuf(inq,hin)sin:getbuf(inq);數(shù)據(jù)提??;putbuf(emq,sin)hout:getbuf(emq);數(shù)據(jù)裝入;putbuf(outq,hout)sout:getbuf(outq);數(shù)據(jù)提??;putbuf(emq,sout)6.8磁盤(pán)存儲(chǔ)器的性能和調(diào)度6.8磁盤(pán)存儲(chǔ)器的性能和調(diào)度世界上第一塊硬盤(pán)是IBM的System305,產(chǎn)于1956年,用于RAMAC隨機(jī)計(jì)算及控制存取方式存儲(chǔ)數(shù)據(jù)。整個(gè)硬盤(pán)需要50個(gè)直徑為24英寸表面涂有磁漿的盤(pán)片。這個(gè)硬盤(pán)的容量?jī)H為5MB,重達(dá)1噸。磁盤(pán)的發(fā)展史RAMAC磁盤(pán)的發(fā)展史70年代,IBM3340存儲(chǔ)系統(tǒng),每平方英寸存儲(chǔ)1.7MB的數(shù)據(jù),租賃價(jià)值為7.81美元每兆,這個(gè)價(jià)格比當(dāng)時(shí)汽油的價(jià)格還貴38%磁盤(pán)的發(fā)展史1971年,IBM開(kāi)始采用一種名叫Merlin的技術(shù)生產(chǎn)硬盤(pán),這種技術(shù)據(jù)稱能使硬盤(pán)頭更好地在盤(pán)片上索引。磁盤(pán)的發(fā)展史1979年,IBM發(fā)明了ThinFilm磁頭,使硬盤(pán)的數(shù)據(jù)定位更加準(zhǔn)確,因此使得硬盤(pán)的密度大幅提升。磁盤(pán)的發(fā)展史1982年,日立發(fā)布了全球首款容量超過(guò)1GB的硬盤(pán),它擁有10片14英寸盤(pán)片,兩個(gè)讀寫(xiě)磁頭。磁盤(pán)的發(fā)展史1991年推出的2.5英寸的Tanba-1硬盤(pán),它據(jù)有63MB存儲(chǔ)容量。目前這種2.5英寸硬盤(pán)仍然在筆記本電腦中普遍應(yīng)用,只不過(guò)如今的容量已經(jīng)達(dá)到100GB。磁盤(pán)的發(fā)展史這款直徑僅1英寸的硬盤(pán)是由IBM在1999年發(fā)明的,不過(guò)當(dāng)時(shí)并沒(méi)有找到廣泛應(yīng)用的領(lǐng)域,一直到蘋(píng)果MP3播放機(jī)iPobMini推出后它才得以進(jìn)行大眾市場(chǎng)。磁盤(pán)的發(fā)展史日立Microdrive,其直徑已經(jīng)從1英寸縮小至0.85英寸。磁盤(pán)的發(fā)展史法國(guó)科學(xué)家阿爾貝·費(fèi)爾和德國(guó)科學(xué)家彼得·格林貝格爾因發(fā)現(xiàn)巨磁電阻效應(yīng)而榮獲2007年諾貝爾物理學(xué)獎(jiǎng)。據(jù)悉,巨磁電阻效應(yīng)相關(guān)技術(shù)被用于讀取硬盤(pán)中數(shù)據(jù),這項(xiàng)技術(shù)是最近幾年硬盤(pán)小型化實(shí)現(xiàn)過(guò)程中的關(guān)鍵。1997年,第一個(gè)基于“巨磁電阻”效應(yīng)的數(shù)據(jù)讀出頭問(wèn)世。磁盤(pán)的發(fā)展史6.8.1磁盤(pán)性能簡(jiǎn)述
數(shù)據(jù)的組織磁盤(pán)設(shè)備可包含一個(gè)或多個(gè)盤(pán)片,每片分兩面,每面可分成若干條磁道(500-2000),每條磁道上可存儲(chǔ)相同數(shù)目的二進(jìn)制位。每條磁道又分成若干扇區(qū)(10-100),每個(gè)扇區(qū)的大小相當(dāng)于一個(gè)盤(pán)塊。每個(gè)扇區(qū)包括兩個(gè)字段:標(biāo)識(shí)符字段數(shù)據(jù)字段1、數(shù)據(jù)的組織和格式
磁道扇區(qū)圖6-28磁盤(pán)的結(jié)構(gòu)和布局(a)磁盤(pán)驅(qū)動(dòng)器結(jié)構(gòu)(b)磁盤(pán)的數(shù)據(jù)布局Aplatterfroma5.25“harddisk,with20concentrictracksdrawn
overthesurface.Eachtrackisdividedinto16imaginarysectors.圖6-29磁盤(pán)的格式化數(shù)據(jù)的格式Synch:具有特定的位圖像,作為該字段的分界符;Track:磁道號(hào)Head:磁頭號(hào)Sector:扇區(qū)號(hào)CRC:段校驗(yàn)1、數(shù)據(jù)的組織和格式
Capacity=(#bytes/sector)×(avg.#sectors/track)× (#tracks/surface)×(#surfaces/platter)× (#platters/disk)Example:512bytes/sector300sectors/track(onaverage)20,000tracks/surface2surfaces/platter5platters/diskCapacity=512×300×20000×2×5=30,720,000,000=30.72GB
計(jì)算磁盤(pán)容量固定頭磁盤(pán)在每條磁道上都有一個(gè)讀/寫(xiě)磁頭主要用于大容量磁盤(pán)上移動(dòng)頭磁盤(pán)每一個(gè)盤(pán)面僅配有一個(gè)磁頭,且能移動(dòng)以進(jìn)行尋道結(jié)構(gòu)簡(jiǎn)單,但只能進(jìn)行串行讀/寫(xiě),I/O速度慢廣泛用于中小型磁盤(pán)設(shè)備中2.磁盤(pán)的類(lèi)型
DiskOperation(Multi-PlatterView)
armread/writeheadsmoveinunisonfromcylindertocylinderspindle磁盤(pán)訪問(wèn)時(shí)間尋道時(shí)間Ts
把磁臂(磁頭)從當(dāng)前位置移動(dòng)到指定磁道上所經(jīng)歷的時(shí)間旋轉(zhuǎn)延遲時(shí)間Tr指定扇區(qū)旋轉(zhuǎn)到磁頭下面所需的時(shí)間傳輸時(shí)間Tt把數(shù)據(jù)從磁盤(pán)讀出,或向磁盤(pán)寫(xiě)入數(shù)據(jù)所經(jīng)歷的時(shí)間3、磁盤(pán)訪問(wèn)時(shí)間
Ts是啟動(dòng)磁盤(pán)的時(shí)間S與磁頭移動(dòng)n條磁道所花費(fèi)時(shí)間之和。
Ts=m×n+S其中:m是一常數(shù),與磁盤(pán)驅(qū)動(dòng)器的速度有關(guān),一般磁盤(pán)m=0.2,高速磁盤(pán)m≦0.1,磁盤(pán)啟動(dòng)時(shí)間約2ms訪問(wèn)時(shí)間
Ta=Ts+1/2r+b/rNTr=1/2rr為磁盤(pán)每秒鐘的轉(zhuǎn)數(shù)硬盤(pán):Tr=8.3ms(轉(zhuǎn)速3600r/min)軟盤(pán):Tr=50-100msTt的大小與每次所讀/寫(xiě)的字節(jié)數(shù)b和旋轉(zhuǎn)速度有關(guān):
Tt=b/rN其中:r為磁盤(pán)旋轉(zhuǎn)速度N為一條磁道上的字節(jié)數(shù)當(dāng)一次讀寫(xiě)的字節(jié)等于半條磁道的字節(jié)時(shí),Tt=Tr舉例:一個(gè)硬盤(pán)的扇區(qū)長(zhǎng)度為512
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度三人合伙開(kāi)展物流倉(cāng)儲(chǔ)服務(wù)合同
- 2024年店鋪分割財(cái)產(chǎn)分配協(xié)議
- 2024年廢窯廠坑塘土地租賃協(xié)議
- 2024年度0架AC3A直升機(jī)購(gòu)銷(xiāo)協(xié)議
- 2024年度煤炭買(mǎi)賣(mài)合同(長(zhǎng)協(xié))
- 2024水電安裝勞務(wù)分包合同范本
- 2024年度云計(jì)算服務(wù)與技術(shù)研發(fā)合同
- 2024年度新能源汽車(chē)銷(xiāo)售與服務(wù)分包合同
- 2024購(gòu)買(mǎi)車(chē)輛合同范本
- 2024年度智能家居解決方案合同
- 2024至2030年中國(guó)巖土工程市場(chǎng)深度分析及發(fā)展趨勢(shì)研究報(bào)告
- 新版高血壓病人的護(hù)理培訓(xùn)課件
- 醫(yī)院等級(jí)創(chuàng)建工作匯報(bào)
- 2024年江西省公務(wù)員錄用考試《行測(cè)》題(網(wǎng)友回憶版)(題目及答案解析)
- VDA6.3基礎(chǔ)培訓(xùn)考核測(cè)試卷附答案
- 第01講 正數(shù)和負(fù)數(shù)、有理數(shù)-人教版新七年級(jí)《數(shù)學(xué)》暑假自學(xué)提升講義(解析版)
- 信息系統(tǒng)部署與運(yùn)維-題庫(kù)帶答案
- 婚姻心理學(xué)解讀包含內(nèi)容
- DZ/T 0462.3-2023 礦產(chǎn)資源“三率”指標(biāo)要求 第3部分:鐵、錳、鉻、釩、鈦(正式版)
- 備戰(zhàn)2024年高考英語(yǔ)考試易錯(cuò)點(diǎn)12 名詞性從句(4大陷阱)(解析版)
- 公務(wù)員歷史常識(shí)100題及一套完整答案
評(píng)論
0/150
提交評(píng)論