計(jì)算機(jī)操作系統(tǒng)課件(第四版)第6章_第1頁
計(jì)算機(jī)操作系統(tǒng)課件(第四版)第6章_第2頁
計(jì)算機(jī)操作系統(tǒng)課件(第四版)第6章_第3頁
計(jì)算機(jī)操作系統(tǒng)課件(第四版)第6章_第4頁
計(jì)算機(jī)操作系統(tǒng)課件(第四版)第6章_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)操作系統(tǒng)課件(第四版)第6章2023/5/1726.1

I/O系統(tǒng)的功能、模型和接口I/O系統(tǒng)的功能I/O系統(tǒng)的層次結(jié)構(gòu)和模型I/O系統(tǒng)的接口I/O系統(tǒng)管理的對(duì)象——I/O設(shè)備和相應(yīng)的設(shè)備管理器。任務(wù)——完成用戶提出的I/O請(qǐng)求,提高I/O速率,提高設(shè)備利用率。2023/5/173、I/O系統(tǒng)的基本功能1、隱藏物理設(shè)備的細(xì)節(jié)

I/O設(shè)備類型多,差異大。利用設(shè)備控制器(硬件)進(jìn)行控制。隱藏物理設(shè)備的使用細(xì)節(jié)。2、與設(shè)備的無關(guān)性

用戶僅提供邏輯設(shè)備名來使用設(shè)備;即插即用功能。3、提高處理機(jī)和I/O設(shè)備的利用率設(shè)備之間、設(shè)備與處理機(jī)之間均可并行操作。要求CPU快速響應(yīng)I/O請(qǐng)求,減少對(duì)設(shè)備運(yùn)行的干預(yù)時(shí)間。2023/5/1744、對(duì)I/O設(shè)備進(jìn)行控制

即驅(qū)動(dòng)程序的功能。具體控制方式與設(shè)備的傳輸速率和傳輸數(shù)據(jù)單位有關(guān)。5、確保對(duì)設(shè)備的正確共享

以共享屬性來分類,分為獨(dú)占設(shè)備、共享設(shè)備。6、錯(cuò)誤處理

設(shè)備包括機(jī)械和電氣部分,易出錯(cuò)和故障。臨時(shí)性錯(cuò)誤(重試)、持久性錯(cuò)誤(向上層報(bào)告)2023/5/175、I/O系統(tǒng)的層次和模型

I/O軟件向下與硬件相關(guān),向上與文件系統(tǒng)、虛擬存儲(chǔ)、用戶直接交換,都需要

I/O系統(tǒng)來實(shí)現(xiàn)

I/O操作。目前均為層次式

I/O系統(tǒng)設(shè)計(jì),單向調(diào)用。1、

I/O軟件的層次——四層1)用戶層軟件:實(shí)現(xiàn)與用戶交互的接口2)設(shè)備獨(dú)立性軟件:3)設(shè)備驅(qū)動(dòng)程序:實(shí)現(xiàn)系統(tǒng)對(duì)設(shè)備發(fā)出指令4)中斷處理程序2023/5/176產(chǎn)生I/O請(qǐng)求、格式化I/O等映射、保護(hù)、分塊、緩沖、分配設(shè)置設(shè)備寄存器、檢查R狀態(tài)執(zhí)行I/O操作保存CPU環(huán)境、轉(zhuǎn)中斷處理程序、恢復(fù)中斷進(jìn)程I/O應(yīng)答2023/5/1772、

I/O系統(tǒng)中各種模塊之間的層次試圖(圖)1)I/O系統(tǒng)的上、下接口(1)I/O系統(tǒng)接口是I/O系統(tǒng)與上層系統(tǒng)之間的接口。向上層提供對(duì)設(shè)備操作的抽象命令,供高層對(duì)設(shè)備的使用。OS在用戶層中提供了與I/O操作有關(guān)的庫函數(shù),供用戶使用。(2)軟件/硬件接口

在上下兩個(gè)接口之間則是I/O系統(tǒng)。2023/5/1782)I/O系統(tǒng)的分層(1)中斷處理程序當(dāng)有I/O設(shè)備發(fā)來中斷請(qǐng)求信號(hào)時(shí),中斷硬件初步處理后轉(zhuǎn)中斷處理程序。(2)設(shè)備驅(qū)動(dòng)程序是進(jìn)程和設(shè)備控制器之間的通信程序。將上層發(fā)來的抽象請(qǐng)求轉(zhuǎn)化為對(duì)設(shè)備的具體參數(shù)和命令,裝入控制器中。(3)設(shè)備獨(dú)立性軟件即設(shè)備無關(guān)性軟件。I/O軟件獨(dú)立于具體使用的物理設(shè)備。2023/5/179、I/O系統(tǒng)接口

I/O系統(tǒng)與高層之間的接口中,根據(jù)設(shè)備類型不同,分為塊設(shè)備接口、流設(shè)備接口、網(wǎng)絡(luò)接口。1、塊設(shè)備接口——控制磁盤、光盤設(shè)備的輸入輸出(1)塊設(shè)備:磁盤等??蓪ぶ?。DMA控制方式。(2)隱藏了磁盤的二維結(jié)構(gòu)。扇區(qū)編號(hào)0——n-1(3)將上層的抽象命令映射為低層操作。如將抽象命令的邏輯塊號(hào)轉(zhuǎn)化為盤面、磁道、扇區(qū)。2023/5/17102、流設(shè)備接口——控制字符設(shè)備的輸入輸出(1)字符設(shè)備:鍵盤、打印機(jī)等。不可尋址。中斷驅(qū)動(dòng)控制方式。(2)put和get操作。為字符設(shè)備建立一個(gè)字符緩沖區(qū)。(3)in-control指令。統(tǒng)一處理各類字符設(shè)備。包含許多參數(shù),每個(gè)參數(shù)對(duì)應(yīng)一個(gè)具體設(shè)備。3、網(wǎng)絡(luò)通信接口操作系統(tǒng)需提供相應(yīng)的網(wǎng)絡(luò)軟件和網(wǎng)絡(luò)通信接口2023/5/17116.2

I/O設(shè)備和設(shè)備控制器I/O設(shè)備設(shè)備控制器I/O通道總線系統(tǒng)I/O設(shè)備有機(jī)械部分和電子部分組成。機(jī)械部分即為一般的I/O設(shè)備,電子部分稱為設(shè)備控制器或適配器(控制卡、接口卡、網(wǎng)卡)2023/5/17121、I/O設(shè)備的類型按傳輸速率分類:低速、中速、高速設(shè)備按信息交換單位分類:塊設(shè)備、字符設(shè)備按設(shè)備的共享屬性:獨(dú)占、共享、虛擬設(shè)備2、設(shè)備與控制器之間的接口在該接口中,有三種類型的信號(hào)線:數(shù)據(jù)信號(hào)線:用于設(shè)備和控制器之間傳送數(shù)據(jù)信號(hào)控制信號(hào)線:控制器向設(shè)備發(fā)送控制信號(hào)時(shí)的通路狀態(tài)信號(hào)線:傳送指示設(shè)備當(dāng)前狀態(tài)的信號(hào)鍵盤、鼠標(biāo)、語言輸入輸出打印機(jī)磁帶機(jī)、磁盤機(jī)、光盤機(jī)、I/O設(shè)備2023/5/1713一些設(shè)備會(huì)有機(jī)械和電子兩部分。電子部分稱為設(shè)備控制器。它是CPU和設(shè)備之間的接口?;竟δ埽?、接收和識(shí)別命令在控制器中應(yīng)具有控制寄存器,用來存放接收的命令和參數(shù),并進(jìn)行譯碼設(shè)備控制器負(fù)責(zé)控制一個(gè)或多個(gè)I/O設(shè)備,實(shí)現(xiàn)設(shè)備和計(jì)算機(jī)間的數(shù)據(jù)交換。、設(shè)備控制器2023/5/1714基本功能(續(xù)上):2、數(shù)據(jù)交換--寄存器實(shí)現(xiàn)CPU與控制器,控制器與設(shè)備間的數(shù)據(jù)交換3、標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài)控制器中的狀態(tài)寄存器記錄設(shè)備的狀態(tài)供CPU了解4、地址識(shí)別--地址譯碼器每個(gè)設(shè)備都有一個(gè)地址,控制器必須能識(shí)別。5、數(shù)據(jù)緩沖--緩沖器解決I/O設(shè)備與CPU、內(nèi)存速度不匹配的矛盾6、差錯(cuò)控制控制器兼管對(duì)由I/O設(shè)備傳送來的數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè)2023/5/1715設(shè)備控制器的組成:設(shè)備控制器與處理機(jī)的接口共有三類線:數(shù)據(jù)線、地址線、控制線設(shè)備控制器與設(shè)備的接口每個(gè)接口中都存在數(shù)據(jù)、控制、狀態(tài)三種信號(hào)I/O邏輯--實(shí)現(xiàn)對(duì)設(shè)備的控制

CPU利用它向控制器發(fā)送命令;負(fù)責(zé)對(duì)命令譯碼和地址譯碼。2023/5/1716地址識(shí)別數(shù)據(jù)緩沖差錯(cuò)控制CPU與控制器接口 控制器與設(shè)備接口數(shù)據(jù)線地址線控制線數(shù)據(jù)寄存器控制/狀態(tài)寄存器I/O邏輯控制器與設(shè)備接口1控制器與設(shè)備接口n………數(shù)據(jù)狀態(tài)控制數(shù)據(jù)狀態(tài)控制設(shè)備控制器的組成2023/5/17176.2.3內(nèi)存映像I/O1、利用特定的I/O指令如,將CPU寄存器的內(nèi)容存入內(nèi)存的某個(gè)單元(k)中:

Storecpu-reg,k訪問設(shè)備:io-Storecpu-reg,dev-no,dev-reg缺點(diǎn):訪問內(nèi)存和訪問設(shè)備需要兩種不同的指令。2、內(nèi)存映像I/O不區(qū)分內(nèi)存單元地址和設(shè)備控制器的寄存器地址。k處于0—n-1,內(nèi)存地址;k>=n,控制器的寄存器地址。驅(qū)動(dòng)程序?qū)O命令轉(zhuǎn)化為具體值裝入設(shè)備控制器的寄存器,可用如下方法完成:2023/5/1718、I/O通道通道通道是專門用于處理I/O的處理機(jī),它控制內(nèi)存和外設(shè)直接進(jìn)行數(shù)據(jù)交換。目的:減輕CPU的負(fù)擔(dān)工作方式:CPU向通道發(fā)送I/O命令,通道執(zhí)行通道程序,完成I/O后向CPU發(fā)送中斷信號(hào)。通道與一般處理機(jī)的不同:指令類型單一,僅能執(zhí)行I/O指令。通道沒有自己的內(nèi)存,通道程序放在主存中。2023/5/1719通道的類型字節(jié)多路通道:是一種按字節(jié)交叉方式工作的通道,采用多路分時(shí)復(fù)用--按時(shí)間片輪轉(zhuǎn)方式共享主通道。數(shù)組選擇通道:獨(dú)占使用,成組(塊)傳送;數(shù)組多路通道:<上述兩種技術(shù)的結(jié)合>2023/5/1720“瓶頸”問題通道資源有限,系統(tǒng)需要同時(shí)啟動(dòng)的設(shè)備可能較多存儲(chǔ)器通道1通道2控制器1控制器2I/O設(shè)備1I/O設(shè)備2I/O設(shè)備3I/O設(shè)備4CPU2023/5/1721“瓶頸”問題解決方法:增加設(shè)備到主機(jī)間的通路。存儲(chǔ)器通道1通道2控制器1控制器2I/O設(shè)備1I/O設(shè)備2I/O設(shè)備3I/O設(shè)備4CPU2023/5/17226.3中斷機(jī)構(gòu)和中斷處理程序

中斷是多道程序?qū)崿F(xiàn)的基礎(chǔ)(進(jìn)程切換),也是設(shè)備管理的基礎(chǔ)(處理機(jī)和外設(shè)并行執(zhí)行)。中斷是IO系統(tǒng)最低一層,是整個(gè)IO系統(tǒng)的基礎(chǔ)。1、中斷和陷入(1)中斷——CPU對(duì)IO設(shè)備發(fā)來的中斷信號(hào)的一種響應(yīng)。中斷是由外部設(shè)備引起,也稱為外中斷。(2)陷入——由CPU內(nèi)部事件引起的中斷。如溢出、非法指令、地址越界、電源故障等。也稱為內(nèi)中斷。2、中斷向量表和中斷優(yōu)先級(jí)1)中斷向量表為每種設(shè)備配以相應(yīng)的中斷處理程序,把該程序的入口地址放在中斷向量表的一個(gè)表項(xiàng)中,并規(guī)定一個(gè)中斷號(hào)用于設(shè)備的中斷請(qǐng)求。2)中斷優(yōu)先級(jí)系統(tǒng)中有多個(gè)中斷信號(hào)源,系統(tǒng)為他們規(guī)定不同的優(yōu)先級(jí)。如:鍵盤<打印機(jī)<磁盤3、對(duì)多中斷源的處理方式(處理打印中斷的時(shí)收到磁盤中斷信號(hào))

1)屏蔽(禁止)中斷

對(duì)任何新到的中斷請(qǐng)求都暫時(shí)不處理,讓其等待。

2)嵌套中斷

多中斷請(qǐng)求時(shí),優(yōu)先響應(yīng)優(yōu)先級(jí)最高的;高優(yōu)先級(jí)中斷請(qǐng)求可搶占低優(yōu)先級(jí)中斷的處理機(jī)。2023/5/17246.3.2中斷處理程序

當(dāng)一個(gè)進(jìn)程請(qǐng)求I/O操作時(shí),該進(jìn)程將被掛起。直到設(shè)備完成I/O操作后,設(shè)備控制器向CPU發(fā)送一個(gè)中斷請(qǐng)求。CPU響應(yīng)后,轉(zhuǎn)中斷處理程序。中斷處理程序執(zhí)行相應(yīng)的處理,處理完后解除進(jìn)程的阻塞狀態(tài)。2023/5/1725(1)測(cè)定是否有未響應(yīng)的中斷信號(hào)當(dāng)設(shè)備完成一個(gè)字符的讀入(如字符設(shè)備),設(shè)備控制器向處理機(jī)發(fā)送一個(gè)中斷請(qǐng)求信號(hào),請(qǐng)求處理機(jī)將字符讀入內(nèi)存。處理機(jī)執(zhí)行完當(dāng)前指令后都要檢測(cè)是否有未響應(yīng)的中斷信號(hào)。(2)保護(hù)被中斷進(jìn)程的CPU環(huán)境

保存程序狀態(tài)字PSW和程序計(jì)數(shù)器PC中下一條指令的地址,入中斷保留區(qū)(棧)中。所有CPU寄存器的內(nèi)容入棧。中斷處理程序的處理過程分成以下幾個(gè)步驟:(3)轉(zhuǎn)入相應(yīng)的設(shè)備處理程序

處理機(jī)測(cè)試各個(gè)中斷源,確定IO設(shè)備,并發(fā)送確認(rèn)信號(hào)。設(shè)備收到信號(hào)后,取消中斷請(qǐng)求信號(hào)。將設(shè)備中斷處理程序的入口地址裝入到PC中。(4)進(jìn)行中斷處理不同的設(shè)備有不同的中斷處理程序。(5)恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)中斷處理完成后,恢復(fù)CPU現(xiàn)場(chǎng),退出中斷。是否返回被中斷的進(jìn)程,取決于:

a)采用屏蔽中斷方式。返回至被中斷的進(jìn)程

b)采用中斷嵌套方式,考慮有無優(yōu)先級(jí)更高的中斷請(qǐng)求2023/5/1727喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程保護(hù)被中斷進(jìn)程的CPU環(huán)境分析中斷原因,轉(zhuǎn)入相應(yīng)的設(shè)備處理程序打印機(jī)中斷處理程序終端中斷處理程序磁盤中斷處理程序恢復(fù)被中斷進(jìn)程的CPU現(xiàn)場(chǎng)返回被中斷的進(jìn)程,繼續(xù)執(zhí)行中斷請(qǐng)求信號(hào)unix把除第四步之外的分集中起來,形成總控程序。2023/5/17286.4設(shè)備驅(qū)動(dòng)程序

設(shè)備處理程序又稱設(shè)備驅(qū)動(dòng)程序,是I/O進(jìn)程與設(shè)備控制器之間的通信程序。

主要任務(wù):接收上層軟件發(fā)來的抽象要求,比如:Read、Write等命令,再把它們轉(zhuǎn)化為具體要求發(fā)送給設(shè)備控制器,啟動(dòng)設(shè)備執(zhí)行;同時(shí),還負(fù)責(zé)把設(shè)備控制器發(fā)來的信號(hào)傳送給上層軟件。2023/5/17291、設(shè)備驅(qū)動(dòng)程序的功能接收由設(shè)備獨(dú)立性軟件發(fā)來的命令和參數(shù),轉(zhuǎn)換為具體要求。(盤塊號(hào)->盤面、磁道號(hào)、扇區(qū)號(hào))檢查用戶I/O請(qǐng)求的合法性,了解設(shè)備狀態(tài),傳遞或設(shè)置參數(shù)發(fā)出I/O命令,啟動(dòng)設(shè)備,或掛在相應(yīng)的設(shè)備隊(duì)列上及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請(qǐng)求,根據(jù)中斷類型調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。6.4.1設(shè)備驅(qū)動(dòng)程序概述2023/5/17302、設(shè)備處理方式為每一類設(shè)備設(shè)置一個(gè)進(jìn)程,專門用于執(zhí)行該類設(shè)備的I/O操作。在整個(gè)系統(tǒng)中設(shè)置一個(gè)I/O進(jìn)程,專門用于執(zhí)行系統(tǒng)中所有各類設(shè)備的I/O操作。不設(shè)置專門的設(shè)備處理進(jìn)程,只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備驅(qū)動(dòng)程序,供用戶進(jìn)程或系統(tǒng)進(jìn)程調(diào)用。(較多采用)2023/5/17313、設(shè)備驅(qū)動(dòng)程序的特點(diǎn)驅(qū)動(dòng)程序主要是指在請(qǐng)求I/O的進(jìn)程與設(shè)備控制器之間的一個(gè)通信和轉(zhuǎn)換程序。驅(qū)動(dòng)程序與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān),因而對(duì)不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序。驅(qū)動(dòng)程序與I/O設(shè)備所采用的I/O控制方式緊密相關(guān)。(中斷驅(qū)動(dòng)、DMA方式)其中一部分必須用匯編語言書寫,固化在ROM中。驅(qū)動(dòng)程序應(yīng)允許可重入。2023/5/1732將抽象要求轉(zhuǎn)換為具體要求檢查I/O請(qǐng)求的合法性讀出和檢查設(shè)備的狀態(tài)傳送必要的參數(shù)(磁盤在讀寫前,要傳遞參數(shù)至控制器的寄存器中)啟動(dòng)I/O設(shè)備

設(shè)備驅(qū)動(dòng)程序的主要任務(wù)是啟動(dòng)指定設(shè)備。具體的處理過程如下:6.4.2設(shè)備驅(qū)動(dòng)程序的處理過程2023/5/17331、設(shè)備驅(qū)動(dòng)程序的功能接收由設(shè)備獨(dú)立性軟件發(fā)來的命令和參數(shù),轉(zhuǎn)換為具體要求。(盤塊號(hào)->盤面、磁道號(hào)、扇區(qū)號(hào))檢查用戶I/O請(qǐng)求的合法性,了解設(shè)備狀態(tài),傳遞或設(shè)置參數(shù)發(fā)出I/O命令,啟動(dòng)設(shè)備,或掛在相應(yīng)的設(shè)備隊(duì)列上及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請(qǐng)求,根據(jù)中斷類型調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。6.4.2設(shè)備驅(qū)動(dòng)程序的處理過程2023/5/17346.4.3

對(duì)I/O設(shè)備的控制方式

使用輪詢的可編程I/O方式使用中斷的可編程I/O方式直接存儲(chǔ)器訪問(DMA)方式

I/O通道控制方式

前兩種是以字節(jié)為單位進(jìn)行數(shù)據(jù)傳遞,后兩種是以數(shù)據(jù)塊為單位進(jìn)行數(shù)據(jù)傳遞。2023/5/17351、使用輪詢的可編程I/O方式忙——等待方式CPU向控制器發(fā)指令,啟動(dòng)I/O設(shè)備輸入數(shù)據(jù)時(shí),同時(shí)把狀態(tài)寄存器中的狀態(tài)標(biāo)志busy置1;然后不斷地循環(huán)測(cè)試busy。如果busy=1,說明I/O設(shè)備忙,CPU再進(jìn)行下一輪檢測(cè);如果busy=0,說明I/O操作結(jié)束,CPU執(zhí)行下一條指令。2023/5/17362、使用中斷的可編程I/O方式中斷驅(qū)動(dòng)I/O過程啟動(dòng):由CPU根據(jù)進(jìn)程的I/O請(qǐng)求,向設(shè)備控制器發(fā)出一條I/O命令;此后CPU繼續(xù)執(zhí)行其它進(jìn)程,即CPU與外設(shè)并行工作。I/O設(shè)備完成操作后,由控制器通過控制線向CPU發(fā)送一中斷信號(hào),由CPU檢查I/O操作是否正確,……優(yōu)點(diǎn)——系統(tǒng)效率高:并行工作、用極少的時(shí)間處理中斷缺點(diǎn):設(shè)備與CPU之間的數(shù)據(jù)交換仍以字(節(jié))為單位。2023/5/17373、直接存儲(chǔ)器訪問(DMA)方式1、DMA(DirectMemoryAccess)控制方式的引入適應(yīng)一次傳送大量數(shù)據(jù)的應(yīng)用要求;盡量減少CPU對(duì)高速外設(shè)的干預(yù);該方式的特點(diǎn):數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊。所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存,或者相反僅在傳送一個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需要CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完成的2023/5/17382、DMA控制器的組成命令/狀態(tài)寄存器CR內(nèi)存地址寄存器MAR數(shù)據(jù)寄存器DR:

暫存從設(shè)備到內(nèi)存的數(shù)據(jù),或反之?dāng)?shù)據(jù)計(jì)數(shù)器DC:

存放本次CPU要讀或?qū)懙淖?節(jié))數(shù)CPU內(nèi)存主機(jī)-控制器接口DRMARDCCRI/O控制邏輯控制器與塊設(shè)備接口…DMA控制器系統(tǒng)總線命令count2023/5/17393、DMA工作過程(以磁盤數(shù)據(jù)讀入為例)CPU向磁盤控制器發(fā)送:讀命令到CR中、內(nèi)存的目標(biāo)起址到MAR中、數(shù)據(jù)字節(jié)數(shù)到DC中、磁盤中的源地址到控制器的控制邏輯上;啟動(dòng)DMA控制器進(jìn)行數(shù)據(jù)傳送。此后,CPU可以執(zhí)行其它任務(wù);DMA控制器按照命令傳送數(shù)據(jù):先從磁盤讀入一個(gè)字節(jié)的數(shù)據(jù)送入DR后,再傳送到內(nèi)存中。修改并檢查DC中的數(shù)值:若DC中的值不為0,則繼續(xù)傳送下一個(gè)字節(jié);為0,則發(fā)出一個(gè)中斷請(qǐng)求。2023/5/17404、I/O通道控制方式1、I/O通道控制方式的引入進(jìn)一步減少CPU對(duì)I/O操作的干預(yù);以多個(gè)塊為單位進(jìn)行數(shù)據(jù)傳送;一次傳送多組數(shù)據(jù)到多個(gè)不同的內(nèi)存區(qū)域。2、通道程序通道是通過執(zhí)行通道程序,并與設(shè)備控制器共同實(shí)現(xiàn)對(duì)I/O設(shè)備的控制的。通道程序由一系列通道指令(通道命令)構(gòu)成。2023/5/1741

每條指令都包含以下信息:1、操作碼——指令執(zhí)行的操作:讀/寫2、內(nèi)存地址——字符送入/取出內(nèi)存的首址3、計(jì)數(shù)——表示本條指令所要讀/寫數(shù)據(jù)的字節(jié)數(shù)4、通道程序結(jié)束位PP=1表示本條指令是最后一條5、記錄結(jié)束標(biāo)志位RR=1表示這是處理某記錄的最后一條指令2023/5/1742

下列通道程序的功能:將內(nèi)存中不同地址的數(shù)據(jù),寫成多個(gè)記錄。2023/5/17436.5與設(shè)備無關(guān)的I/O軟件設(shè)備獨(dú)立性(設(shè)備無關(guān)性)的含義:應(yīng)用程序中所用的設(shè)備,不局限于使用某個(gè)具體的物理設(shè)備。與設(shè)備無關(guān)的I/O軟件(設(shè)備獨(dú)立性軟件)含義:在設(shè)備驅(qū)動(dòng)程序之上設(shè)置一層軟件,以實(shí)現(xiàn)設(shè)備獨(dú)立性。2023/5/17441、以物理設(shè)備名使用設(shè)備應(yīng)用程序中所用的設(shè)備與系統(tǒng)中的物理設(shè)備直接相關(guān)。問題:不靈活,給用戶帶來不便。2、引入了邏輯設(shè)備名

邏輯設(shè)備是抽象的設(shè)備名,如/dev/printer,并不指定哪一臺(tái)打印機(jī)。好處:系統(tǒng)設(shè)備分配靈活??蓪?shí)現(xiàn)I/O重定向。即:用于IO操作的設(shè)備可更換,而不必改變應(yīng)用程序。如修改邏輯設(shè)備表:終端->打印機(jī)

與設(shè)備無關(guān)軟件的基本概念2023/5/1745為了實(shí)現(xiàn)邏輯設(shè)備名到物理設(shè)備名的映射,系統(tǒng)必須設(shè)置一張邏輯設(shè)備表LUT(LogicalUnitTable),能夠?qū)?yīng)用程序中所使用的邏輯設(shè)備名映射為物理設(shè)備名,并提供該設(shè)備驅(qū)動(dòng)程序的入口地址。3、邏輯設(shè)備名到物理設(shè)備名的映射邏輯設(shè)備表2023/5/1746(1)單用戶系統(tǒng)中,在整個(gè)系統(tǒng)中設(shè)置一張LUT,不允許有相同的邏輯設(shè)備名(2)多用戶系統(tǒng)中,為每個(gè)用戶設(shè)置一張LUT,用戶登錄時(shí),建立LUT并放入進(jìn)程的PCB中。2、邏輯設(shè)備表的設(shè)置問題2023/5/17476.5.2

與設(shè)備無關(guān)的軟件

設(shè)備無關(guān)的軟件是I/O系統(tǒng)的最高層軟件,包括了執(zhí)行所有設(shè)備公有操作的軟件。具體包括:

1、設(shè)備驅(qū)動(dòng)程序的統(tǒng)一接口

可以方便添加新設(shè)備的驅(qū)動(dòng)程序。

2、緩沖管理(節(jié))

3、差錯(cuò)控制——暫時(shí)性錯(cuò)誤、永久性錯(cuò)誤

4、對(duì)獨(dú)占設(shè)備的分配與回收對(duì)獨(dú)占設(shè)備由系統(tǒng)進(jìn)行統(tǒng)一的分配和回收處理。

5、獨(dú)立于設(shè)備的邏輯數(shù)據(jù)塊

隱藏不同設(shè)備的物理數(shù)據(jù)塊大小的差異,向高層軟件提供大小統(tǒng)一的邏輯數(shù)據(jù)塊。2023/5/17481、設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)

為了實(shí)現(xiàn)對(duì)I/O設(shè)備的管理和控制,需要對(duì)每臺(tái)設(shè)備、通道、控制器的情況進(jìn)行登記。設(shè)備分配程序依據(jù)這些信息進(jìn)行設(shè)備分配。設(shè)備控制表DCT(為每臺(tái)設(shè)備配置一張)控制器控制表COCT通道控制表CHCT系統(tǒng)設(shè)備表SDT6.5.3

設(shè)備分配2023/5/17492023/5/17502、設(shè)備分配時(shí)應(yīng)考慮的因素1、設(shè)備的固有屬性獨(dú)享設(shè)備共享設(shè)備虛擬設(shè)備2、設(shè)備分配算法先來先服務(wù)優(yōu)先級(jí)高者優(yōu)先3、設(shè)備分配中的安全性安全分配方式:進(jìn)程發(fā)出I/O請(qǐng)求后就進(jìn)入阻塞態(tài)不安全分配方式:進(jìn)程發(fā)出I/O請(qǐng)求仍繼續(xù)運(yùn)行2023/5/17511、基本的設(shè)備分配程序

分配設(shè)備分配控制器分配通道2、設(shè)備分配程序的改進(jìn)

1)增加設(shè)備的獨(dú)立性邏輯設(shè)備名請(qǐng)求I/O。系統(tǒng)應(yīng)查找所有該類設(shè)備的DCT。

2)考慮多通路情況對(duì)多個(gè)控制器和通道的分配,必須查找所有的控制器和通道。3、獨(dú)占設(shè)備的分配程序2023/5/1752基本的設(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操作不忙不忙不忙忙忙安全不安全忙2023/5/17536.6

用戶層的I/O軟件系統(tǒng)調(diào)用庫函數(shù)假脫機(jī)系統(tǒng)

大部分的IO軟件都放在操作系統(tǒng)內(nèi)部。小部分在用戶層。其中包括與用戶程序鏈接在一起的庫函數(shù),及完全運(yùn)行于內(nèi)核之外的假脫機(jī)系統(tǒng)等。2023/5/17546.6.1系統(tǒng)調(diào)用與庫函數(shù)(自學(xué))1、系統(tǒng)調(diào)用2、庫函數(shù)2023/5/17556.6.2假脫機(jī)(SPOOLing)系統(tǒng)1、什么是SPOOLing技術(shù)(假脫機(jī)技術(shù))

定義:在聯(lián)機(jī)的情況下實(shí)現(xiàn)的同時(shí)外圍操作特點(diǎn):是對(duì)脫機(jī)輸入輸出系統(tǒng)的模擬。因此,必須建立在具有多道程序功能的操作系統(tǒng)上,而且需要高速外存的支持。方式:將數(shù)據(jù)從輸入設(shè)備傳送到磁盤或反之。通過它可以將一臺(tái)獨(dú)占的物理設(shè)備虛擬為多臺(tái)邏輯設(shè)備,從而允許多個(gè)用戶(進(jìn)程)共享。2023/5/17562、SPOOLing系統(tǒng)的組成輸入井和輸出井:在磁盤上開辟的兩個(gè)大存儲(chǔ)空間輸入緩沖區(qū)和輸出緩沖區(qū):在內(nèi)存中開辟的兩個(gè)緩沖區(qū)輸入進(jìn)程Spi和輸出進(jìn)程Spo:是內(nèi)存中的兩個(gè)進(jìn)程井管理程序:控制作業(yè)與磁盤井之間信息的交換

2023/5/1757輸入進(jìn)程SPi輸出進(jìn)程SPo輸入緩沖區(qū)Bi輸出緩沖區(qū)Bo輸入設(shè)備輸出設(shè)備磁盤輸入井輸出井2023/5/17583、假脫機(jī)打印機(jī)系統(tǒng)SPOOLing系統(tǒng)接收到用戶進(jìn)程的打印輸出請(qǐng)求后:由輸出進(jìn)程在輸出井中為之申請(qǐng)一個(gè)空閑磁盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;輸出進(jìn)程再為用戶進(jìn)程申請(qǐng)一張空白的用戶請(qǐng)求打印表,并將用戶的打印要求填入其中,再將該表掛到請(qǐng)求打印隊(duì)列上。當(dāng)打印機(jī)空閑時(shí),輸出進(jìn)程將從請(qǐng)求打印隊(duì)列的隊(duì)首取出一張請(qǐng)求打印表,再從輸出井把數(shù)據(jù)送到內(nèi)存緩沖區(qū),啟動(dòng)打印機(jī)打印輸出。打印完后,輸出進(jìn)程檢查請(qǐng)求打印隊(duì)列……2023/5/17594、SPOOLing系統(tǒng)的特點(diǎn):提高了I/O的速度,緩和了CPU與低速I/O設(shè)備速度不匹配的矛盾利用高速共享設(shè)備,將獨(dú)占設(shè)備改造為共享設(shè)備實(shí)現(xiàn)了虛擬設(shè)備功能:用戶都感到獨(dú)占了一臺(tái)設(shè)備2023/5/17605、守護(hù)進(jìn)程(deamon)守護(hù)進(jìn)程取代假脫機(jī)管理進(jìn)程。執(zhí)行以下功能:為用戶申請(qǐng)磁盤緩沖區(qū)的空閑盤塊、寫入打印數(shù)據(jù)、返回該盤塊的首址。守護(hù)進(jìn)程是允許使用打印機(jī)的唯一進(jìn)程。打印進(jìn)程要將要求打印的文件放在假脫機(jī)文件隊(duì)列中。并喚醒守護(hù)進(jìn)程。守護(hù)進(jìn)程的任務(wù)是按照隊(duì)列中每個(gè)文件的說明執(zhí)行逐個(gè)打印任務(wù),直至全部完成,然后休眠??傊?,凡是需要將獨(dú)占設(shè)備改造為共享設(shè)備時(shí),都要為該設(shè)備配置守護(hù)進(jìn)程和假脫機(jī)文件隊(duì)列。2023/5/17616.7

緩沖區(qū)管理

緩沖的引入單緩沖和雙緩沖循環(huán)緩沖緩沖池2023/5/1762

提高CPU與I/O設(shè)備之間的并行性、緩沖的引入緩和CPU與I/O設(shè)備間速度不匹配的矛盾減少對(duì)CPU的中斷頻率,放寬對(duì)CPU中斷響應(yīng)時(shí)間的限制1位緩沖送內(nèi)存8位緩沖寄存器8位緩沖寄存器送內(nèi)存(a)(b)(c)根據(jù)I/O控制方式,緩沖的實(shí)現(xiàn)方法有兩種,一種是采用專用硬件緩沖器,另一種方法是內(nèi)存緩沖區(qū)又稱軟件緩沖。2023/5/1763

根據(jù)系統(tǒng)設(shè)置的緩沖器的個(gè)數(shù),可把緩沖技術(shù)分為:

單緩沖雙緩沖循環(huán)緩沖緩沖池2023/5/17646.7.2單緩沖和雙緩沖1、單緩沖在設(shè)備和處理機(jī)之間設(shè)置一個(gè)緩沖區(qū)。T和C是可以并行的。系統(tǒng)對(duì)每個(gè)數(shù)據(jù)的處理時(shí)間為Max(C,T)+M。處理(C)工作區(qū)緩沖區(qū)I/O設(shè)備輸入(T)傳送(M)用戶進(jìn)程T1T2T3T4M1M2M3C1C2C3t(塊設(shè)備)以塊設(shè)備數(shù)據(jù)讀入為例:2023/5/17652、雙緩沖-緩沖對(duì)換目的:加快輸入輸出的速度。系統(tǒng)處理每個(gè)數(shù)據(jù)的時(shí)間可粗略認(rèn)為Max(C,T)。當(dāng)T>C,可使塊設(shè)備連續(xù)輸入;反之可使CPU不必等待設(shè)備輸入工作區(qū)緩沖區(qū)1I/O塊設(shè)備緩沖區(qū)2用戶進(jìn)程輸入(T)傳送(M)處理(C)以塊設(shè)備數(shù)據(jù)讀入為例:T1(緩沖1)T2(緩沖2)T3(緩沖3)T4(緩沖4)M1M2M3C1C2C3tM4C4注:C<T塊設(shè)備連續(xù)輸入2023/5/1766緩沖區(qū)緩沖區(qū)(a)單緩沖A機(jī)B機(jī)(b)雙緩沖A機(jī)B機(jī)接受緩沖區(qū)接受緩沖區(qū)發(fā)送緩沖區(qū)發(fā)送緩沖區(qū)

如果在實(shí)現(xiàn)兩臺(tái)機(jī)器通信時(shí),只配置單緩沖,那么在任一時(shí)刻只能實(shí)現(xiàn)單方向的數(shù)據(jù)傳輸。

為了實(shí)現(xiàn)雙向數(shù)據(jù)傳輸,必須在兩臺(tái)機(jī)器中都設(shè)置兩個(gè)緩沖區(qū)。分別用在發(fā)送和接收。2023/5/17676.7.3循環(huán)緩沖循環(huán)緩沖的引入當(dāng)輸入和輸出的速度相差很大時(shí),雙緩沖效果不理想,但可增加緩沖區(qū)的數(shù)量,改善情況循環(huán)緩沖是把多個(gè)緩沖區(qū)連接起來組成兩部分,一部分專門用于輸入,另一部分專門用于輸出的緩沖結(jié)構(gòu)。例如對(duì)于用做輸入的循環(huán)緩沖區(qū),通常提供給輸入進(jìn)程和計(jì)算進(jìn)程使用,輸入進(jìn)程不斷向空緩沖區(qū)中輸入數(shù)據(jù),計(jì)算進(jìn)程則從滿緩沖區(qū)中提取數(shù)據(jù)用于計(jì)算。2023/5/17681、循環(huán)緩沖的組成:多個(gè)緩沖區(qū)、多個(gè)指針每個(gè)緩沖區(qū)大小相同。用做輸入的緩沖區(qū)的類型有:

空緩沖區(qū)R、已裝滿數(shù)據(jù)的緩沖區(qū)G、工作緩沖區(qū)C指針類型:指示計(jì)算進(jìn)程的下一個(gè)可用緩沖區(qū)G的指針nextg

指示輸入進(jìn)程下次可用的空緩沖區(qū)R的指針nexti

指示計(jì)算進(jìn)程正在使用的緩沖區(qū)C的指針current2023/5/1769GetBuf()

計(jì)算進(jìn)程和輸入進(jìn)程可利用下述兩個(gè)過程使用循環(huán)緩沖區(qū):GetBuf()ReleaseBuf()RGGGRGnextinextg123456RGGGRCnextinextgcurrent123456RGGGRR123456nextgnextiReleaseBuf()2023/5/1770RGGGRR123456nextgnexti3、進(jìn)程的同步Nexti指針追上Nextg指針。意味著輸入進(jìn)程輸入數(shù)據(jù)的速度大于計(jì)算進(jìn)程處理數(shù)據(jù)的速度,再無空緩沖區(qū)可用。輸入進(jìn)程應(yīng)阻塞。Nextg指針追上Nexti指針。意味著輸入數(shù)據(jù)的速度低于計(jì)算進(jìn)程處理數(shù)據(jù)的速度,再無裝有數(shù)據(jù)的緩沖區(qū)可用。計(jì)算進(jìn)程應(yīng)阻塞。2023/5/17716.7.4緩沖池緩沖池的引入把專用循環(huán)緩沖變?yōu)楣镁彌_池提高內(nèi)存利用率。同時(shí)用于輸入/輸出的公用緩沖池的組成:空閑緩沖區(qū)裝滿輸入數(shù)據(jù)的緩沖區(qū)裝滿輸出數(shù)據(jù)的緩沖區(qū)組織隊(duì)列:空緩沖(區(qū))隊(duì)列emq:隊(duì)首指針F(emq)、隊(duì)尾指針L(emq)。2023/5/1772由于緩沖區(qū)是臨界資源,在使用緩沖區(qū)時(shí)都有申請(qǐng)、釋放和互斥的問題。除了上述三個(gè)隊(duì)列外,還有四種工作緩沖區(qū):用于收容輸入數(shù)據(jù)的工作緩沖區(qū)用于提取輸入數(shù)據(jù)的工作緩沖區(qū)用于收容輸出數(shù)據(jù)的工作緩沖區(qū)用于提取輸出數(shù)據(jù)的工作緩沖區(qū)輸入緩沖(區(qū))隊(duì)列inq:隊(duì)首指針F(inq)、隊(duì)尾指針L(inq)輸出緩沖(區(qū))隊(duì)列outq:隊(duì)首指針F(outq)、隊(duì)尾指針L(outq)2023/5/1773緩沖區(qū)的四種工作方式收容輸入:收容輸入設(shè)備的輸入數(shù)據(jù)提取輸入:計(jì)算進(jìn)程提取緩沖區(qū)中的數(shù)據(jù)使用收容輸出:計(jì)算進(jìn)程輸出結(jié)果數(shù)據(jù)到緩沖區(qū)提取輸出:輸出設(shè)備提取緩沖區(qū)中的數(shù)據(jù)緩沖池收容輸入提取輸入提取輸出收容輸出hinsinsouthout用戶程序Getbuf(inq)Putbuf(emq,sin)Getbuf(outq)Putbuf(emq,sout)Getbuf(emq)Putbuf(outq,hout)Getbuf(emq)Putbuf(inq,hin)2023/5/17746.8

磁盤存儲(chǔ)器的性能和調(diào)度磁盤性能簡(jiǎn)述磁盤調(diào)度磁盤高速緩存2023/5/1775、磁盤性能簡(jiǎn)述1、數(shù)據(jù)的組織和格式盤片和盤面,磁道(500-2000),扇區(qū)(10-100)格式化每個(gè)扇區(qū)包括兩個(gè)字段:標(biāo)識(shí)符字段、數(shù)據(jù)字段2、磁盤的類型固定頭磁盤:每條磁道上都有磁頭,裝在磁臂中。移動(dòng)頭磁盤:每個(gè)盤面一個(gè)磁頭,裝在磁臂中,磁頭能夠移動(dòng)以尋道。2023/5/17763、磁盤訪問時(shí)間尋道時(shí)間Ts把磁臂(磁頭)移動(dòng)到指定磁道上所經(jīng)歷的時(shí)間,包含啟動(dòng)磁臂和磁頭移動(dòng)n條磁道所花費(fèi)的時(shí)間。旋轉(zhuǎn)延遲時(shí)間T指定扇區(qū)移動(dòng)到磁頭下面所經(jīng)歷的時(shí)間。與盤面的旋轉(zhuǎn)速度有關(guān)。5400轉(zhuǎn)—平均旋轉(zhuǎn)延遲時(shí)間;7200轉(zhuǎn)—平均旋轉(zhuǎn)延遲時(shí)間傳輸時(shí)間Tt把數(shù)據(jù)從磁盤讀出或向磁盤寫入數(shù)據(jù)所經(jīng)歷的時(shí)間。與旋轉(zhuǎn)速度和一次讀寫的數(shù)據(jù)量有關(guān)。2023/5/17776.8.2磁盤調(diào)度先來先服務(wù)FCFS最短尋道時(shí)間優(yōu)先SSTF掃描(SCAN)算法循環(huán)掃描(CSCAN)算法N步SCAN算法FSCAN算法2023/5/17781、先來先服務(wù)FCFS根據(jù)進(jìn)程請(qǐng)求訪問磁盤的先后次序進(jìn)行調(diào)度。優(yōu)點(diǎn):公平、簡(jiǎn)單,每個(gè)進(jìn)程的請(qǐng)求依次得到處理缺點(diǎn):平均尋道時(shí)間可能較長(zhǎng),僅適用于磁盤請(qǐng)求較少的場(chǎng)合。2023/5/1779FCFS調(diào)度算法有九個(gè)進(jìn)程先后提出磁盤I/O請(qǐng)求:55,58,39,18,90,160,150,38,1842023/5/17802、最短尋道時(shí)間優(yōu)先(SSTF)選擇要求訪問的磁道與當(dāng)前磁頭所在的磁道距離最近的進(jìn)程(磁盤請(qǐng)求),使每次的尋道時(shí)間最短。該算法不能保證平均尋道時(shí)間最短。可能導(dǎo)致“饑餓”現(xiàn)象。2023/5/1781SSTF調(diào)度算法有九個(gè)進(jìn)程先后提出磁盤I/O請(qǐng)求:55,58,39,18,90,160,150,38,1842023/5/17823、掃描(Scan)算法磁頭每次只作單方向移動(dòng),直到到達(dá)邊緣磁道為止,然后再作反向移動(dòng)。下一次待訪問的磁道只能在此磁頭移動(dòng)的前方,且選擇磁頭移動(dòng)距離最近的一個(gè)磁盤請(qǐng)求響應(yīng)。又稱為“電梯調(diào)度算法”。消除了饑餓現(xiàn)象。2023/5/1783SCAN調(diào)度算法

有九個(gè)進(jìn)程先后提出磁盤I/O請(qǐng)求:55,58,39,18,90,160,150,38,1842023/5/17844、循環(huán)掃描(CScan)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論