




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第6章 設(shè)備管理6.1 I/O硬件組成6.26.3I/O軟件組成磁盤管理26.1 I/O硬件組成(1)I/O設(shè)備數(shù)據(jù)傳輸速率低速設(shè)備:鍵盤、鼠標(biāo)中速設(shè)備:打印機(jī)高速設(shè)備:磁盤、光盤設(shè)備共享屬性獨(dú)占設(shè)備:慢速的字符設(shè)備共享設(shè)備:快速的塊設(shè)備,資源利用率高虛擬設(shè)備:36.1 I/O硬件組成(2)將獨(dú)占設(shè)備改造為共享設(shè)備( SPOOL-ing技術(shù))將低速設(shè)備改造為高速設(shè)備(虛擬磁盤)數(shù)據(jù)傳輸單位塊設(shè)備以塊為單位傳輸信息傳輸速率較高、可尋址磁盤、磁帶字符設(shè)備46.1 I/O硬件組成(3)以字符為單位傳輸信息傳輸速率較低、不可尋址鼠標(biāo)、鍵盤、打印機(jī)網(wǎng)絡(luò)通信設(shè)備 設(shè)備控制器I/O設(shè)備由機(jī)械和電子兩部分組成
2、機(jī)械部分是設(shè)備本身電子部分叫做設(shè)備控制器或適配器功能控制一個或多個I/O設(shè)備,以實(shí)現(xiàn)I/O設(shè)備和計(jì)算機(jī)之間的數(shù)據(jù)交換56.1 I/O硬件組成(4)CPU與I/O設(shè)備之間的接口,接收CPU發(fā)來的命令,并控制I/O設(shè)備工作接收和識別命令數(shù)據(jù)交換標(biāo)識和報(bào)告設(shè)備的狀態(tài)地址識別數(shù)據(jù)緩沖差錯控制66.1 I/O硬件組成(5)I/O數(shù)據(jù)傳輸?shù)目刂品绞匠绦虿樵兎绞窖h(huán)查詢CPU與設(shè)備完全串行程序中斷方式盡量減少主機(jī)對I/O控制的干預(yù),將主機(jī)從煩雜的I/O控制事務(wù)中解脫直接存儲器訪問(DMA)從以字節(jié)為單位擴(kuò)展到以數(shù)據(jù)塊為單位76.1 I/O硬件組成(6)8程序查詢方式6.1 I/O硬件組成(7)9向設(shè)備控制器
3、發(fā)寫命令讀設(shè)備控制器的設(shè)備狀態(tài)設(shè)備完成?從存儲器中讀數(shù)據(jù)出錯YN向設(shè)備控制器中寫入數(shù)據(jù)傳送完成?Y停止設(shè)備工作NCPU-I/OI/O-CPUI/O-CPUCPU-內(nèi)存程序查詢方式工作流程CPU忙等待,與設(shè)備串行數(shù)據(jù)傳輸?shù)幕締挝粸樽止?jié)6.1 I/O硬件組成(8)10向設(shè)備控制器發(fā)寫命令向設(shè)備控制器中寫入數(shù)據(jù)讀設(shè)備控制器的設(shè)備狀態(tài)設(shè)備完成?Y從存儲器中讀數(shù)據(jù)傳送完成?Y停止設(shè)備工作NCPU-I/OCPU做其他事中斷I/O-CPU出錯I/O-CPU程序中斷方式工作流程CPU執(zhí)行其他工作,與設(shè)備并行數(shù)據(jù)傳輸?shù)幕鵆PU-內(nèi)存 本單位為字節(jié)6.1 I/O硬件組成(9)11程序中斷方式6.1 I/O硬件組
4、成(10)特點(diǎn)數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊傳送數(shù)據(jù)從設(shè)備直接送入內(nèi)存或相反僅在傳送一個或多個數(shù)據(jù)塊的開始和結(jié)束時,才需要CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完成的實(shí)現(xiàn)磁盤地址主存的起始地址傳送的字節(jié)數(shù)126.1 I/O硬件組成(11)13DMA訪問步驟6.1 I/O硬件組成(12)通道方式引入進(jìn)一步減少CPU的干預(yù),將對一個數(shù)據(jù)塊的干預(yù)減少為對一組數(shù)據(jù)塊及其相關(guān)控制和管理的干預(yù)實(shí)現(xiàn)CPU、通道和I/O設(shè)備三者的并行實(shí)現(xiàn)方法接受CPU的委托,獨(dú)立地執(zhí)行自己的通道程序,管理和控制輸入輸出設(shè)備,實(shí)現(xiàn)外圍設(shè)備與主存儲器之間的成批數(shù)據(jù)傳送。當(dāng)CPU委托的I/O任務(wù)完成后,通道發(fā)出中斷信號,請求CP
5、U處理146.1 I/O硬件組成(13)分類(信息交換方式)字節(jié)多路通道以字節(jié)為單位傳輸信息,可以分時執(zhí)行多個通道程序。當(dāng)一個通道程序控制某臺設(shè)備傳送一個字節(jié)后,通道硬件就轉(zhuǎn)去執(zhí)行另一個通道程序,控制另一臺設(shè)備傳送一個字節(jié)的信息主要用來連接大量慢速的設(shè)備選擇通道以成組方式工作,每次傳送一批數(shù)據(jù)156.1 I/O硬件組成(14)一段時間內(nèi)只能執(zhí)行一個通道程序,控制一臺設(shè)備進(jìn)行數(shù)據(jù)傳輸。當(dāng)這臺設(shè)備數(shù)據(jù)傳輸完成后,再選擇與通道連接的另一臺設(shè)備,執(zhí)行它的相應(yīng)的通道程序常連接高速設(shè)備數(shù)組多路通道結(jié)合了選擇通道傳送速度高和字節(jié)多路通道能進(jìn)行分時并行操作的優(yōu)點(diǎn)它先為一臺設(shè)備執(zhí)行一條通道指令,然后自動轉(zhuǎn)接,為
6、另一臺設(shè)備執(zhí)行一條通道指令16A1B1C1A2B2C26.1 I/O硬件組成(15)A1A2A3B1B2B3C1C2C3N1N2N3176.2 I/O軟件組成6.2.1 I/O軟件的目標(biāo)6.2.2 I/O軟件的組成6.2.3同步I/O和異步I/O186.2.1 I/O軟件的目標(biāo)(1)提供設(shè)備的獨(dú)立性(設(shè)備無關(guān)性)應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備獨(dú)立于設(shè)備的類型獨(dú)立于同類設(shè)備的具體臺號設(shè)備的統(tǒng)一命名設(shè)備名不應(yīng)依賴于設(shè)備在OS中,通常規(guī)定用戶程序中不直接使用物理設(shè)備名(或設(shè)備的物理地址),而使用邏輯設(shè)備名19邏輯設(shè)備名物理設(shè)備名驅(qū)動程序入口地址/dev/tty31024/dev/printer52
7、046邏輯設(shè)備名系統(tǒng)設(shè)備表指針/dev/tty3/dev/printer56.2.1 I/O軟件的目標(biāo)(2)邏輯設(shè)備表示物理設(shè)備屬性,它不指某個具體設(shè)備,而是對應(yīng)一類設(shè)備由操作系統(tǒng)根據(jù)系統(tǒng)設(shè)備情況完成相應(yīng)的映射邏輯設(shè)備表20(a)(b)6.2.1 I/O軟件的目標(biāo)(3)優(yōu)點(diǎn)設(shè)備分配靈活易于實(shí)現(xiàn)I/O重定向設(shè)備獨(dú)立軟件 出錯處理對于數(shù)據(jù)傳輸中的錯誤應(yīng)盡可能地在接近硬件層上處理僅當(dāng)?shù)蛯榆浖o能為力時,才將錯誤上交高層處理216.2.1 I/O軟件的目標(biāo)(4)緩沖技術(shù)使數(shù)據(jù)的到達(dá)率與離去率相匹配,提高系統(tǒng)的吞吐率改善I/O設(shè)備和CPU之間速度不匹配的情況(數(shù)據(jù)大小不一致)減少中斷CPU的次數(shù),提高C
8、PU利用率減少啟動設(shè)備的次數(shù),延長設(shè)備的壽命提高CPU和I/O設(shè)備之間的并行性226.2.1 I/O軟件的目標(biāo)(5)設(shè)備分配設(shè)備類型獨(dú)占設(shè)備:靜態(tài)分配共享設(shè)備:動態(tài)分配虛擬設(shè)備:共享設(shè)備,F(xiàn)CFS靜態(tài)分配簡單,但設(shè)備利用率低動態(tài)分配設(shè)備利用率高,但容易引起死鎖236.2.2 I/O軟件的組成(1)I/O軟件的結(jié)構(gòu)基本思想按分層思想構(gòu)成較低層的軟件要使較高層的軟件獨(dú)立于硬件的特性較高層軟件要向用戶提供一個友好的、清晰的、簡單的、功能更強(qiáng)的接口層次結(jié)構(gòu)中斷處理程序設(shè)備驅(qū)動程序246.2.2 I/O軟件的組成(2)獨(dú)立于設(shè)備的軟件用戶空間的I/O軟件256.2.2 I/O軟件的組成(3)中斷處理程序
9、中斷通常隱藏在操作系統(tǒng)內(nèi)每個進(jìn)程在啟動一個I/O操作后阻塞起來,直到I/O操作完成并產(chǎn)生一個中斷,通過中斷向CPU報(bào)告,CPU喚醒該進(jìn)程,對設(shè)備進(jìn)行中斷處理中斷處理工作完全由OS完成,用戶進(jìn)程根本不知道中斷的產(chǎn)生和處理過程中斷處理工作喚醒被阻塞的驅(qū)動程序進(jìn)程266.2.2 I/O軟件的組成(4)保護(hù)被中斷進(jìn)程的CPU環(huán)境分析中斷原因轉(zhuǎn)入相應(yīng)中斷處理程序中斷處理檢查設(shè)備狀態(tài)寄存器的內(nèi)容,看它是否正常完成正常完成則結(jié)束中斷;若還有等待傳輸?shù)腎/O請求,則啟動下一個請求若傳輸有錯,判斷是否允許重復(fù)傳輸,若允許則發(fā)啟動傳輸命令,否則向上層報(bào)告“設(shè)備錯誤”的信息恢復(fù)被中斷進(jìn)程的現(xiàn)場276.2.2 I/O
10、軟件的組成(5)設(shè)備驅(qū)動程序與設(shè)備密切相關(guān)的代碼放在設(shè)備驅(qū)動程序中,每個設(shè)備驅(qū)動程序處理一種設(shè)備類型接收來自與設(shè)備無關(guān)的上層軟件的抽象請求,并執(zhí)行這個請求在請求I/O的進(jìn)程與設(shè)備控制器之間的一個通信和轉(zhuǎn)換程序,它將進(jìn)程的I/O請求經(jīng)過轉(zhuǎn)換后,傳遞給控制器,又把控制器中所記錄的設(shè)備狀態(tài)和I/O操作完成情況及時地反映給請求I/O的進(jìn)程286.2.2 I/O軟件的組成(6)設(shè)備驅(qū)動程序的處理過程接收I/O進(jìn)程發(fā)來的命令和參數(shù),并將命令中的抽象要求轉(zhuǎn)換為具體要求檢查用戶I/O請求的合法性讀出和檢查設(shè)備的狀態(tài)如果設(shè)備空閑則立即啟動I/O設(shè)備完成指定的I/O操作如果設(shè)備處于忙碌狀態(tài),則將請求者的請求塊掛在
11、設(shè)備隊(duì)列上等待傳送必要的參數(shù)并設(shè)臵設(shè)備工作方式296.2.2 I/O軟件的組成(7)啟動I/O設(shè)備阻塞自己,直至中斷到來時被喚醒,并根據(jù)中斷類型調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理設(shè)備處理方式為每一類設(shè)備設(shè)臵一個I/O進(jìn)程在整個系統(tǒng)中設(shè)臵一個I/O進(jìn)程不設(shè)臵專門的設(shè)備處理進(jìn)程,只為各類設(shè)備設(shè)臵相應(yīng)的設(shè)備處理程序,供用戶進(jìn)程或系統(tǒng)進(jìn)程調(diào)用306.2.2 I/O軟件的組成(8)設(shè)備獨(dú)立的軟件基本任務(wù)實(shí)現(xiàn)所有設(shè)備都需要的功能,并向用戶級軟件提供一個統(tǒng)一的接口與設(shè)備驅(qū)動程序的統(tǒng)一接口設(shè)備命名設(shè)備保護(hù)提供與設(shè)備無關(guān)的塊尺寸緩沖技術(shù)塊設(shè)備的存儲分配獨(dú)占設(shè)備的分配與釋放報(bào)告錯誤信息316.2.2 I/O軟件的組成
12、(9)設(shè)備命名將設(shè)備的邏輯名映射為物理設(shè)備名,也即把設(shè)備的符號名映射到正確的設(shè)備驅(qū)動程序上設(shè)備保護(hù)防止無權(quán)存取設(shè)備的用戶存取設(shè)備,保證有權(quán)使用的用戶正確使用設(shè)備為每一個設(shè)備設(shè)臵正確的存取權(quán)禁止用戶直接訪問設(shè)備(通過系統(tǒng)調(diào)用訪問)326.2.2 I/O軟件的組成(10)提供與設(shè)備無關(guān)的塊尺寸向較高層軟件掩蓋不同磁盤采用不同扇區(qū)尺寸的事實(shí)并提供大小統(tǒng)一的塊尺寸較高層的軟件只與抽象設(shè)備打交道,使用等長的邏輯塊,獨(dú)立于物理扇區(qū)尺寸緩沖技術(shù)對設(shè)備緩沖區(qū)進(jìn)行有效管理,提高I/O效率3334處理(C)工作區(qū)緩沖區(qū)傳送(M)輸入(T)I/O設(shè)備(a)T1M1T2C1M2T3C2M3T4C3t(b)6.2.2
13、I/O軟件的組成(11)單緩沖用戶進(jìn)程6.2.2 I/O軟件的組成(12)假定從磁盤將一塊數(shù)據(jù)輸入到緩沖區(qū)的時間為T,OS將緩沖區(qū)的數(shù)據(jù)傳送到用戶區(qū)的時間為M,CPU對一塊數(shù)據(jù)處理的時間為C,則系統(tǒng)對每塊數(shù)據(jù)的處理時間為Max(C,T)+M雙緩沖系統(tǒng)對每塊數(shù)據(jù)的處理時間為Max(C,T)3536工作區(qū)6.2.2 I/O軟件的組成(13)用戶進(jìn)程緩沖區(qū)1緩沖區(qū)2I/O 設(shè)備T1(緩 沖 1)M1C1M2C2M3C3T2(緩 沖 2)T3(緩 沖 3)M4C4T4(緩 沖 4)(a)(b)6.2.2 I/O軟件的組成(14)示例:某文件占10個磁盤塊,現(xiàn)要把該文件磁盤塊逐個讀入主存緩沖區(qū),并送用戶
14、區(qū)進(jìn)行分析。假設(shè)一個緩沖區(qū)與一個磁盤塊大小相同,把一個磁盤塊讀入緩沖區(qū)的時間為100s,將緩沖區(qū)的數(shù)據(jù)傳送到用戶區(qū)的時間是50s,CPU對一塊數(shù)據(jù)進(jìn)行分析的時間為50s。在單緩沖區(qū)和雙緩沖區(qū)結(jié)構(gòu)下,讀入并分析完該文件的時間分別是A.1500s,1000sC.1550s,1550sB.1550s,1100sD.2000s,2000s答案:B376.2.2 I/O軟件的組成(15)循環(huán)緩沖38GGRGR1654G23NextiNextgGGRCR1654G23NextiNextgcurrent6.2.2 I/O軟件的組成(16)緩沖池空緩沖區(qū)(隊(duì)列)輸入緩沖區(qū)(隊(duì)列)輸出緩沖區(qū)(隊(duì)列)隊(duì)列操作緩沖
15、隊(duì)列是臨界資源設(shè)備分配分配程序396.2.2 I/O軟件的組成(17)分配設(shè)備分配控制器分配通道數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表系統(tǒng)設(shè)備表控制器控制表通道控制表4041存儲器6.2.2 I/O軟件的組成(18)設(shè)備1設(shè)備2設(shè)備3設(shè)備4設(shè)備5設(shè)備6設(shè)備7控制器1控制器2控制器3控制器4通道1通道26.2.2 I/O軟件的組成(19)42設(shè)備類型 ty pe設(shè)備標(biāo)識符:devic e id忙/閑設(shè)備狀態(tài):等待/不等待指向控制器表的指針重復(fù)執(zhí)行次數(shù)或時間設(shè)備隊(duì)列的隊(duì)首指針DCT 1DCT 2DCT n設(shè)備控制表集合控制器標(biāo)識符:controllerid控制器狀態(tài):忙/閑與控制器連接的通道表指針控制器隊(duì)列的隊(duì)首指針
16、控制器隊(duì)列的隊(duì)尾指針(a) 控制器表COCT通道標(biāo)識符:channelid通道狀態(tài):忙/閑與通道連接的控制器表首址通道隊(duì)列的隊(duì)首指針通道隊(duì)列的隊(duì)尾指針(b) 通道表CHCT表目1表目i設(shè)備類設(shè)備標(biāo)識符DCT驅(qū)動程序入口(c) 系統(tǒng)設(shè) 備 表 SDT6.2.2 I/O軟件的組成(20)SDTD1TypeIdDCTdriverDnDCTn43DCTDCT1TypeIdStateCOCTCountqueueCOCTCOCT1IdStateCHCTheadertailerCOCTnCHCTCHCT1IdStateheadertailerCHCTn6.2.2 I/O軟件的組成(21)考慮因素設(shè)備固有屬性
17、:獨(dú)占,共享,虛擬設(shè)備分配算法:FCFS, Priority設(shè)備分配的安全性出錯處理一般由設(shè)備驅(qū)動程序?qū)崿F(xiàn)446.2.2 I/O軟件的組成(22)用戶空間的I/O軟件系統(tǒng)調(diào)用,包括I/O系統(tǒng)調(diào)用,通常由庫過程實(shí)現(xiàn)這些過程所做的工作只是將系統(tǒng)調(diào)用時所用的參數(shù)放在適當(dāng)?shù)奈慌Z,實(shí)際由系統(tǒng)的I/O過程實(shí)現(xiàn)真正的操作SPOOLing(Simultaneous PeriphernalOperating On-Line)系統(tǒng),假脫機(jī)聯(lián)機(jī)情況下實(shí)現(xiàn)的同時外圍操作456.2.2 I/O軟件的組成(23)將獨(dú)占設(shè)備改造成可共享設(shè)備提高了設(shè)備利用率加快了進(jìn)程的執(zhí)行速度構(gòu)成預(yù)輸入程序負(fù)責(zé)將輸入設(shè)備上的信息預(yù)先輸入到可
18、共享設(shè)備的緩沖區(qū)域(輸入井)并將存放信息的位臵記錄下來待用預(yù)輸入程序由操作員敲入預(yù)輸入命令啟動工作46輸入進(jìn)程SPi輸出進(jìn)程SPo輸入緩沖區(qū)Bi輸出緩沖區(qū)Bo6.2.2 I/O軟件的組成(24)47輸入井輸出井輸入設(shè)備輸出設(shè)備6.2.2 I/O軟件的組成(25)井管理程序負(fù)責(zé)管理輸入和輸出緩沖區(qū),記錄每個緩沖區(qū)的作用當(dāng)作業(yè)執(zhí)行過程中要求啟動某臺設(shè)備輸入或輸出時,操作系統(tǒng)截獲該請求并調(diào)出井管理程序,控制從相應(yīng)的輸入井讀或向共享設(shè)備的輸出井(緩沖區(qū))寫。輸入井和輸出井上的信息是以文件的形式記錄的486.2.2 I/O軟件的組成(26)緩輸出程序負(fù)責(zé)從磁盤緩沖區(qū)讀信息向打印機(jī)或其它輸出設(shè)備輸出。當(dāng)設(shè)
19、備空閑或進(jìn)程完成后,系統(tǒng)負(fù)責(zé)調(diào)用緩輸出程序?qū)⒏饔脩舻男畔⒁来螐妮敵鼍驮O(shè)備輸出496.2.2 I/O軟件的組成(27)小結(jié)用戶進(jìn)程層執(zhí)行輸入輸出系統(tǒng)調(diào)用,對I/O數(shù)據(jù)進(jìn)行格式化,為假脫機(jī)輸入/輸出作準(zhǔn)備獨(dú)立于設(shè)備的軟件實(shí)現(xiàn)設(shè)備的命名、設(shè)備的保護(hù)、成塊處理、緩沖技術(shù)和設(shè)備分配設(shè)備驅(qū)動程序設(shè)臵設(shè)備寄存器、檢查設(shè)備的執(zhí)行狀態(tài)中斷處理程序負(fù)責(zé)I/O完成時進(jìn)行中斷處理,喚醒設(shè)備驅(qū)動程序進(jìn)程硬件層實(shí)現(xiàn)物理I/O的操作506.2.2 I/O軟件的組成(28)示例用戶進(jìn)程讀取一個文件中的一塊信息處理過程用戶進(jìn)程發(fā)出一個讀文件的系統(tǒng)調(diào)用設(shè)備獨(dú)立軟件檢查參數(shù)的正確性,若正確,檢查內(nèi)存緩存中有無要讀的信息塊有,從緩
20、沖區(qū)中直接將信息返回用戶無,執(zhí)行物理I/O獨(dú)立于設(shè)備的I/O軟件將設(shè)備的邏輯名轉(zhuǎn)換成物理名,檢查設(shè)備操作權(quán)限516.2.2 I/O軟件的組成(29)將I/O請求排隊(duì),用戶進(jìn)程阻塞等待磁盤操作的完成調(diào)用設(shè)備驅(qū)動程序,向I/O硬件泄放一個讀請求分配緩沖區(qū),準(zhǔn)備接收數(shù)據(jù),并向設(shè)備控制寄存器發(fā)啟動讀命令設(shè)備控制器控制設(shè)備,執(zhí)行數(shù)據(jù)傳輸當(dāng)磁盤將所需塊讀入緩沖區(qū)時,硬件產(chǎn)生一個中斷系統(tǒng)響應(yīng)中斷后,轉(zhuǎn)入中斷處理程序526.2.2 I/O軟件的組成(30)中斷處理程序從設(shè)備獲取所需的狀態(tài)信息,檢查中斷的原因若正常完成,將數(shù)據(jù)傳輸給指定的用戶進(jìn)程空間,喚醒等待該I/O完成的進(jìn)程,將其放入就緒隊(duì)列,等待調(diào)度若出錯
21、,則向設(shè)備驅(qū)動程序發(fā)信號,若可重試,則再啟動設(shè)備重傳一次;否則,向上報(bào)告錯誤用戶進(jìn)程繼續(xù)運(yùn)行536.2.2 I/O軟件的組成(31)546.2.3 同步I/O和異步I/O同步I/O:進(jìn)程發(fā)出I/O請求后阻塞等待,直到數(shù)據(jù)傳輸完成后被喚醒,之后才能訪問被傳輸?shù)臄?shù)據(jù) 異步I/O:允許進(jìn)程發(fā)出I/O請求后繼續(xù)運(yùn)行。將來I/O完成后的通知方式:設(shè)臵進(jìn)程地址空間內(nèi)的某個變量;通過觸發(fā)信號或軟件中斷;進(jìn)程執(zhí)行流之外的某個回調(diào)函數(shù) (Windows 的APC) 對于不必進(jìn)行緩沖讀寫的快速I/O,使用同步I/O更有效;對于需要很長時間的I/O操作,可使用異步I/O556.3 磁盤管理6.3.1 磁盤結(jié)構(gòu)6.3
22、.2磁盤調(diào)度6.3.3 磁盤的錯誤處理6.3.4獨(dú)立磁盤冗余陣列566.3.1 磁盤結(jié)構(gòu)(1)磁盤的物理結(jié)構(gòu)磁盤由若干盤片組成,每片分為兩個表面,表面上覆蓋著磁性材料,用于記錄信息磁盤表面又劃分為磁道,磁道由一組同心圓構(gòu)成(每條磁道存儲相同數(shù)目的二進(jìn)制位,內(nèi)層磁道密度較外層磁道密度高)每條磁道又分為若干個扇區(qū)磁盤的每個表面都定位一個讀寫磁頭,負(fù)責(zé)將信息讀出或?qū)懭氪诺来疟P系統(tǒng)的硬件分為兩部分:磁盤驅(qū)動器和磁盤控制器576.3.1 磁盤結(jié)構(gòu)(2)586.3.1 磁盤結(jié)構(gòu)(3)磁盤的類型硬盤、軟盤單片盤、多片盤固定頭磁盤每個磁道有一個磁頭,磁道間的轉(zhuǎn)換非常迅速, I/O速度快,但需要大量的磁頭,設(shè)備
23、成本很高,應(yīng)用于大容量磁盤浮動頭磁盤在一個磁盤表面只安裝一個磁頭,通過移動磁頭可方便地存取不同磁道上的信息,要求專門的硬件裝臵來移動磁頭,設(shè)備成本降低,但I(xiàn)/O速度較慢,應(yīng)用于中小型磁盤596.3.1 磁盤結(jié)構(gòu)(4)磁盤的訪問時間磁盤上的信息通過多重編址定位定位信息軟盤:驅(qū)動器號、盤面號、磁道號及扇區(qū)號硬盤:驅(qū)動器號、柱面號、磁頭號及扇區(qū)號信息是按塊存儲的,每個塊(稱之為扇區(qū))由硬件指定大小606.3.1 磁盤結(jié)構(gòu)(5)為了存取磁盤上的一個扇區(qū),磁盤的速度由三部分時間組成尋 道 (seek) 時 間 : 系 統(tǒng) 移 動 磁 頭 至 相應(yīng)的磁道或柱面上的時間旋轉(zhuǎn)(Latency)時間:磁頭到達(dá)指
24、定磁道后,等待所需的扇區(qū)旋轉(zhuǎn)到讀/寫頭下的時間傳輸時間:數(shù)據(jù)在磁盤與主存之間實(shí)現(xiàn)數(shù)據(jù)傳輸所用時間服務(wù)一個磁盤請求的總時間是上述三者(尋道時間、旋轉(zhuǎn)時間、傳輸時間)之和616.3.2 磁盤調(diào)度(1)磁盤調(diào)度目標(biāo):使磁盤的平均尋道時間最少調(diào)度算法先來先服務(wù)FCFS最短尋道時間優(yōu)先SSTF掃描法SCAN及循環(huán)掃描法C-SCAN查詢法LOOK及循環(huán)查詢法C-LOOK磁盤請求序列(磁頭):98,183,37,122,14,124,65,67初始磁頭位臵:53626.3.2 磁盤調(diào)度(2)先來先服務(wù)FCFS最簡單的一種調(diào)度形式磁頭移動經(jīng)過的磁道45+85+146+85+108+110+59+2640優(yōu)點(diǎn)容
25、易實(shí)現(xiàn),公平合理缺點(diǎn)完全不考慮隊(duì)列中各個請求情況,致使磁頭頻繁地移動636.3.2 磁盤調(diào)度(3)64先來先服務(wù)FCFS6.3.2 磁盤調(diào)度(4)最短尋道時間優(yōu)先SSTF在將磁頭移向下一請求磁道時,總是選擇移動距離最小的磁道磁頭移動經(jīng)過的磁道12+2+30+23+84+24+2+59236SSTF算法雖然比FCFS算法優(yōu)越,但它不是最優(yōu)的算法將磁頭由53號先移至37號(即使它不是最近的),再移到14號,然后再移到65,67,98,122,124及183號656.3.2 磁盤調(diào)度(5)66最短尋道時間優(yōu)先SSTF6.3.2 磁盤調(diào)度(6)676.3.2 磁盤調(diào)度(7)總的移動距離可減少到210個
26、磁道18+23+51+2+31+24+2+59=210原因一方面使磁頭改變方向最少另一方面大大加快了服務(wù)請求,提高了系統(tǒng)處理效率SSTF可能會導(dǎo)致饑餓問題686.3.2 磁盤調(diào)度(8)掃描法SCAN讀/寫頭在開始由磁盤的一端向另一端移動時,隨時處理所到達(dá)的任何磁道上的服務(wù)請求,直到移到磁盤的另一端為止;在磁盤另一端上,磁頭的方向反轉(zhuǎn),繼續(xù)完成各磁道上的服務(wù)請求磁頭總是連續(xù)不斷地從磁盤的一端移動到另一端磁頭移動經(jīng)過的磁道16+23+79+2+31+24+2+5923612+2+31+24+2+59+178+23331696.3.2 磁盤調(diào)度(9)70掃描法SCAN-16.3.2 磁盤調(diào)度(10)
27、71掃描法SCAN-26.3.2 磁盤調(diào)度(11)在使用SCAN之前,不僅要知道磁頭移動的最后位臵,而且還需要知道磁頭移動的方向掃描法也叫電梯算法(elevator),該方式與電梯在各層間的往返移動非常類似特點(diǎn)如果正好有一個請求在磁頭前進(jìn)方向上到達(dá),那么,這個請求將會立即得到處理。然而,如果一個請求在磁頭剛剛移動過后到達(dá),那么它只能等到磁頭反方向移到時才能得到處理726.3.2 磁盤調(diào)度(12)循環(huán)掃描法C-SCAN假定:對磁道的請求是均勻分布的,考慮對磁道的請求密度,當(dāng)磁頭達(dá)到一端并反向時,落在磁頭之后的請求相對較少,這是由于這些磁道剛剛被處理,而磁盤另一端的請求密度相當(dāng)?shù)馗?,且等待的時間較
28、長與SCAN算法類似,在將磁頭從一端移向另一端時,隨時處理到達(dá)的請求。但是,當(dāng)它已到達(dá)另一端時,磁頭立即返回到開始處。也即回程時,不處理任何請求736.3.2 磁盤調(diào)度(13)74循環(huán)掃描法C-SCAN-16.3.2 磁盤調(diào)度(14)75循環(huán)掃描法C-SCAN-26.3.2 磁盤調(diào)度(15)查詢LOOK及循環(huán)查詢C-LOOK掃描法和循環(huán)掃描法都是將磁頭由磁盤的一端移向另一端,但實(shí)際上沒有一個算法是這樣實(shí)現(xiàn)的。通常,磁頭在向任何方向移動時都是只移到最遠(yuǎn)的一個請求的磁道上。一旦在前進(jìn)的方向上沒有請求到達(dá),磁頭就反向移動即在將磁頭向前移動之前,先查詢有無請求,若有,才移動,否則,立即反向766.3.
29、2 磁盤調(diào)度(16)77查詢LOOK-16.3.2 磁盤調(diào)度(17)78查詢LOOK-26.3.2 磁盤調(diào)度(18)79循環(huán)查詢C-LOOK-16.3.2 磁盤調(diào)度(19)80循環(huán)查詢C-LOOK-26.3.2 磁盤調(diào)度(20)磁盤調(diào)度算法的比較SSTF算法是公認(rèn)的、最具吸引力的算法SCAN和C-SCAN對于磁盤負(fù)載較重的系統(tǒng)更為合適任何調(diào)度算法性能優(yōu)劣都與進(jìn)程對磁盤的請求數(shù)量和方式緊密相關(guān);當(dāng)磁盤等待隊(duì)列中的請求數(shù)量很少超過一個時,所有的算法都是等效的。在這種情況下,最好采用FCFS算法816.3.2 磁盤調(diào)度(21)文件的分配方法將大大地影響對磁盤的服務(wù)請求當(dāng)一個程序讀磁盤上的一個大的連續(xù)
30、文件時,盡管請求讀盤的要求很多,但由于各信息塊連在一起,磁頭的移動距離卻很小若程序讀的是一個鏈接文件或索引文件,盡管這種文件的磁盤空間利用充分,但可能使信息塊分布在整個盤上,導(dǎo)致磁頭的可觀的移動代價(jià)826.3.2 磁盤調(diào)度(22)索引塊的位臵也非常重要目錄文件需要頻繁進(jìn)行存取,應(yīng)將目錄文件放在磁盤的中間,而不是兩端,從而可以有效地減少磁頭的移動應(yīng)將磁盤調(diào)度算法寫成一個獨(dú)立的模塊,以便必要時用不同的算法來替換或干脆去掉不用初始算法可選用FCFS算法或SSTF算法836.3.3 磁盤的錯誤處理(1)常見錯誤程序性錯誤(例如,申請不存在的扇區(qū))瞬時檢查和錯誤(例如,磁頭上有灰塵)永久性的檢查和錯誤(
31、磁盤塊物理損壞)尋道錯誤(例如,尋找柱面6,磁臂卻定位到柱面7)控制器錯誤(控制器拒絕接收命令) 所有錯誤都由磁盤驅(qū)動程序一一進(jìn)行處理 程序性錯誤846.3.3 磁盤的錯誤處理(2)驅(qū)動程序命令控制器去查找一個不存在的柱面、讀一個不存在的扇區(qū)、使用不存在的磁頭、與一個不存在的存儲器地址交換數(shù)據(jù)時,都產(chǎn)生程序性錯誤。大多數(shù)控制器對發(fā)給它的參數(shù)進(jìn)行檢查,并告知是否合法 瞬時檢查和錯誤是由于磁盤表面與磁頭之間的灰塵引起通常是重復(fù)執(zhí)行這個操作,就可消去錯誤856.3.3 磁盤的錯誤處理(3)倘若錯誤繼續(xù)存在,則將該塊標(biāo)記為壞塊一些“智能”磁盤控制器保留了幾個備用磁道,這些磁道對用戶程序不開放。當(dāng)磁盤進(jìn)行格式化時,控制器確定哪些塊是壞的,自動由備份磁道替換它。將壞磁道映射到備用磁道的表格保留在控制器內(nèi)部存儲器和磁盤上,對驅(qū)動程序透明若控制器秘密地改用其它備份柱面,為磁盤設(shè)計(jì)的優(yōu)化調(diào)度算法可能變得很壞866.3.3 磁盤的錯誤處理(4)(a)磁道中有一個壞扇區(qū)(b)使用一個空
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)要素對產(chǎn)業(yè)鏈與創(chuàng)新鏈融合的影響機(jī)制研究
- 業(yè)主租賃車位合同范例
- 隧道爆炸施工方案
- 加盟店品牌授權(quán)合同范例
- 乙方終止房屋合同范例
- 基于多視角的人體三維重建及動作識別算法研究
- 水稻種子低溫萌發(fā)的QTL定位
- 中韓貿(mào)易合同范例
- 鄉(xiāng)鎮(zhèn)家具安裝合同范本
- 蘭溪裝飾合同范例
- 主要河流南、北方河流的不同特征主要湖泊
- 行進(jìn)間接單手低手投籃說課稿
- 寺院管理框架結(jié)構(gòu)圖PPT課件
- 單考單招數(shù)學(xué)公式總結(jié)
- 三打白骨精英文話劇劇本(原創(chuàng))
- 2019第五版新版PFMEA 注塑實(shí)例
- 李雁鳴循環(huán)理論
- 釩電池項(xiàng)目財(cái)務(wù)數(shù)據(jù)分析(范文模板)
- 電暈水測試液配方
- 日處理300t鮮奶的脫脂奶粉生產(chǎn)車間
- 工業(yè)鍋爐水處理系統(tǒng)調(diào)試報(bào)告
評論
0/150
提交評論