




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、*發(fā)展歷史發(fā)展歷史 第一代用鍵盤和打印機第一代用鍵盤和打印機 第二代用鼠標和調(diào)制解調(diào)器(俗稱第二代用鼠標和調(diào)制解調(diào)器(俗稱“貓貓”) 第三代用手寫筆和掃描儀等第三代用手寫筆和掃描儀等 另外,還有眾多的專業(yè)領域的設備。另外,還有眾多的專業(yè)領域的設備。*外部設備分類外部設備分類1.按使用特性分按使用特性分 存儲型設備存儲型設備 輸入型設備(輸入型設備(外設外設主機主機) 輸出型設備(主機輸出型設備(主機外設)外設) 輸入輸出型設備輸入輸出型設備2.2.按數(shù)據(jù)組織分按數(shù)據(jù)組織分 塊設備塊設備 以數(shù)據(jù)塊為單位存儲、傳輸信息以數(shù)據(jù)塊為單位存儲、傳輸信息 字符設備字符設備 以字符為單位存儲、傳輸信息以字符
2、為單位存儲、傳輸信息3.按外部設備的從屬關系分按外部設備的從屬關系分 系統(tǒng)設備系統(tǒng)設備 指操作系統(tǒng)生成時,登記在系統(tǒng)中的標準設備指操作系統(tǒng)生成時,登記在系統(tǒng)中的標準設備 (如終端、打印機、磁盤機等)(如終端、打印機、磁盤機等) 用戶設備用戶設備 指在系統(tǒng)生成時,未登記在系統(tǒng)中的非標準設指在系統(tǒng)生成時,未登記在系統(tǒng)中的非標準設備。對于這類設備的處理程序由用戶提供,并將備。對于這類設備的處理程序由用戶提供,并將其納入系統(tǒng),由系統(tǒng)代替用戶實施管理。其納入系統(tǒng),由系統(tǒng)代替用戶實施管理。 (如(如A/DA/D,D/AD/A轉換器,轉換器,CADCAD所用專用設備)所用專用設備)4. 按資源分配角度分按資
3、源分配角度分 獨占設備獨占設備 在一段時間內(nèi)只能有一個進程使用的設備,一在一段時間內(nèi)只能有一個進程使用的設備,一般為低速般為低速I/O設備。(如打印機,磁帶等)設備。(如打印機,磁帶等) 共享設備共享設備 在一段時間內(nèi)可有多個進程共同使用的設備,在一段時間內(nèi)可有多個進程共同使用的設備,多個進程以交叉的方式來使用設備,其資源利多個進程以交叉的方式來使用設備,其資源利用率高。(如硬盤)用率高。(如硬盤) 虛設備虛設備 在一類設備上模擬另一類設備,常用共享設備在一類設備上模擬另一類設備,常用共享設備模擬獨占設備,用高速設備模擬低速設備,被模擬獨占設備,用高速設備模擬低速設備,被模擬的設備稱為虛設備模
4、擬的設備稱為虛設備 (將慢速的獨占設備改造成多個用戶可共享的(將慢速的獨占設備改造成多個用戶可共享的設備,提高設備的利用率)設備,提高設備的利用率)(為了提高資源利用率,如(為了提高資源利用率,如SPOOLingSPOOLing技術就使用技術就使用了虛設備技術了虛設備技術用硬盤模擬輸入輸出設備。)用硬盤模擬輸入輸出設備。) SPOOLing SPOOLing技術技術 為解決獨立設備數(shù)量少,速度慢,不能滿足眾多進程的為解決獨立設備數(shù)量少,速度慢,不能滿足眾多進程的要求,而且在進程獨占設備期間,設備利用率比較低而要求,而且在進程獨占設備期間,設備利用率比較低而提出的一種設備管理技術。提出的一種設備
5、管理技術。5.從程序使用角度分從程序使用角度分 邏輯設備邏輯設備 物理設備物理設備* * * * * 設備管理的目的和任務設備管理的目的和任務1. 1. 按照用戶的請求,控制設備的各種操作,完成按照用戶的請求,控制設備的各種操作,完成I/OI/O設備與內(nèi)存之間的數(shù)據(jù)交換(包括設備分配設備與內(nèi)存之間的數(shù)據(jù)交換(包括設備分配與回收;設備驅動程序;設備中斷處理;緩沖區(qū)與回收;設備驅動程序;設備中斷處理;緩沖區(qū)管理),最終完成用戶的管理),最終完成用戶的I/OI/O請求請求(1) (1) 選擇和分配選擇和分配I/OI/O設備,以便進行數(shù)據(jù)傳輸操作設備,以便進行數(shù)據(jù)傳輸操作(2) (2) 控制控制I/O
6、I/O設備與內(nèi)存之間交換數(shù)據(jù)設備與內(nèi)存之間交換數(shù)據(jù)2.向用戶提供使用外部設備的方便接口,使用戶向用戶提供使用外部設備的方便接口,使用戶擺脫繁瑣的編程負擔擺脫繁瑣的編程負擔 方便性方便性 友好界面友好界面 透明性透明性3.3.充分利用各種技術(通道,中斷,緩沖等)提充分利用各種技術(通道,中斷,緩沖等)提高高CPUCPU與設備、設備與設備之間的并行工作能與設備、設備與設備之間的并行工作能力,充分利用資源,提高資源利用率力,充分利用資源,提高資源利用率 并行性并行性 均衡性(使設備充分忙碌)均衡性(使設備充分忙碌)4. 保證在多道程序環(huán)境下,當多個進程競爭使用保證在多道程序環(huán)境下,當多個進程競爭使
7、用設備時,按一定策略分配和管理各種設備,使設備時,按一定策略分配和管理各種設備,使系統(tǒng)能有條不紊的工作系統(tǒng)能有條不紊的工作5. 5. 與設備無關性(設備獨立性)與設備無關性(設備獨立性) 用戶在編制程序時,使用邏輯設備名,由系統(tǒng)用戶在編制程序時,使用邏輯設備名,由系統(tǒng)實現(xiàn)從邏輯設備到物理設備(實際設備)的轉實現(xiàn)從邏輯設備到物理設備(實際設備)的轉換換 用戶能獨立于具體物理設備而方便的使用設備用戶能獨立于具體物理設備而方便的使用設備 用戶申請使用設備時,只需要指定設備類型,而無用戶申請使用設備時,只需要指定設備類型,而無須指定具體物理設備,系統(tǒng)根據(jù)當前的請求,及設須指定具體物理設備,系統(tǒng)根據(jù)當前
8、的請求,及設備分配的情況,在相同類別設備中,選擇一個空閑備分配的情況,在相同類別設備中,選擇一個空閑設備,并將其分配給一個申請進程設備,并將其分配給一個申請進程 統(tǒng)一性:統(tǒng)一性: 對不同的設備采取統(tǒng)一的操作方式,在用戶程序中對不同的設備采取統(tǒng)一的操作方式,在用戶程序中使用的是邏輯設備使用的是邏輯設備優(yōu)點:優(yōu)點: 設備忙碌或設備故障時,用戶不必修改程序設備忙碌或設備故障時,用戶不必修改程序 改善了系統(tǒng)的可適應性和可擴展性改善了系統(tǒng)的可適應性和可擴展性*設備管理的任務設備管理的任務 按用戶需求提出的要求接入外部設備,按用戶需求提出的要求接入外部設備,系統(tǒng)按一定算法分配和管理控制,而用系統(tǒng)按一定算法
9、分配和管理控制,而用戶不必關心設備的實際地址和控制指令戶不必關心設備的實際地址和控制指令. 盡量提高輸入輸出設備的利用率,例如,盡量提高輸入輸出設備的利用率,例如,發(fā)揮主機與外設以及外設與外設之間的發(fā)揮主機與外設以及外設與外設之間的真正并行工作能力真正并行工作能力.*設備管理的功能設備管理的功能 設備分配與回收設備分配與回收 記錄設備的狀態(tài)記錄設備的狀態(tài) 根據(jù)用戶的請求和設備的類型,采用一定的分配算法,根據(jù)用戶的請求和設備的類型,采用一定的分配算法,選擇一條數(shù)據(jù)通路選擇一條數(shù)據(jù)通路 分配設備:按設備的不同類型和操作系統(tǒng)選用的算法分配。分配設備:按設備的不同類型和操作系統(tǒng)選用的算法分配。包括分配
10、相應的通道、設備控制器以及對未分配到的任務包括分配相應的通道、設備控制器以及對未分配到的任務或怍業(yè)進行排隊等;或怍業(yè)進行排隊等; 控制和實現(xiàn)真正的輸入輸出操作。包括通道程序控制、啟控制和實現(xiàn)真正的輸入輸出操作。包括通道程序控制、啟動設備、及時響應及處理中斷訊號等;動設備、及時響應及處理中斷訊號等; 對輸入輸出緩沖區(qū)進行管理。例如邏輯名的管理,多個緩對輸入輸出緩沖區(qū)進行管理。例如邏輯名的管理,多個緩沖區(qū)的分時以及串并行操作,同類多個外部設備的均衡工沖區(qū)的分時以及串并行操作,同類多個外部設備的均衡工作,避免作,避免“忙的忙忙的忙”和和“閑的閑閑的閑”; 在一些較大系統(tǒng)中實現(xiàn)虛擬設備技術(虛擬硬盤、
11、虛擬內(nèi)在一些較大系統(tǒng)中實現(xiàn)虛擬設備技術(虛擬硬盤、虛擬內(nèi)存)。存)。3.1 I/O硬件硬件原理原理 I/O設備對不同的人有不同的理解,設設備對不同的人有不同的理解,設計硬件的人員和對硬件編程的人員和用戶計硬件的人員和對硬件編程的人員和用戶都有不同的觀點和見解,我們主要分析如都有不同的觀點和見解,我們主要分析如何對這些設備編程控制,更好地使設備之何對這些設備編程控制,更好地使設備之間協(xié)調(diào)工作,即主要從程序員的角度來分間協(xié)調(diào)工作,即主要從程序員的角度來分析它。析它。 控制器卡上通常有一個插座,通過電纜與設備相連;控制器卡上通常有一個插座,通過電纜與設備相連; 控制器和設備之間的接口是一個標準接口,
12、它符合控制器和設備之間的接口是一個標準接口,它符合ANSIANSI、IEEEIEEE或或ISOISO這樣的國際標準。這樣的國際標準。 關注點:對該硬件如何進行程序設計,不考慮設關注點:對該硬件如何進行程序設計,不考慮設備內(nèi)部如何工作備內(nèi)部如何工作 程序員:軟件接口程序員:軟件接口 即硬件所接受的命令,它所完成的功能,報回的即硬件所接受的命令,它所完成的功能,報回的錯誤錯誤 因此我們所關心的就是控制器,因為它和操作因此我們所關心的就是控制器,因為它和操作系統(tǒng)打交道,也就是我們要分析的重點。系統(tǒng)打交道,也就是我們要分析的重點。* * * *設備接口設備接口 一次完整的一次完整的I/OI/O傳送過程
13、,典型地由一長列低傳送過程,典型地由一長列低級信號組成,這些信號啟動設備所執(zhí)行的操作,級信號組成,這些信號啟動設備所執(zhí)行的操作,并通過測試設備狀態(tài)來監(jiān)控設備操作的進展并通過測試設備狀態(tài)來監(jiān)控設備操作的進展 。 一個一個I/OI/O過程由四步組成:過程由四步組成: * * 準備準備 * * 啟動啟動 * * 測試和等待測試和等待 * * 結果檢查和錯誤處理結果檢查和錯誤處理 這個過程均是通過對設備接口寄存器組的讀寫這個過程均是通過對設備接口寄存器組的讀寫完成完成* * * * * 設備連接模式設備連接模式 指指I/OI/O設備與設備與CPUCPU之間的連接方式,亦即將之間的連接方式,亦即將設備連
14、接到一個計算機系統(tǒng)上的方式。在一個設備連接到一個計算機系統(tǒng)上的方式。在一個確定的連接模式下,從確定的連接模式下,從I/OI/O設備到設備到CPUCPU間的所有間的所有連接成分構成了一條連接成分構成了一條I/OI/O路徑(路徑(I/OI/O鏈)。鏈)。1.設備與主機間最基本的連接方式設備與主機間最基本的連接方式 四個要素:四個要素: 設備接口形式設備接口形式 I/O指令形式指令形式 I/O地址空間分配及譯碼地址空間分配及譯碼 連線問題連線問題(1)設備接口形式設備接口形式 * 端口地址譯碼端口地址譯碼 * 按照主機與設備的約定格式和過程接受或發(fā)送按照主機與設備的約定格式和過程接受或發(fā)送數(shù)據(jù)和信號
15、數(shù)據(jù)和信號 計算機計算機 設備設備 設備設備 計算機計算機 * 將計算機的數(shù)字信號轉換為機械部分能識別將計算機的數(shù)字信號轉換為機械部分能識別的模擬信號,或反過來的模擬信號,或反過來 * 實現(xiàn)一些諸如設備內(nèi)部硬件緩沖存儲、數(shù)據(jù)實現(xiàn)一些諸如設備內(nèi)部硬件緩沖存儲、數(shù)據(jù)加工的提高性能或增強功能的任務加工的提高性能或增強功能的任務(2) I/O指令形式與指令形式與I/O地址是相互關聯(lián)的,主要有兩地址是相互關聯(lián)的,主要有兩種形式:種形式: 內(nèi)存映像內(nèi)存映像I/O模式模式 I/O專用指令專用指令要考慮的幾個問題:要考慮的幾個問題:設備完成技術:系統(tǒng)如何知道設備的一次設備完成技術:系統(tǒng)如何知道設備的一次I/O
16、I/O操作操作是否完成?是否完成?對對CPUCPU編程的編程的I/OI/O技術:技術:CPUCPU必須親自完成必須親自完成I/OI/O的啟的啟動與完成的處理,親自執(zhí)行所有數(shù)據(jù)在內(nèi)存和動與完成的處理,親自執(zhí)行所有數(shù)據(jù)在內(nèi)存和設備之間的實際物理傳送設備之間的實際物理傳送進一步改善:進一步改善:*使使CPU利用率盡可能不被利用率盡可能不被I/O降低,使降低,使CPU脫離脫離I/O的負擔的負擔* 提高提高I/O本身的絕對速度本身的絕對速度* 減少或緩解速度差距減少或緩解速度差距* 使使CPU不等待不等待I/O* 使使CPU盡可能擺脫盡可能擺脫I/O* 提高設備利用率提高設備利用率* 在設備與主機的硬連
17、接上,引入總線,節(jié)省連在設備與主機的硬連接上,引入總線,節(jié)省連線并提供配置擴充與改變時的靈活性;引入控線并提供配置擴充與改變時的靈活性;引入控制器,擴大設備與主機間的相互適用范圍制器,擴大設備與主機間的相互適用范圍- 總線的引入總線的引入2.總線總線 將計算機系統(tǒng)中的各個子系統(tǒng)(將計算機系統(tǒng)中的各個子系統(tǒng)(CPU、內(nèi)存、外設等)相、內(nèi)存、外設等)相互連接,且連接是共享的。互連接,且連接是共享的。 好處:低成本(一線多用)好處:低成本(一線多用) 靈活性(易于增加設備靈活性(易于增加設備 便于兩個計算機系統(tǒng)之間共享外設)便于兩個計算機系統(tǒng)之間共享外設)總線的缺點:總線的缺點: 本身形成了通訊瓶頸
18、,限制本身形成了通訊瓶頸,限制I/O吞吐量吞吐量總線分類:總線分類: 數(shù)據(jù)總線、地址總線、控制總線數(shù)據(jù)總線、地址總線、控制總線控制器,即設備的電子部分完成設備與主機間的控制器,即設備的電子部分完成設備與主機間的連接和通訊連接和通訊CPUCPU與控制器間通訊:與控制器間通訊: 單總線模型(微機、小型機)單總線模型(微機、小型機) 多總線模型(中、大型機)多總線模型(中、大型機)-I/O-I/O通道通道 DMA(direct memory access) 數(shù)據(jù)在內(nèi)存與數(shù)據(jù)在內(nèi)存與I/O設備間的直接成塊傳送設備間的直接成塊傳送 CPU在開始時向設備發(fā)在開始時向設備發(fā)“傳送一塊傳送一塊”命令,結命令,
19、結束時進行相應處理,實際操作由束時進行相應處理,實際操作由DMA硬件直接完硬件直接完成成 DMA DMA需要附加的輔助硬件,且該需要附加的輔助硬件,且該DMADMA硬件屬于設備硬件屬于設備的電子部分的功能(由控制器實現(xiàn))。許多控制的電子部分的功能(由控制器實現(xiàn))。許多控制器,尤其是塊設備控制器都支持器,尤其是塊設備控制器都支持DMADMA。 例如:對磁盤進行訪問例如:對磁盤進行訪問 不用不用DMA時,磁盤如何讀:首先,控制器時,磁盤如何讀:首先,控制器從磁盤驅動器串行地一位一位地讀一個塊,直從磁盤驅動器串行地一位一位地讀一個塊,直到將整塊信息放入控制器的內(nèi)部緩沖區(qū)中。其到將整塊信息放入控制器的
20、內(nèi)部緩沖區(qū)中。其次,它做和校驗計算,以核實沒有讀錯誤發(fā)生。次,它做和校驗計算,以核實沒有讀錯誤發(fā)生。然后控制器產(chǎn)生一個中斷。然后控制器產(chǎn)生一個中斷。CPU響應中斷,控響應中斷,控制轉給操作系統(tǒng)。當操作系統(tǒng)開始運行時,它制轉給操作系統(tǒng)。當操作系統(tǒng)開始運行時,它重復地從控制器緩沖區(qū)中一次一個字節(jié)或一個重復地從控制器緩沖區(qū)中一次一個字節(jié)或一個字地讀這個磁盤塊的信息,并將其送入內(nèi)存中字地讀這個磁盤塊的信息,并將其送入內(nèi)存中 采用采用DMA方式時,允許方式時,允許DMA控制器接管地址線的控制控制器接管地址線的控制權,直接控制權,直接控制DMA控制器與內(nèi)存的數(shù)據(jù)交換。從而使磁控制器與內(nèi)存的數(shù)據(jù)交換。從而使
21、磁盤設備與存儲器之間的數(shù)據(jù)傳送不需要盤設備與存儲器之間的數(shù)據(jù)傳送不需要CPU介入,因而介入,因而減輕了減輕了CPU負擔;負擔; 當采用當采用DMA時,除向控制器提供要讀數(shù)據(jù)塊的磁盤地址時,除向控制器提供要讀數(shù)據(jù)塊的磁盤地址外,還要向控制器提供兩個信息:數(shù)據(jù)塊送往內(nèi)存的起外,還要向控制器提供兩個信息:數(shù)據(jù)塊送往內(nèi)存的起始地址和要傳送的字節(jié)數(shù)。始地址和要傳送的字節(jié)數(shù)。 當當DMADMA硬件控制磁盤與存儲器之間進行信息交硬件控制磁盤與存儲器之間進行信息交換時,每當磁盤把一個數(shù)據(jù)讀入控制器的數(shù)據(jù)緩換時,每當磁盤把一個數(shù)據(jù)讀入控制器的數(shù)據(jù)緩沖區(qū)時,沖區(qū)時,DMADMA控制器取代控制器取代CPUCPU,接
22、管地址總線的控,接管地址總線的控制權,并按照制權,并按照DMADMA控制器中的存儲器地址寄存器控制器中的存儲器地址寄存器內(nèi)容把數(shù)據(jù)送入相應的內(nèi)存單元中。然后,內(nèi)容把數(shù)據(jù)送入相應的內(nèi)存單元中。然后,DMADMA硬件自動地把傳送字節(jié)計數(shù)器減硬件自動地把傳送字節(jié)計數(shù)器減1 1,把存儲器地,把存儲器地址寄存器加址寄存器加1 1,并恢復,并恢復CPUCPU對內(nèi)存的控制權,對內(nèi)存的控制權,DMADMA控制器對每一個傳送的數(shù)據(jù)重復上述過程,直到控制器對每一個傳送的數(shù)據(jù)重復上述過程,直到傳送字節(jié)計數(shù)器為傳送字節(jié)計數(shù)器為“0 0”時,向時,向CPUCPU產(chǎn)生一個中斷產(chǎn)生一個中斷信號。當操作系統(tǒng)接管信號。當操作系
23、統(tǒng)接管CPUCPU控制權時,再無需做控制權時,再無需做塊復制的工作了。塊復制的工作了。 有關技術有關技術 通道技術:通道技術: 定義:通道是獨立于定義:通道是獨立于CPUCPU的專門負責數(shù)據(jù)輸入的專門負責數(shù)據(jù)輸入/ /輸輸出傳輸工作的處理機,對外部設備實現(xiàn)統(tǒng)一管理,出傳輸工作的處理機,對外部設備實現(xiàn)統(tǒng)一管理,代替代替CPUCPU對輸入對輸入/ /輸出操作進行控制,從而使輸入,輸出操作進行控制,從而使輸入,輸出操作可與輸出操作可與CPUCPU并行操作。并行操作。 引入通道的目的:引入通道的目的: 為了使為了使CPU從從I/O事務中解脫出來,同時為了提高事務中解脫出來,同時為了提高CPU與設備,設
24、備與設備之間的并行工作能力。與設備,設備與設備之間的并行工作能力。分類分類1) 字節(jié)多路通道字節(jié)多路通道 字節(jié)多路通道以字節(jié)為單位傳輸信息,它可以分時地執(zhí)字節(jié)多路通道以字節(jié)為單位傳輸信息,它可以分時地執(zhí)行多個通道程序。當一個通道程序控制某臺設備傳送一個行多個通道程序。當一個通道程序控制某臺設備傳送一個字節(jié)后,通道硬件就控制轉去執(zhí)行另一個通道程序,控制字節(jié)后,通道硬件就控制轉去執(zhí)行另一個通道程序,控制另一臺設備傳送信息。另一臺設備傳送信息。 主要連接以字節(jié)為單位的低速主要連接以字節(jié)為單位的低速I/O設備。如打印設備。如打印機,終端。機,終端。 以字節(jié)為單位交叉?zhèn)鬏敚斠慌_傳送以字節(jié)為單位交叉?zhèn)鬏?/p>
25、,當一臺傳送一個字節(jié)后,立即轉去為另一臺傳送字節(jié)。一個字節(jié)后,立即轉去為另一臺傳送字節(jié)。 2) 2)選擇通道選擇通道 選擇通道是以成組方式工作的,即每次傳送一選擇通道是以成組方式工作的,即每次傳送一批數(shù)據(jù),故傳送速度很高。選擇通道在一段時間批數(shù)據(jù),故傳送速度很高。選擇通道在一段時間內(nèi)只能執(zhí)行一個通道程序,只允許一臺設備進行內(nèi)只能執(zhí)行一個通道程序,只允許一臺設備進行數(shù)據(jù)傳輸。數(shù)據(jù)傳輸。 當這臺設備數(shù)據(jù)傳輸完成后,再選擇與通道連接當這臺設備數(shù)據(jù)傳輸完成后,再選擇與通道連接的另一臺設備,執(zhí)行它的相應的通道程序。的另一臺設備,執(zhí)行它的相應的通道程序。 主要連接磁盤,磁帶等高速主要連接磁盤,磁帶等高速I
26、/OI/O設備。設備。 3) 3)成組多路通道成組多路通道 它結合了選擇通道傳送速度高和字節(jié)多路通它結合了選擇通道傳送速度高和字節(jié)多路通道能進行分時并行操作的優(yōu)點。它先為一臺設備道能進行分時并行操作的優(yōu)點。它先為一臺設備執(zhí)行一條通道指令,然后自動轉接,為另一臺設執(zhí)行一條通道指令,然后自動轉接,為另一臺設備執(zhí)行一條通道指令。備執(zhí)行一條通道指令。 主要連接高速設備主要連接高速設備 這樣,對于連接多臺磁盤機的數(shù)組多路通道,這樣,對于連接多臺磁盤機的數(shù)組多路通道,它可以啟動它們同時執(zhí)行移臂定位操作,然后,它可以啟動它們同時執(zhí)行移臂定位操作,然后,按序交叉地傳輸一批批數(shù)據(jù)。數(shù)據(jù)多路通道實際按序交叉地傳輸
27、一批批數(shù)據(jù)。數(shù)據(jù)多路通道實際上是對通道程序采用多道程序設計的硬件實現(xiàn)。上是對通道程序采用多道程序設計的硬件實現(xiàn)。 IO軟件的基本思想是按分層的思想構成,較軟件的基本思想是按分層的思想構成,較低層軟件要使較高層軟件獨立于硬件的特性,較高低層軟件要使較高層軟件獨立于硬件的特性,較高層軟件則要向用戶提供一個友好的、清晰的、簡單層軟件則要向用戶提供一個友好的、清晰的、簡單的、功能更強的接口。的、功能更強的接口。 3.2.1 I/O軟件的目標軟件的目標 在設計在設計I IO O軟件時的一個關鍵概念是設備獨立性。軟件時的一個關鍵概念是設備獨立性。用戶在編寫使用軟盤或硬盤上文件的程序時,無需為用戶在編寫使用
28、軟盤或硬盤上文件的程序時,無需為不同的設備類型而修改程序就可以使用。不同的設備類型而修改程序就可以使用。* * * *設備無關性:設備無關性: 與設備獨立性密切相關的是統(tǒng)一命名與設備獨立性密切相關的是統(tǒng)一命名(uniform (uniform naming)naming)這一目標。一個文件或一個設備的名字這一目標。一個文件或一個設備的名字只應是一個簡單的字符串或一個整數(shù),不應依賴只應是一個簡單的字符串或一個整數(shù),不應依賴于設備于設備. . 如簡單的輸入:如簡單的輸入: sort outputsort output 此時操作系統(tǒng)能夠從各種設備上獲得輸入,此時操作系統(tǒng)能夠從各種設備上獲得輸入,也可
29、以做同樣的輸出。設備的驅動和設備間的差也可以做同樣的輸出。設備的驅動和設備間的差異性均由操作系統(tǒng)本身來處理。異性均由操作系統(tǒng)本身來處理。* * * * 錯誤處理錯誤處理 出錯處理是出錯處理是I/O軟件的另一個目標。一般來軟件的另一個目標。一般來說,數(shù)據(jù)傳輸中的錯誤應盡可能地在接近硬件說,數(shù)據(jù)傳輸中的錯誤應盡可能地在接近硬件層上處理。由控制器盡可能地處理它所遇到的層上處理。由控制器盡可能地處理它所遇到的問題,如果它真的處理不了,再交給設備的驅問題,如果它真的處理不了,再交給設備的驅動程序,去再進行一次重復操作。如對磁盤的動程序,去再進行一次重復操作。如對磁盤的讀取。讀取。 盡量把錯誤交給底層的軟
30、件來處理,只有盡量把錯誤交給底層的軟件來處理,只有底層軟件處理不了的時候再交給較高一層的軟底層軟件處理不了的時候再交給較高一層的軟件來處理。件來處理。* * * * 異步同步問題異步同步問題 數(shù)據(jù)的傳輸對數(shù)據(jù)的傳輸對I/O硬硬件來說是異步的(大多件來說是異步的(大多數(shù)),如何在系統(tǒng)中實現(xiàn)異步,需要實現(xiàn)阻塞數(shù)),如何在系統(tǒng)中實現(xiàn)異步,需要實現(xiàn)阻塞和喚醒機制,操作系統(tǒng)中需要有此模擬,是通和喚醒機制,操作系統(tǒng)中需要有此模擬,是通過中斷來實現(xiàn)的,利用中斷來實現(xiàn)阻塞和喚醒,過中斷來實現(xiàn)的,利用中斷來實現(xiàn)阻塞和喚醒,實現(xiàn)符合硬件的異步傳輸。實現(xiàn)符合硬件的異步傳輸。 * * * *獨占與共享獨占與共享 由于
31、一些設備是獨占設備由于一些設備是獨占設備( (打印機打印機) ),有些設備,有些設備是共享設備是共享設備( (磁盤磁盤) ),故操作系統(tǒng)需要能夠同時處,故操作系統(tǒng)需要能夠同時處理這些設備。理這些設備。3.2.2 中斷處理程序中斷處理程序 * * *每個進程在啟動一個每個進程在啟動一個I/O操作后阻塞;操作后阻塞; * * *直到直到I/O操作完成并產(chǎn)生一個中斷;操作完成并產(chǎn)生一個中斷; * * *由操作系統(tǒng)接管由操作系統(tǒng)接管CPUCPU后喚醒該進程為止。后喚醒該進程為止。3.2.3 設備驅動程序設備驅動程序 與設備密切相關的代碼放在設備驅動程序與設備密切相關的代碼放在設備驅動程序中,每個設備驅
32、動程序處理一種設備類型。中,每個設備驅動程序處理一種設備類型。 每一個控制器都設有一個或多個設備寄存每一個控制器都設有一個或多個設備寄存器,用來存放向設備發(fā)送的命令和參數(shù)。設備器,用來存放向設備發(fā)送的命令和參數(shù)。設備驅動程序負責釋放這些命令,并監(jiān)督它們正確驅動程序負責釋放這些命令,并監(jiān)督它們正確執(zhí)行。執(zhí)行。 一般,設備驅動程序的任務是接收來自與一般,設備驅動程序的任務是接收來自與設備無關的上層軟件的抽象請求,并執(zhí)行這個設備無關的上層軟件的抽象請求,并執(zhí)行這個請求。請求。 在設備驅動程序的進程釋放一條或多條命在設備驅動程序的進程釋放一條或多條命令后,系統(tǒng)有兩種處理方式,多數(shù)情況下,執(zhí)令后,系統(tǒng)有
33、兩種處理方式,多數(shù)情況下,執(zhí)行設備驅動程序的進程必須等待命令完成。行設備驅動程序的進程必須等待命令完成。 這樣,在命令開始執(zhí)行后,它阻塞自已,這樣,在命令開始執(zhí)行后,它阻塞自已,直到中斷處理時將它解除阻塞為止(此時,一直到中斷處理時將它解除阻塞為止(此時,一般驅動程序需要等待控制器完成一定的操作,般驅動程序需要等待控制器完成一定的操作,故阻塞自己)。而在其它情況下,命令執(zhí)行不故阻塞自己)。而在其它情況下,命令執(zhí)行不必延遲就很快完成(如在終端滾動屏幕,需要必延遲就很快完成(如在終端滾動屏幕,需要太多操作,根本不需要阻塞)。太多操作,根本不需要阻塞)。 3.2.4 與硬件無關與硬件無關的的I/O軟
34、件軟件 雖然雖然I/O軟件軟件中一部分是設備中一部分是設備專用的,但大部專用的,但大部分軟件是與設備分軟件是與設備無關的。設備驅無關的。設備驅動程序與設備獨動程序與設備獨立軟件之間的確立軟件之間的確切界限是依賴于切界限是依賴于具體系統(tǒng)的。具體系統(tǒng)的。 1.獨立于設備的軟件的基本任務是實現(xiàn)所有設備都獨立于設備的軟件的基本任務是實現(xiàn)所有設備都需要的功能,并且向用戶級軟件提供一個統(tǒng)一的需要的功能,并且向用戶級軟件提供一個統(tǒng)一的接口。接口。 2.如何給文件和設備這樣的對象命名是操作系統(tǒng)中如何給文件和設備這樣的對象命名是操作系統(tǒng)中的一個主要課題。獨立于設備的軟件負責把設備的一個主要課題。獨立于設備的軟件
35、負責把設備的符號名映射到正確的設備驅動上。的符號名映射到正確的設備驅動上。3.設備保護設備保護 系統(tǒng)如何防止無權存取設備的用戶存取設備呢?系統(tǒng)如何防止無權存取設備的用戶存取設備呢? 對設備文件的對設備文件的rwxrwx進行控制,但一般的系統(tǒng)中都進行控制,但一般的系統(tǒng)中都不允許訪問。不允許訪問。 4.不同的磁盤可以采用不同的扇區(qū)尺寸。向較不同的磁盤可以采用不同的扇區(qū)尺寸。向較高層軟件掩蓋這一事實并提供大小統(tǒng)一的塊尺高層軟件掩蓋這一事實并提供大小統(tǒng)一的塊尺寸,這正是設備獨立軟件的一個任務。它可將寸,這正是設備獨立軟件的一個任務。它可將若干扇區(qū)合成一個邏輯塊。這樣,較高層的軟若干扇區(qū)合成一個邏輯塊。
36、這樣,較高層的軟件只與抽象設備打交道,獨立于物理扇區(qū)的尺件只與抽象設備打交道,獨立于物理扇區(qū)的尺寸而使用等長的邏輯塊。寸而使用等長的邏輯塊。 5.緩沖技術緩沖技術 6.設備分配設備分配 7.出錯處理出錯處理 3.2.5 用戶空間的用戶空間的I/O軟件軟件 盡管大部分盡管大部分I/O軟件都包含在操作系統(tǒng)中,但軟件都包含在操作系統(tǒng)中,但仍有一小部分是由與用戶程序連接在一起的庫仍有一小部分是由與用戶程序連接在一起的庫過程,甚至完全由運行于核外的程序構成。系過程,甚至完全由運行于核外的程序構成。系統(tǒng)調(diào)用,包括統(tǒng)調(diào)用,包括I/O系統(tǒng)調(diào)用,通常由庫過程實現(xiàn)。系統(tǒng)調(diào)用,通常由庫過程實現(xiàn)。 這些過程所做的工作
37、只是將系統(tǒng)調(diào)用時所用這些過程所做的工作只是將系統(tǒng)調(diào)用時所用的參數(shù)放在合適的位置,由其它的的參數(shù)放在合適的位置,由其它的I/O過程實際過程實際實現(xiàn)真正的操作。實現(xiàn)真正的操作。(1 1)用戶進程層執(zhí)行輸入輸出系統(tǒng)調(diào)用,對)用戶進程層執(zhí)行輸入輸出系統(tǒng)調(diào)用,對I/O數(shù)數(shù)據(jù)進行格式化,為假脫機輸入輸出作準備;據(jù)進行格式化,為假脫機輸入輸出作準備;(2 2)獨立于設備的軟件實現(xiàn)設備的命名、設備的)獨立于設備的軟件實現(xiàn)設備的命名、設備的保護、成塊處理、緩沖技術和設備分配;保護、成塊處理、緩沖技術和設備分配;(3 3)設備驅動程序設置設備寄存器、檢查設備的)設備驅動程序設置設備寄存器、檢查設備的執(zhí)行狀態(tài);執(zhí)行
38、狀態(tài);(4 4)中斷處理程序負責)中斷處理程序負責I IO O完成時,喚醒設備驅完成時,喚醒設備驅動程序進程,進行中斷處理;動程序進程,進行中斷處理;(5 5)硬件層實現(xiàn)物理)硬件層實現(xiàn)物理I IO O的操作。的操作。死鎖的現(xiàn)象死鎖的現(xiàn)象*死鎖的定義:死鎖的定義: 一組進程中,每個進程都無限等待被該組進程一組進程中,每個進程都無限等待被該組進程中另一進程所占有的資源,因而永遠無法得到中另一進程所占有的資源,因而永遠無法得到的資源,這種現(xiàn)象稱為進程死鎖,這一組進程的資源,這種現(xiàn)象稱為進程死鎖,這一組進程就稱為死鎖進程。就稱為死鎖進程。出現(xiàn)死鎖,必然出現(xiàn):出現(xiàn)死鎖,必然出現(xiàn):死鎖(死鎖(Deadl
39、ockDeadlock)饑餓(饑餓(StarvationStarvation)*關于死鎖的一些結論:關于死鎖的一些結論: 參與死鎖的進程最少是兩個;參與死鎖的進程最少是兩個; (兩個以上進程才會出現(xiàn)死鎖)(兩個以上進程才會出現(xiàn)死鎖) 參與死鎖的進程至少有兩個已經(jīng)占有資源;參與死鎖的進程至少有兩個已經(jīng)占有資源; 參與死鎖的所有進程都在等待資源;參與死鎖的所有進程都在等待資源; 參與死鎖的進程是當前系統(tǒng)中所有進程的子集。參與死鎖的進程是當前系統(tǒng)中所有進程的子集。注:注: 如果死鎖發(fā)生,會浪費大量系統(tǒng)資源,甚至導致系如果死鎖發(fā)生,會浪費大量系統(tǒng)資源,甚至導致系統(tǒng)崩潰。統(tǒng)崩潰。3.3.1資源資源 資源
40、是在任何時刻只能被單個進程使用的對象資源是在任何時刻只能被單個進程使用的對象 可剝奪式資源可剝奪式資源 不可剝奪式資源不可剝奪式資源 對于打印的過程(可剝奪式資源是存儲器,不可對于打印的過程(可剝奪式資源是存儲器,不可剝奪式資源是打印機)剝奪式資源是打印機) 對于任一個資源,它本身必存在一個固定的模對于任一個資源,它本身必存在一個固定的模式。式。“被申請被申請被分配被分配被使用被使用被釋放被釋放”模式。模式。3.3.2 3.3.2 死鎖的原理死鎖的原理一般來說,死鎖時,沒有一個進程可以觸發(fā)一般來說,死鎖時,沒有一個進程可以觸發(fā)那個能夠喚醒本集合中另一個進程的時間,那個能夠喚醒本集合中另一個進程
41、的時間,所以所有的進程都將永遠等待下去。所以所有的進程都將永遠等待下去。* * * * *發(fā)生死鎖的四個必要條件:發(fā)生死鎖的四個必要條件:1 .1 .互斥使用,每一資源或者已被分配給一互斥使用,每一資源或者已被分配給一個進程,或者空閑;(資源獨占)個進程,或者空閑;(資源獨占)2 .2 .保持和等待,一個進程在申請新的資源保持和等待,一個進程在申請新的資源的同時保持對原有資源的占有;的同時保持對原有資源的占有; (只有這樣才是動態(tài)申請,動態(tài)分配)(只有這樣才是動態(tài)申請,動態(tài)分配)3 .3 .不可強占不可強占, ,資源申請者不能強行的從資源資源申請者不能強行的從資源占有者手中奪取資源,資源只能由
42、占有者自占有者手中奪取資源,資源只能由占有者自愿釋放;愿釋放;4 .4 .循環(huán)等待,即必然有一條由兩個或多個進循環(huán)等待,即必然有一條由兩個或多個進程組成的循環(huán)鏈,鏈中每個進程都在等待相程組成的循環(huán)鏈,鏈中每個進程都在等待相鄰進程占用的資源。鄰進程占用的資源。 存在一個進程等待隊列存在一個進程等待隊列 P1 , P2 , , Pn, 其中其中P1等待等待P2占有的資源,占有的資源,P2等待等待P3占有的資源,占有的資源,Pn等待等待P1占有的資源,占有的資源,形成一個進程等待環(huán)路。形成一個進程等待環(huán)路。* * * * * 死鎖的解決方案死鎖的解決方案1.1. 產(chǎn)生死鎖的例子產(chǎn)生死鎖的例子 申請不
43、同類型資源產(chǎn)生死鎖申請不同類型資源產(chǎn)生死鎖 P1P1:申請打印機申請打印機申請掃描儀申請掃描儀使用使用釋放打印機釋放打印機釋放掃描儀釋放掃描儀P2P2:申請掃描儀申請掃描儀申請打印機申請打印機使用使用釋放打印機釋放打印機釋放掃描儀釋放掃描儀申請同類資源產(chǎn)生死鎖申請同類資源產(chǎn)生死鎖(如內(nèi)存)(如內(nèi)存) 設有資源設有資源R R,R R有有m m個分配單位,由個分配單位,由n n個個進程進程P P1 1,P,P2 2, ,P,Pn n(n mn m)共享。假)共享。假設每個進程對設每個進程對R R的申請和釋放符合下的申請和釋放符合下列原則:列原則: * * 一次只能申請一個單位一次只能申請一個單位
44、* * 滿足總申請后才能使用滿足總申請后才能使用 * * 使用完后一次性釋放使用完后一次性釋放申請同類資源產(chǎn)生死鎖(如內(nèi)存)申請同類資源產(chǎn)生死鎖(如內(nèi)存)m=2m=2,n=3n=3資源分配不當導致死鎖產(chǎn)生資源分配不當導致死鎖產(chǎn)生* * * * * 處理死鎖的方法處理死鎖的方法1 .1 .忽略死鎖的發(fā)生;忽略死鎖的發(fā)生;2 .2 .檢測死鎖并恢復;檢測死鎖并恢復;3 .3 .謹慎對資源進行動態(tài)分配,避免死鎖;謹慎對資源進行動態(tài)分配,避免死鎖;4 .4 .通過破壞上述四個必要條件來預防死鎖通過破壞上述四個必要條件來預防死鎖的發(fā)生。的發(fā)生。3.3.5 死鎖預防死鎖預防定義:定義: 在系統(tǒng)設計時確定資
45、源分配算法,保證在系統(tǒng)設計時確定資源分配算法,保證不發(fā)生死鎖。具體的做法是破壞產(chǎn)生死鎖不發(fā)生死鎖。具體的做法是破壞產(chǎn)生死鎖的四個必要條件之一。的四個必要條件之一。破壞破壞“互斥使用互斥使用”條件條件 對于打印機這類設備,利用假脫機等對于打印機這類設備,利用假脫機等技術來避免進程之間的資源競爭,而是利技術來避免進程之間的資源競爭,而是利用監(jiān)控程序來統(tǒng)一調(diào)配。用監(jiān)控程序來統(tǒng)一調(diào)配。破壞破壞“請求和保持請求和保持”條件條件 要求每個進程在運行前必須一次性申請它所要求每個進程在運行前必須一次性申請它所要求的所有資源,且僅當該進程所要資源均要求的所有資源,且僅當該進程所要資源均可滿足時才給予一次性分配。
46、可滿足時才給予一次性分配。 另一方案,當進程申請時,先釋放掉自己的另一方案,當進程申請時,先釋放掉自己的資源再進行申請,當申請成功后再收回剛才資源再進行申請,當申請成功后再收回剛才自己的資源。自己的資源。問題:問題: 對于第一種方案,資源數(shù)目的判斷只有在對于第一種方案,資源數(shù)目的判斷只有在運行時才知道,而且效率無法提高。運行時才知道,而且效率無法提高。破壞破壞“循環(huán)等待循環(huán)等待”條件條件 采用資源有序分配法:采用資源有序分配法: 把系統(tǒng)中所有資源編號,進程在申請資源把系統(tǒng)中所有資源編號,進程在申請資源時必須嚴格按資源編號的遞增次序進行,時必須嚴格按資源編號的遞增次序進行,否則操作系統(tǒng)不予分配。
47、否則操作系統(tǒng)不予分配。破壞破壞“不可剝奪不可剝奪”條件條件 在允許進程動態(tài)申請資源前提下規(guī)定,一在允許進程動態(tài)申請資源前提下規(guī)定,一個進程在申請新的資源不能立即得到滿足個進程在申請新的資源不能立即得到滿足而變?yōu)榈却隣顟B(tài)之前,必須釋放已占有的而變?yōu)榈却隣顟B(tài)之前,必須釋放已占有的全部資源,若需要再重新申請。全部資源,若需要再重新申請。3.3.6 死鎖避免死鎖避免定義:定義: 在系統(tǒng)運行過程中,對進程發(fā)出的每一個在系統(tǒng)運行過程中,對進程發(fā)出的每一個系統(tǒng)能夠滿足的資源申請進行動態(tài)檢查,系統(tǒng)能夠滿足的資源申請進行動態(tài)檢查,并根據(jù)檢查結果決定是否分配資源,若分并根據(jù)檢查結果決定是否分配資源,若分配后系統(tǒng)可能發(fā)生死鎖,則不予分配,否配后系統(tǒng)可能發(fā)生死鎖,則不予分配,否則予以分配。則予以分配。安全狀態(tài)與不安全狀態(tài)安全狀態(tài)與不安全狀態(tài)安全狀態(tài):安全狀態(tài): 如果存在一個由系統(tǒng)中所有進程構成的安如果存在一個由系統(tǒng)中所有進程構成的安全序列全序列P P1 1,PPn n,則系統(tǒng)處于安全狀態(tài)。,則系統(tǒng)處于安全狀態(tài)。安全序列:安全序列: 一個進程序列一個進程序列PP1 1,P Pn n 是安全的,如是安全的,如果對于每一個進程果對于每一個進程P Pi i(1(1i in n),它以后),它以后尚需要的資源量不超過系統(tǒng)當前剩余資源尚需要的資源量不超過系統(tǒng)當前剩余資
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 油脂管理制度
- 營養(yǎng)學(師)考試歷年真題及答案
- 營銷終端激勵方案
- 企業(yè)培訓忠誠課件
- 汽車零部件質保及售后服務合同范本
- 車庫租賃及廣告位合作合同范本
- 橋梁電梯布置方案模板
- 綠色生態(tài)區(qū)個人商鋪租賃及環(huán)保要求合同
- 糞污設備安裝方案
- 高速鐵路拆除與路基改造施工服務合同
- 2025年執(zhí)業(yè)藥師繼續(xù)教育試題答案
- 電商品牌代理權專屬合作協(xié)議范本
- 踢拳教學課件
- 幼兒園中班下家長會課件
- 2025北京市職業(yè)病防治院第二批招聘19人筆試參考題庫附答案解析
- 人民警察法試題及答案
- 2025年度上半年校園安全工作總結及下半年工作計劃
- 美國博物館向中方歸還楚帛書
- 線下潮人項目活動策劃與執(zhí)行方案
- 學堂在線 生活英語聽說 期末復習題答案
- 倉庫庫存預警管理制度
評論
0/150
提交評論