操作系統(tǒng)-05輸入輸出課件_第1頁
操作系統(tǒng)-05輸入輸出課件_第2頁
操作系統(tǒng)-05輸入輸出課件_第3頁
操作系統(tǒng)-05輸入輸出課件_第4頁
操作系統(tǒng)-05輸入輸出課件_第5頁
已閱讀5頁,還剩119頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

輸入/輸出第5章5.1I/O硬件原理5.2I/O軟件原理5.3I/O軟件層次5.4硬盤5.5時鐘1輸入/輸出第5章5.1I/O硬件原理1I/O設(shè)備分類與人進(jìn)行交互用于和用戶進(jìn)行通信打印機視頻顯示設(shè)備顯示器鍵盤鼠標(biāo)與設(shè)備進(jìn)行交互用于和電子設(shè)備進(jìn)行通信磁盤和磁帶傳感器控制器傳動器2I/O設(shè)備分類與人進(jìn)行交互2I/O設(shè)備分類網(wǎng)絡(luò)通信類用于和遠(yuǎn)程設(shè)備進(jìn)行通信數(shù)據(jù)線調(diào)制解調(diào)器所有設(shè)備在操作系統(tǒng)中被粗略地分為兩類塊設(shè)備字符設(shè)備3I/O設(shè)備分類網(wǎng)絡(luò)通信類3I/O設(shè)備的不同數(shù)據(jù)傳輸率不同設(shè)備在數(shù)據(jù)傳輸率上有可能相差幾個數(shù)量級應(yīng)用如當(dāng)磁盤用于存儲文件時需要文件管理軟件的配合當(dāng)磁盤用于存儲虛頁時需要特殊的硬件和軟件的支持被系統(tǒng)管理員使用的終端必須具有高級的優(yōu)先權(quán)控制的復(fù)雜度4I/O設(shè)備的不同數(shù)據(jù)傳輸率4I/O設(shè)備的不同傳輸單位對于終端,數(shù)據(jù)的傳輸是以字符流為單位,而磁盤則是以塊為單位數(shù)據(jù)的表示方式不同設(shè)備編碼方式不一樣出錯表示方式5I/O設(shè)備的不同傳輸單位5I/O硬件原理某些典型設(shè)備、網(wǎng)絡(luò)和總線的數(shù)據(jù)率6I/O硬件原理某些典型設(shè)備、網(wǎng)絡(luò)和總線的數(shù)據(jù)率6設(shè)備控制器I/O設(shè)備的組成:機械部分電子部分組成設(shè)備的電子部分就是設(shè)備控制器一個設(shè)備控制器可以處理一類設(shè)備控制器的任務(wù)將串行的位流轉(zhuǎn)換成字節(jié)塊盡可能進(jìn)行糾錯可以與主存進(jìn)行讀寫操作7設(shè)備控制器I/O設(shè)備的組成:7內(nèi)存映射I/O(1)單獨的I/O和內(nèi)存空間內(nèi)存映射I/O混合方案8內(nèi)存映射I/O(1)單獨的I/O和內(nèi)存空間8內(nèi)存映射I/O(2)(a)單總線體系結(jié)構(gòu)(b)雙總線內(nèi)存體系結(jié)構(gòu)9內(nèi)存映射I/O(2)(a)單總線體系結(jié)構(gòu)91010I/O數(shù)據(jù)傳輸方式程序控制I/O在進(jìn)行輸入/輸出時,CPU處于一種忙等待中斷驅(qū)動I/OCPU發(fā)出I/O命令,由控制器具體執(zhí)行CPU轉(zhuǎn)去執(zhí)行其他指令控制器完成I/O后,向CPU發(fā)中斷信號11I/O數(shù)據(jù)傳輸方式程序控制I/O11I/O數(shù)據(jù)傳輸方式直接存儲器存取(DMA)由專門的DMA控制器控制數(shù)據(jù)在內(nèi)存與外部設(shè)備間的傳輸CPU僅僅在所有數(shù)據(jù)傳輸結(jié)束后進(jìn)行中斷干預(yù)通道控制方式12I/O數(shù)據(jù)傳輸方式直接存儲器存取(DMA)121313幾種數(shù)據(jù)傳輸方式的關(guān)系14幾種數(shù)據(jù)傳輸方式的關(guān)系14中斷回顧中斷是怎樣發(fā)生的,設(shè)備與中斷控制器之間的連線實際上使用的是總線上的中斷線而不是專用連線。busControlregisterDataregister15中斷回顧中斷是怎樣發(fā)生的,設(shè)備與中斷控制器之間的連線實際上使直接存儲器存取(DMA)16直接存儲器存取(DMA)16直接存儲器存取(DMA)DMA傳送操作17直接存儲器存取(DMA)DMA傳送操作17直接存儲器存取(DMA)基本原理:處理器將相應(yīng)的傳輸命令發(fā)給DMA控制器DMA控制器直接將數(shù)據(jù)與內(nèi)存間進(jìn)行交換當(dāng)數(shù)據(jù)傳輸結(jié)束,DMA控制器向處理器發(fā)中斷信號18直接存儲器存取(DMA)基本原理:18DMA配置幾種DMA控制器的使用方式19DMA配置幾種DMA控制器的使用方式19DMA配置幾種DMA控制器的使用方式20DMA配置幾種DMA控制器的使用方式20I/O軟件原理

I/O軟件的目標(biāo)(1)設(shè)備獨立性程序能夠訪問任意的設(shè)備不需要事先指定(如讀取硬盤,軟盤,或光區(qū))統(tǒng)一命名一個文件或設(shè)備的名字應(yīng)該是一個簡單的字符串或一個整數(shù)不應(yīng)依賴于任何設(shè)備錯誤處理錯誤應(yīng)該盡可能在接近硬件層面得到處理21I/O軟件原理

I/O軟件的目標(biāo)(1)設(shè)備獨立性21I/O軟件目標(biāo)(2)同步(Synchronous)和異步(asynchronous)傳輸阻塞式傳輸和中斷驅(qū)動傳輸緩沖數(shù)據(jù)離開一個設(shè)備后通常并不能直接存放到目的地共享設(shè)備和獨占設(shè)備磁盤是共享設(shè)備磁帶是獨占性設(shè)備22I/O軟件目標(biāo)(2)同步(Synchronous)和異步(程序控制I/O(1)打印一個字符串的步驟23程序控制I/O(1)打印一個字符串的步驟23程序控制I/O(2)使用程序控制I/O將一個字符串寫到打印機24程序控制I/O(2)使用程序控制I/O將一個字符串寫到打中斷驅(qū)動I/O使用中斷驅(qū)動I/O將一個字符串寫到打印機當(dāng)打印系統(tǒng)被調(diào)用時執(zhí)行的代碼打印機的中斷服務(wù)過程25中斷驅(qū)動I/O使用中斷驅(qū)動I/O將一個字符串寫到打印機2使用DMA的I/O使用DMA打印一個字符串當(dāng)打印系統(tǒng)被調(diào)用時執(zhí)行的代碼中斷服務(wù)過程26使用DMA的I/O使用DMA打印一個字符串26I/O軟件層次I/O軟件系統(tǒng)的層次27I/O軟件層次I/O軟件系統(tǒng)的層次27中斷處理程序(1)中斷向量程序應(yīng)該隱藏在操作系統(tǒng)內(nèi)部將啟動I/O操作的驅(qū)動程序阻塞起來,直到I/O操作完成且產(chǎn)生一個中斷中斷處理程序?qū)⑼瓿伤龅娜抗ぷ魅缓髮又袛嗟尿?qū)動程序解除阻塞硬件中斷完成之后軟件中斷的執(zhí)行步驟保存沒有被中斷硬件保存的所有寄存器為中斷服務(wù)過程設(shè)置上下文,可能包括設(shè)置TLB,MMU和頁表28中斷處理程序(1)中斷向量程序應(yīng)該隱藏在操作系統(tǒng)內(nèi)部28中斷處理程序(2)為中斷服務(wù)過程設(shè)置堆棧應(yīng)答中斷控制器,如果不存在集中的中斷控制器,則再次開放中斷將寄存器從它們被保存的地方復(fù)制到進(jìn)程表中運行中斷服務(wù)過程,從發(fā)出中斷的設(shè)備控制器的寄存器中提取信息選擇下一次運行哪一個進(jìn)程為下一次要運行的進(jìn)程設(shè)置MMU上下文裝入新進(jìn)程的寄存器開始運行新進(jìn)程29中斷處理程序(2)為中斷服務(wù)過程設(shè)置堆棧29設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序的邏輯定位驅(qū)動程序和設(shè)備控制器之間的所有通信都通過總線30設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序的邏輯定位30與設(shè)備無關(guān)的I/O軟件(1)與設(shè)備無關(guān)的I/O軟件功能設(shè)備驅(qū)動程序的統(tǒng)一接口緩沖錯誤報告分配與釋放專用設(shè)備提供與設(shè)備無關(guān)的塊大小31與設(shè)備無關(guān)的I/O軟件(1)與設(shè)備無關(guān)的I/O軟件功能設(shè)與設(shè)備無關(guān)的I/O軟件(2)(a)沒有標(biāo)準(zhǔn)的驅(qū)動程序接口(b)具有標(biāo)準(zhǔn)的驅(qū)動程序接口32與設(shè)備無關(guān)的I/O軟件(2)(a)沒有標(biāo)準(zhǔn)的驅(qū)動程序與設(shè)備無關(guān)的I/O軟件(3)(a)無緩沖的輸入(b)用戶空間中的緩沖(c)內(nèi)核空間中的緩沖接著復(fù)制到用戶空間(d)內(nèi)核空間中的雙緩沖33與設(shè)備無關(guān)的I/O軟件(3)(a)無緩沖的輸入33雙緩沖使用兩個系統(tǒng)內(nèi)核空間中的緩沖當(dāng)?shù)谝粋€緩沖區(qū)被填滿之后,在它被清空之前可以使用第二個緩沖區(qū)34雙緩沖使用兩個系統(tǒng)內(nèi)核空間中的緩沖34循環(huán)緩沖可以使用的緩沖區(qū)有兩個以上EachindividualbufferisoneunitinacircularbufferUsedwhenI/Ooperationmustkeepupwithprocess35循環(huán)緩沖可以使用的緩沖區(qū)有兩個以上35緩沖池(bufferpool)緩沖區(qū)隊列:三種:空閑緩沖區(qū),輸入緩沖區(qū),輸出緩沖區(qū)操作:四種:設(shè)備輸入,CPU讀入,設(shè)備輸出,CPU寫出。上述操作訪問各個緩沖區(qū)隊列時,需要進(jìn)行相應(yīng)的互斥操作。這是一種雙方向緩沖技術(shù);緩沖區(qū)整體利用率高。36緩沖池(bufferpool)緩沖區(qū)隊列:三種:空閑緩沖區(qū)與設(shè)備無關(guān)的I/O軟件(3)錯誤報告分配與釋放專用設(shè)備與設(shè)備無關(guān)的塊大小37與設(shè)備無關(guān)的I/O軟件(3)錯誤報告37用戶空間的I/O軟件

I/O系統(tǒng)的層次以及每一層的主要功能38用戶空間的I/O軟件I/O系統(tǒng)的層次以及每一層的主要SPOOLing(假脫機,虛擬設(shè)備技術(shù)),SimultaneousPeripheralOperationOnLine可把獨享設(shè)備轉(zhuǎn)變成具有共享特征的虛擬設(shè)備,從而提高設(shè)備利用率。引入:在多道批處理系統(tǒng)中,專門利用一道程序(SPOOLing程序)來完成對設(shè)備的I/O操作。無需使用外圍I/O處理機。39SPOOLing(假脫機,虛擬設(shè)備技術(shù)),Simultan原理:SPOOLing程序和外設(shè)進(jìn)行數(shù)據(jù)交換,可以稱為“實際I/O”。一方面,SPOOLing程序預(yù)先從外設(shè)輸入數(shù)據(jù)并加以緩沖,在以后需要的時候輸入到應(yīng)用程序;另一方面,SPOOLing程序接受應(yīng)用程序的輸出數(shù)據(jù)并加以緩沖,在以后適當(dāng)?shù)臅r候輸出到外設(shè)。在SPOOLing程序中,需要管理兩級緩沖區(qū):內(nèi)存緩沖區(qū)和快速外存上的緩沖池,后者可以暫存多批I/O操作的較多數(shù)據(jù)。應(yīng)用程序進(jìn)行I/O操作時,只是和SPOOLing程序交換數(shù)據(jù),可以稱為"虛擬I/O"。這時虛擬I/O實際上是從SPOOLing程序的緩沖池中讀出數(shù)據(jù)或把數(shù)據(jù)送入緩沖池,而不是跟實際的外設(shè)進(jìn)行I/O操作。40原理:40優(yōu)點:高速虛擬I/O操作:應(yīng)用程序的虛擬I/O比實際I/O速度提高,縮短應(yīng)用程序的執(zhí)行時間。另一方面,程序的虛擬I/O操作時間和實際I/O操作時間分離開來。實現(xiàn)對獨享設(shè)備的共享:由SPOOLing程序提供虛擬設(shè)備,可以對獨享設(shè)備依次共享使用。舉例:打印機設(shè)備和可由打印機管理器管理的打印作業(yè)隊列。如:WindowsNT中,應(yīng)用程序直接向針式打印機輸出需要15分鐘,而向打印作業(yè)隊列輸出只需要1分鐘,此后用戶可以關(guān)閉應(yīng)用程序而轉(zhuǎn)入其他工作,在以后適當(dāng)?shù)臅r候由打印機管理器完成15分鐘的打印輸出而無需用戶干預(yù)。41優(yōu)點:41磁盤的結(jié)構(gòu)盤

盤的硬件(1)42磁盤的結(jié)構(gòu)盤

盤的硬件(1)42盤

盤的硬件(2)最初的IBMPC360KB軟盤參數(shù)與西部數(shù)據(jù)公司W(wǎng)D18300硬盤參數(shù)43盤

盤的硬件(2)最初的IBMPC360KB軟盤參數(shù)與西部盤的硬件(3)具有兩個環(huán)帶的磁盤的物理幾何規(guī)格該磁盤的一種可能的虛擬幾何規(guī)格44盤的硬件(3)具有兩個環(huán)帶的磁盤的物理幾何規(guī)格44RAIDRedundantArrayofIndependentDisks(廉價磁盤冗余陣列)由一個RAID控制器加上一個裝滿磁盤的盒子組成,而對操作系統(tǒng)而言就是一個大容量的磁盤數(shù)據(jù)被分布在多個驅(qū)動器的陣列上冗余磁盤可以用來存放奇偶信息45RAIDRedundantArrayofIndepenRaid0級到2級陰影表示備份或者存放校驗碼的盤鏡像無冗余冗余盤上存放的是海明校驗碼46Raid0級到2級鏡像無冗余冗余盤上存放的是海明校驗碼4Raid3級到5級陰影表示備份或者存放校驗碼的盤bit-interleavedparityblock-levelparityblock-leveldistributedparity47Raid3級到5級bit-interleavedpari磁盤格式化(1)一個磁盤扇區(qū)48磁盤格式化(1)一個磁盤扇區(qū)48磁盤格式化(2)柱面斜進(jìn)示意圖49磁盤格式化(2)柱面斜進(jìn)示意圖49磁盤的格式化(3)無交錯單交錯雙交錯50磁盤的格式化(3)無交錯50磁頭臂調(diào)度算法(1)讀寫一個磁盤塊的時間又下面三個因素構(gòu)成尋道時間旋轉(zhuǎn)延遲實際數(shù)據(jù)傳輸時間尋道時間占主導(dǎo)地位傳輸過程中的糾錯由控制器完成51磁頭臂調(diào)度算法(1)讀寫一個磁盤塊的時間又下面三個因素構(gòu)成磁頭臂調(diào)度策略先來先服務(wù)(FIFO)按達(dá)到順序滿足進(jìn)程的需求對所有進(jìn)程都公平在磁盤I/O負(fù)載較輕且每次讀寫多個連續(xù)扇區(qū)時,性能較好優(yōu)先級目標(biāo)是系統(tǒng)目標(biāo)的實現(xiàn),而不是改進(jìn)磁盤I/O性能短作業(yè)具有較高優(yōu)先級反映進(jìn)程在系統(tǒng)的優(yōu)先級特征,具有較好系統(tǒng)交互響應(yīng)時間52磁頭臂調(diào)度策略先來先服務(wù)(FIFO)52磁頭臂調(diào)度策略后進(jìn)先出該算法是基于事務(wù)系統(tǒng)中順序文件中磁盤I/O的局部性特征,相鄰訪問的位置也相鄰。它的問題在于系統(tǒng)負(fù)載重時,可能有進(jìn)程的磁盤I/O永遠(yuǎn)不能執(zhí)行,處于饑餓狀態(tài)。最短尋道時間優(yōu)先考慮磁盤I/O請求隊列中各請求的磁頭定位位置,選擇從當(dāng)前磁頭位置出發(fā),移動最少的磁盤I/O請求。該算法的目標(biāo)是使每次磁頭移動時間最少。它不一定是最短平均柱面定位時間,但比FIFO算法有更好的性能。對中間的磁道有利,可能會有進(jìn)程處于饑餓狀態(tài)。53磁頭臂調(diào)度策略后進(jìn)先出53磁頭臂調(diào)度策略SCAN(elevatoralgorithm,掃描算法,電梯算法)選擇在磁頭前進(jìn)方向上從當(dāng)前位置移動最少的磁盤I/O請求執(zhí)行,沒有前進(jìn)方向上的請求時才改變方向。該算法是對SSTF算法的改進(jìn),磁盤I/O較好,且沒有進(jìn)程會餓死。C-SCAN(循環(huán)掃描)嚴(yán)格按照一個方向進(jìn)行掃描,在一個方向上使用掃描算法,當(dāng)?shù)竭_(dá)邊沿時直接移動到另一沿的第一個位置。該算法可改進(jìn)掃描算法對中間磁道的偏好。實驗表明,該算法在中負(fù)載或重負(fù)載時,磁盤I/O性能比掃描算法好。54磁頭臂調(diào)度策略SCAN(elevatoralgorithm磁頭臂調(diào)度策略

幾種不同調(diào)度算法的比較55磁頭臂調(diào)度策略幾種不同調(diào)度算法的比較55錯誤處理具有一個壞扇區(qū)的磁盤磁道用備用扇區(qū)替換壞扇區(qū)移動所有扇區(qū)以回避壞扇區(qū)56錯誤處理具有一個壞扇區(qū)的磁盤磁道56時鐘

時鐘硬件可編程時鐘57時鐘

時鐘硬件可編程時鐘57時鐘軟件(1)維護日時間的三種方式58時鐘軟件(1)維護日時間的三種方式58時鐘軟件(2)用單個時鐘模擬多個定時器59時鐘軟件(2)用單個時鐘模擬多個定時器59時鐘軟件的主要功能維護日期時間防止進(jìn)程超時運行對CPU的使用情況記帳處理用戶進(jìn)程提出的alarm系統(tǒng)調(diào)用為系統(tǒng)本身的各個部分提供監(jiān)視定時器完成概要剖析、監(jiān)視和統(tǒng)計信息收集60時鐘軟件的主要功能維護日期時間60軟定時器可引發(fā)定時中斷的輔助可編程時鐘用于應(yīng)用程序特定的目的若中斷頻率較低,不會有任何問題避免了中斷的軟定時器無論何時當(dāng)內(nèi)核因某種原因在運行時,在它返回到用戶態(tài)之前,它都要檢查實時時鐘以了解軟定時器是否到期軟定時器性能的好壞取決于內(nèi)核返回用戶態(tài)的情況61軟定時器可引發(fā)定時中斷的輔助可編程時鐘61SummaryI/O設(shè)備管理軟件的目標(biāo)和功能I/O設(shè)備數(shù)據(jù)傳輸?shù)目刂品绞絀/O設(shè)備的調(diào)度策略高速緩存和緩沖區(qū)假脫機技術(shù)62SummaryI/O設(shè)備管理軟件的目標(biāo)和功能62輸入/輸出第5章5.1I/O硬件原理5.2I/O軟件原理5.3I/O軟件層次5.4硬盤5.5時鐘63輸入/輸出第5章5.1I/O硬件原理1I/O設(shè)備分類與人進(jìn)行交互用于和用戶進(jìn)行通信打印機視頻顯示設(shè)備顯示器鍵盤鼠標(biāo)與設(shè)備進(jìn)行交互用于和電子設(shè)備進(jìn)行通信磁盤和磁帶傳感器控制器傳動器64I/O設(shè)備分類與人進(jìn)行交互2I/O設(shè)備分類網(wǎng)絡(luò)通信類用于和遠(yuǎn)程設(shè)備進(jìn)行通信數(shù)據(jù)線調(diào)制解調(diào)器所有設(shè)備在操作系統(tǒng)中被粗略地分為兩類塊設(shè)備字符設(shè)備65I/O設(shè)備分類網(wǎng)絡(luò)通信類3I/O設(shè)備的不同數(shù)據(jù)傳輸率不同設(shè)備在數(shù)據(jù)傳輸率上有可能相差幾個數(shù)量級應(yīng)用如當(dāng)磁盤用于存儲文件時需要文件管理軟件的配合當(dāng)磁盤用于存儲虛頁時需要特殊的硬件和軟件的支持被系統(tǒng)管理員使用的終端必須具有高級的優(yōu)先權(quán)控制的復(fù)雜度66I/O設(shè)備的不同數(shù)據(jù)傳輸率4I/O設(shè)備的不同傳輸單位對于終端,數(shù)據(jù)的傳輸是以字符流為單位,而磁盤則是以塊為單位數(shù)據(jù)的表示方式不同設(shè)備編碼方式不一樣出錯表示方式67I/O設(shè)備的不同傳輸單位5I/O硬件原理某些典型設(shè)備、網(wǎng)絡(luò)和總線的數(shù)據(jù)率68I/O硬件原理某些典型設(shè)備、網(wǎng)絡(luò)和總線的數(shù)據(jù)率6設(shè)備控制器I/O設(shè)備的組成:機械部分電子部分組成設(shè)備的電子部分就是設(shè)備控制器一個設(shè)備控制器可以處理一類設(shè)備控制器的任務(wù)將串行的位流轉(zhuǎn)換成字節(jié)塊盡可能進(jìn)行糾錯可以與主存進(jìn)行讀寫操作69設(shè)備控制器I/O設(shè)備的組成:7內(nèi)存映射I/O(1)單獨的I/O和內(nèi)存空間內(nèi)存映射I/O混合方案70內(nèi)存映射I/O(1)單獨的I/O和內(nèi)存空間8內(nèi)存映射I/O(2)(a)單總線體系結(jié)構(gòu)(b)雙總線內(nèi)存體系結(jié)構(gòu)71內(nèi)存映射I/O(2)(a)單總線體系結(jié)構(gòu)97210I/O數(shù)據(jù)傳輸方式程序控制I/O在進(jìn)行輸入/輸出時,CPU處于一種忙等待中斷驅(qū)動I/OCPU發(fā)出I/O命令,由控制器具體執(zhí)行CPU轉(zhuǎn)去執(zhí)行其他指令控制器完成I/O后,向CPU發(fā)中斷信號73I/O數(shù)據(jù)傳輸方式程序控制I/O11I/O數(shù)據(jù)傳輸方式直接存儲器存取(DMA)由專門的DMA控制器控制數(shù)據(jù)在內(nèi)存與外部設(shè)備間的傳輸CPU僅僅在所有數(shù)據(jù)傳輸結(jié)束后進(jìn)行中斷干預(yù)通道控制方式74I/O數(shù)據(jù)傳輸方式直接存儲器存取(DMA)127513幾種數(shù)據(jù)傳輸方式的關(guān)系76幾種數(shù)據(jù)傳輸方式的關(guān)系14中斷回顧中斷是怎樣發(fā)生的,設(shè)備與中斷控制器之間的連線實際上使用的是總線上的中斷線而不是專用連線。busControlregisterDataregister77中斷回顧中斷是怎樣發(fā)生的,設(shè)備與中斷控制器之間的連線實際上使直接存儲器存取(DMA)78直接存儲器存取(DMA)16直接存儲器存取(DMA)DMA傳送操作79直接存儲器存取(DMA)DMA傳送操作17直接存儲器存取(DMA)基本原理:處理器將相應(yīng)的傳輸命令發(fā)給DMA控制器DMA控制器直接將數(shù)據(jù)與內(nèi)存間進(jìn)行交換當(dāng)數(shù)據(jù)傳輸結(jié)束,DMA控制器向處理器發(fā)中斷信號80直接存儲器存取(DMA)基本原理:18DMA配置幾種DMA控制器的使用方式81DMA配置幾種DMA控制器的使用方式19DMA配置幾種DMA控制器的使用方式82DMA配置幾種DMA控制器的使用方式20I/O軟件原理

I/O軟件的目標(biāo)(1)設(shè)備獨立性程序能夠訪問任意的設(shè)備不需要事先指定(如讀取硬盤,軟盤,或光區(qū))統(tǒng)一命名一個文件或設(shè)備的名字應(yīng)該是一個簡單的字符串或一個整數(shù)不應(yīng)依賴于任何設(shè)備錯誤處理錯誤應(yīng)該盡可能在接近硬件層面得到處理83I/O軟件原理

I/O軟件的目標(biāo)(1)設(shè)備獨立性21I/O軟件目標(biāo)(2)同步(Synchronous)和異步(asynchronous)傳輸阻塞式傳輸和中斷驅(qū)動傳輸緩沖數(shù)據(jù)離開一個設(shè)備后通常并不能直接存放到目的地共享設(shè)備和獨占設(shè)備磁盤是共享設(shè)備磁帶是獨占性設(shè)備84I/O軟件目標(biāo)(2)同步(Synchronous)和異步(程序控制I/O(1)打印一個字符串的步驟85程序控制I/O(1)打印一個字符串的步驟23程序控制I/O(2)使用程序控制I/O將一個字符串寫到打印機86程序控制I/O(2)使用程序控制I/O將一個字符串寫到打中斷驅(qū)動I/O使用中斷驅(qū)動I/O將一個字符串寫到打印機當(dāng)打印系統(tǒng)被調(diào)用時執(zhí)行的代碼打印機的中斷服務(wù)過程87中斷驅(qū)動I/O使用中斷驅(qū)動I/O將一個字符串寫到打印機2使用DMA的I/O使用DMA打印一個字符串當(dāng)打印系統(tǒng)被調(diào)用時執(zhí)行的代碼中斷服務(wù)過程88使用DMA的I/O使用DMA打印一個字符串26I/O軟件層次I/O軟件系統(tǒng)的層次89I/O軟件層次I/O軟件系統(tǒng)的層次27中斷處理程序(1)中斷向量程序應(yīng)該隱藏在操作系統(tǒng)內(nèi)部將啟動I/O操作的驅(qū)動程序阻塞起來,直到I/O操作完成且產(chǎn)生一個中斷中斷處理程序?qū)⑼瓿伤龅娜抗ぷ魅缓髮又袛嗟尿?qū)動程序解除阻塞硬件中斷完成之后軟件中斷的執(zhí)行步驟保存沒有被中斷硬件保存的所有寄存器為中斷服務(wù)過程設(shè)置上下文,可能包括設(shè)置TLB,MMU和頁表90中斷處理程序(1)中斷向量程序應(yīng)該隱藏在操作系統(tǒng)內(nèi)部28中斷處理程序(2)為中斷服務(wù)過程設(shè)置堆棧應(yīng)答中斷控制器,如果不存在集中的中斷控制器,則再次開放中斷將寄存器從它們被保存的地方復(fù)制到進(jìn)程表中運行中斷服務(wù)過程,從發(fā)出中斷的設(shè)備控制器的寄存器中提取信息選擇下一次運行哪一個進(jìn)程為下一次要運行的進(jìn)程設(shè)置MMU上下文裝入新進(jìn)程的寄存器開始運行新進(jìn)程91中斷處理程序(2)為中斷服務(wù)過程設(shè)置堆棧29設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序的邏輯定位驅(qū)動程序和設(shè)備控制器之間的所有通信都通過總線92設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序的邏輯定位30與設(shè)備無關(guān)的I/O軟件(1)與設(shè)備無關(guān)的I/O軟件功能設(shè)備驅(qū)動程序的統(tǒng)一接口緩沖錯誤報告分配與釋放專用設(shè)備提供與設(shè)備無關(guān)的塊大小93與設(shè)備無關(guān)的I/O軟件(1)與設(shè)備無關(guān)的I/O軟件功能設(shè)與設(shè)備無關(guān)的I/O軟件(2)(a)沒有標(biāo)準(zhǔn)的驅(qū)動程序接口(b)具有標(biāo)準(zhǔn)的驅(qū)動程序接口94與設(shè)備無關(guān)的I/O軟件(2)(a)沒有標(biāo)準(zhǔn)的驅(qū)動程序與設(shè)備無關(guān)的I/O軟件(3)(a)無緩沖的輸入(b)用戶空間中的緩沖(c)內(nèi)核空間中的緩沖接著復(fù)制到用戶空間(d)內(nèi)核空間中的雙緩沖95與設(shè)備無關(guān)的I/O軟件(3)(a)無緩沖的輸入33雙緩沖使用兩個系統(tǒng)內(nèi)核空間中的緩沖當(dāng)?shù)谝粋€緩沖區(qū)被填滿之后,在它被清空之前可以使用第二個緩沖區(qū)96雙緩沖使用兩個系統(tǒng)內(nèi)核空間中的緩沖34循環(huán)緩沖可以使用的緩沖區(qū)有兩個以上EachindividualbufferisoneunitinacircularbufferUsedwhenI/Ooperationmustkeepupwithprocess97循環(huán)緩沖可以使用的緩沖區(qū)有兩個以上35緩沖池(bufferpool)緩沖區(qū)隊列:三種:空閑緩沖區(qū),輸入緩沖區(qū),輸出緩沖區(qū)操作:四種:設(shè)備輸入,CPU讀入,設(shè)備輸出,CPU寫出。上述操作訪問各個緩沖區(qū)隊列時,需要進(jìn)行相應(yīng)的互斥操作。這是一種雙方向緩沖技術(shù);緩沖區(qū)整體利用率高。98緩沖池(bufferpool)緩沖區(qū)隊列:三種:空閑緩沖區(qū)與設(shè)備無關(guān)的I/O軟件(3)錯誤報告分配與釋放專用設(shè)備與設(shè)備無關(guān)的塊大小99與設(shè)備無關(guān)的I/O軟件(3)錯誤報告37用戶空間的I/O軟件

I/O系統(tǒng)的層次以及每一層的主要功能100用戶空間的I/O軟件I/O系統(tǒng)的層次以及每一層的主要SPOOLing(假脫機,虛擬設(shè)備技術(shù)),SimultaneousPeripheralOperationOnLine可把獨享設(shè)備轉(zhuǎn)變成具有共享特征的虛擬設(shè)備,從而提高設(shè)備利用率。引入:在多道批處理系統(tǒng)中,專門利用一道程序(SPOOLing程序)來完成對設(shè)備的I/O操作。無需使用外圍I/O處理機。101SPOOLing(假脫機,虛擬設(shè)備技術(shù)),Simultan原理:SPOOLing程序和外設(shè)進(jìn)行數(shù)據(jù)交換,可以稱為“實際I/O”。一方面,SPOOLing程序預(yù)先從外設(shè)輸入數(shù)據(jù)并加以緩沖,在以后需要的時候輸入到應(yīng)用程序;另一方面,SPOOLing程序接受應(yīng)用程序的輸出數(shù)據(jù)并加以緩沖,在以后適當(dāng)?shù)臅r候輸出到外設(shè)。在SPOOLing程序中,需要管理兩級緩沖區(qū):內(nèi)存緩沖區(qū)和快速外存上的緩沖池,后者可以暫存多批I/O操作的較多數(shù)據(jù)。應(yīng)用程序進(jìn)行I/O操作時,只是和SPOOLing程序交換數(shù)據(jù),可以稱為"虛擬I/O"。這時虛擬I/O實際上是從SPOOLing程序的緩沖池中讀出數(shù)據(jù)或把數(shù)據(jù)送入緩沖池,而不是跟實際的外設(shè)進(jìn)行I/O操作。102原理:40優(yōu)點:高速虛擬I/O操作:應(yīng)用程序的虛擬I/O比實際I/O速度提高,縮短應(yīng)用程序的執(zhí)行時間。另一方面,程序的虛擬I/O操作時間和實際I/O操作時間分離開來。實現(xiàn)對獨享設(shè)備的共享:由SPOOLing程序提供虛擬設(shè)備,可以對獨享設(shè)備依次共享使用。舉例:打印機設(shè)備和可由打印機管理器管理的打印作業(yè)隊列。如:WindowsNT中,應(yīng)用程序直接向針式打印機輸出需要15分鐘,而向打印作業(yè)隊列輸出只需要1分鐘,此后用戶可以關(guān)閉應(yīng)用程序而轉(zhuǎn)入其他工作,在以后適當(dāng)?shù)臅r候由打印機管理器完成15分鐘的打印輸出而無需用戶干預(yù)。103優(yōu)點:41磁盤的結(jié)構(gòu)盤

盤的硬件(1)104磁盤的結(jié)構(gòu)盤

盤的硬件(1)42盤

盤的硬件(2)最初的IBMPC360KB軟盤參數(shù)與西部數(shù)據(jù)公司W(wǎng)D18300硬盤參數(shù)105盤

盤的硬件(2)最初的IBMPC360KB軟盤參數(shù)與西部盤的硬件(3)具有兩個環(huán)帶的磁盤的物理幾何規(guī)格該磁盤的一種可能的虛擬幾何規(guī)格106盤的硬件(3)具有兩個環(huán)帶的磁盤的物理幾何規(guī)格44RAIDRedundantArrayofIndependentDisks(廉價磁盤冗余陣列)由一個RAID控制器加上一個裝滿磁盤的盒子組成,而對操作系統(tǒng)而言就是一個大容量的磁盤數(shù)據(jù)被分布在多個驅(qū)動器的陣列上冗余磁盤可以用來存放奇偶信息107RAIDRedundantArrayofIndepenRaid0級到2級陰影表示備份或者存放校驗碼的盤鏡像無冗余冗余盤上存放的是海明校驗碼108Raid0級到2級鏡像無冗余冗余盤上存放的是海明校驗碼4Raid3級到5級陰影表示備份或者存放校驗碼的盤bit-interleavedparityblock-levelparityblock-leveldistributedparity109Raid3級到5級bit-interleavedpari磁盤格式化(1)一個磁盤扇區(qū)110磁盤格式化(1)一個磁盤扇區(qū)48磁盤格式化(2)柱面斜進(jìn)示意圖111磁盤格式化(2)柱面斜進(jìn)示意圖49磁盤的格式化(3)無交錯單交錯雙交錯112磁盤的格式化(3)無交錯50磁頭臂調(diào)度算法(1)讀寫一個磁盤塊的時間又下面三個因素構(gòu)成尋道時間旋轉(zhuǎn)延遲實際數(shù)據(jù)傳輸時間尋道時間占主導(dǎo)地位傳輸過程中的糾錯由控制器完成113磁頭臂調(diào)度算法(1)讀寫一個磁盤塊的時間又下面三個因素構(gòu)成磁頭臂調(diào)度策略先來先服務(wù)(FIFO)按達(dá)到順序滿足進(jìn)程的需求對所有進(jìn)程

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論