I/O系統(tǒng)的組成
包括:
需要用于輸入恍飘、輸出和存儲信息的設備常侣;
需要相應的設備控制器胳施;
控制器與CPU連接的高速總線;
有的大中型計算機系統(tǒng)焦辅,配置I/O通道筷登;
I/O軟件的層次結構及層功能
用戶層軟件//產(chǎn)生I/O請求哩盲、格式化I/O、Spooling
設備獨立性軟件//映射廉油、保護抒线、分塊嘶炭、緩沖抑进、分配
設備驅(qū)動程序//設置設備寄存器单匣,檢查狀態(tài)
中斷處理程序//
硬件//執(zhí)行I/O操作
設備管理
管理對象:
I/O設備和相應的設備控制器(I/O系統(tǒng)組成)
基本任務:
完成用戶提出的I/O請求
提高I/O速率户秤,改善I/O設備的利用率
為更高層進程方便使用設備提供手段
I/O系統(tǒng)的基本功能
###主要功能:
隱藏物理設備細節(jié)鸡号,方便用戶
用戶使用抽象的I/O命令即可
實現(xiàn)設備無關性鲸伴,方便用戶
用戶可用抽象的邏輯設備名來使用設備府蔗,同時也提高了OS的可移植性和易適應性汞窗。
提高處理機和設備的并行性姓赤,提高利用率:緩沖區(qū)管理
對I/O設備進行控制:控制方式仲吏、設備分配、設備處理
確保對設備正確共享:虛擬設備及設備獨立性等
錯誤處理
I/O系統(tǒng)的層次結構
層次結構:系統(tǒng)中的設備管理模塊分為若干個層次
層間操作:下層為上層提供服務裹唆,并完成輸入輸出功能中的某些子功能誓斥,并屏蔽功能實現(xiàn)的細節(jié)
I/O軟件的分層
用戶層軟件
實現(xiàn)與用戶交互的接口,用戶可直接調(diào)用在用戶層提供的许帐、與I/O操作有關的庫函數(shù),對設備進行操作距芬。
設備獨立軟件
用于實現(xiàn)用戶程序與設備驅(qū)動器的統(tǒng)一接口框仔、設備命名奕剃,設備的保護以及設備的分配與釋放等衷旅,同時為設備管理和數(shù)據(jù)傳送提供必要的存儲空間
設備驅(qū)動程序
與硬件直接相關,用于具體實現(xiàn)系統(tǒng)對設備發(fā)出的操作指令操软,驅(qū)動I/O設備工作的驅(qū)動程序
中斷處理程序
用于保存被中斷進程的CPU環(huán)境嘁锯,轉入相應的中斷處理程序進行處理,處理完后再恢復被中斷進程的線程后聂薪,返回到被中斷進程家乘。
I/O軟件系統(tǒng)的層次
中斷處理程序
處于I/O系統(tǒng)的底層,直接與硬件進行交互
設備驅(qū)動程序
處于次底層藏澳,是進程和控制器之間的通信程序
功能:將上層發(fā)來的抽象I/O請求仁锯,轉換為對I/O設備的具體命令和參數(shù),轉化為對I/O設備具體命令和參數(shù)翔悠,并把它裝入到設備控制其中的命令和參數(shù)寄存器中业崖。
設備獨立性軟件
包括設備命名野芒,設備分配,數(shù)據(jù)緩沖等軟件
I/O 系統(tǒng)接口
塊設備
數(shù)據(jù)的存取和傳輸都是以數(shù)據(jù)塊為單位的設備
基本特征是傳輸率較高双炕、可尋址狞悲。磁盤設備的I/O常采用DMA方式。
特點
隱藏了磁盤的二維結構妇斤,塊設備接口隱藏了磁盤地址是二維結構的情況摇锋。每個扇區(qū)的地址需要用磁道號和扇區(qū)號來表示。
將抽象命令映射為底層操作趟济,塊設備接口將上層發(fā)來的抽象命令乱投,映射為設備能識別的較低層具體操作。
字符設備
數(shù)據(jù)的存取和傳輸是以字符為單位的設備顷编,如鍵盤打印機等戚炫。基本特征是傳輸速率較底媳纬、不可尋址常采用中斷驅(qū)動方式双肤。
get和put操作
由于字符設備是不可尋址的,因而對它只能采用順序存取方式钮惠。獲取或輸出字符的方式是采用get和put操作
in-control
因字符設備的類型非常多茅糜,且差異甚大,系統(tǒng)以統(tǒng)一的方式提供了一種通用的in-control指令來處理他們素挽。
網(wǎng)絡通信接口
通過某種方式把計算機鏈接到網(wǎng)絡上
操作系統(tǒng)必須提供相應的網(wǎng)絡軟件和網(wǎng)絡痛心接口蔑赘。使得計算機能通過網(wǎng)絡與網(wǎng)絡上其他計算機進行通信≡っ鳎或上網(wǎng)瀏覽缩赛。
I/O通道
I/O通道設備的引入
設備控制器已大大減少CPU對I/O的干預
(如承擔了選擇設備,數(shù)據(jù)轉換撰糠、緩沖等功能)
但當主機的外設很多時酥馍,CPU的負擔仍然很重。
在CPU和設備控制器之間增設一個硬件機構:“通道”
設置通道后
CPU只需向通道發(fā)送一條I/O指令即可不再干預后續(xù)操作阅酪。
通道形成通道程序旨袒,執(zhí)行I/O操作,完成后向CPU發(fā)中斷信號术辐。
主要目的:
建立更獨立的I/O操作砚尽,解放CPU。
數(shù)據(jù)傳送的獨立
I/0操作的組織辉词、管理及結束處理也盡量獨立尉辑。
實際上I/O通道是一種特殊的處理機:
指令類型單一,只用于I/O操作较屿;
通道沒有內(nèi)存隧魄,它與CPU共享內(nèi)存
通道類型
根據(jù)其控制的外圍設備的不同類型卓练,信息交換方式也可分為以下三種類型:
字節(jié)多路通道
數(shù)組選擇通道
數(shù)組多路通道
字節(jié)多路通道
一個通道常通過多個子通道連接多個設備控制器
多個設備,通過非分配型子通道以字節(jié)為單位交叉輪流使用主通道傳輸自己的數(shù)據(jù)购啄。
數(shù)組選擇通道
針對高速設備:分配型子通道
設備利用子通道占用通道后襟企,一段時間內(nèi)一直獨占,直至設備傳送完畢釋放狮含。
利用率低顽悼。
數(shù)組多路通道
結合上述兩種方式。
含多個非分配型子通道几迄。數(shù)據(jù)傳送則按數(shù)組方式進行蔚龙。
中斷
中斷和陷入
中斷:CPU對I/O設備發(fā)來的中斷信號的一種響應,中斷是由外部設備引起的映胁,又稱外中斷木羹。
陷入:由CPU內(nèi)部事件所引起的中斷,通常把這類中斷稱為內(nèi)中斷或陷入(trap)解孙。
中斷和陷入的主要區(qū)別:是信號的來源坑填。
對多中斷源的處理方式
屏蔽(禁止)中斷:
所有中斷都將按順序依次處理。
當處理機正在處理一個中斷時弛姜,將屏蔽掉所有新到的中斷脐瑰,讓它們等待,直到處理機已完成本次中斷的處理后廷臼,處理機再去檢查并處理苍在。
優(yōu)點是簡單,但不能用于對實時性要求較高的中斷請求荠商。
嵌套中斷:
中斷優(yōu)先級:系統(tǒng)根據(jù)不同中斷信號源寂恬,對服務要求的緊急程度的不同,它們分別規(guī)定不同的優(yōu)先級结啼。
當同時有多個不同優(yōu)先級的中斷請求時掠剑,CPU優(yōu)先響應最高優(yōu)先級的中斷請求屈芜;
高優(yōu)先級的中斷請求郊愧,可以搶占正在運行低優(yōu)先級中斷的處理機,該方式類似于基于優(yōu)先級的搶占式進程調(diào)度
中斷處理程序
主要工作
進行進程上下文的切換
對處理中斷信號源進行測試
讀取設備狀態(tài)
修改進程狀態(tài)
中斷處理流程
測定是否有未響應的中斷信號
保護被中斷進程的CPU環(huán)境
轉入相應的設備處理程序
中斷處理
恢復CPU的現(xiàn)場
設備驅(qū)動程序
設備驅(qū)動程序是I/O系統(tǒng)的高層與設備控制器之間的通信程序井佑,主要任務是:
接收上層軟件發(fā)來的抽象I/O要求如read属铁、write等命令
再把它轉化為具體要求,發(fā)送給設備控制器躬翁,啟動設備去執(zhí)行焦蘑。
反方向,它也將由設備控制器發(fā)來的信號傳送給上層軟件
驅(qū)動程序的功能
(1)接收由與設備無關的軟件發(fā)來的命令和參數(shù)盒发,并將命令中的抽象要求例嘱,轉化為與設備相關的低層操作序列
(2)檢查用戶I/O請求的合法性狡逢,了解I/O設備的工作狀態(tài),傳遞與IO設備操作有關的參數(shù)拼卵,設置設備的工作方式
(3)發(fā)出IO命令奢浑,如果設備空閑,便立即啟動IO設備腋腮,完成指定的IO操作雀彼,如果設備忙碌則獎請求者掛在設備隊列上等待
(4)及時響應由設備控制器發(fā)來的中斷請求,并根據(jù)其中斷類型即寡,調(diào)用相應的中斷處理程序進行處理徊哑。
設備驅(qū)動程序的特點
(1)驅(qū)動程序是與設備無關的軟件和設備控制器之間通信和轉換的程序
(2)驅(qū)動程序,與設備控制器和IO設備的硬件特性緊密相關
(3)驅(qū)動程序與IO設備所采用的IO控制方式緊密相關聪富。
(4)由于驅(qū)動程序與硬件緊密相關莺丑,因而其中的一部分必須用匯編編寫
(5)驅(qū)動程序應允許可重入,一個正在運行的驅(qū)動程序會在一次調(diào)用完成前被再次調(diào)用善涨。
設備處理方式
具體分類
(1)為每一類設備設置一個進程窒盐,專門用于執(zhí)行這類設備的IO操作,這種方式比較適合于較大的系統(tǒng)
(2)在整個系統(tǒng)中設置一個IO進程钢拧,專門用于執(zhí)行系統(tǒng)中所有各類設備的IO操作也可以設置一個輸入進程合一個輸出進程蟹漓,分別處理系統(tǒng)中的輸入和輸出操作
(3)不設置專們的設備處理進程而只為各類設備設置相應的設備驅(qū)動程序,供用戶或系統(tǒng)進程調(diào)用源内。這種方式目前用得較多葡粒。
驅(qū)動程序處理過程
I/O設備與控制器間的通信轉換程序
了解抽象命令,了解控制器內(nèi)部的寄存器結構
與硬件密切相關膜钓,每類設備配備一種驅(qū)動程序
功能:接受解釋指令(有通道的系統(tǒng)嗽交,自動通道程序)、相關判斷颂斜、發(fā)送設備命令夫壁、響應中斷
特點,控制方式不同程序不同沃疮,部分固化進硬件盒让,代碼可重入。
IO控制方式
分為
程序IO方式
中斷驅(qū)動方式
直接存儲器訪問DMA
IO通道控制方式
宗旨:減少主機對IO控制的干預司蔬,將CPU從繁雜的IO控制事務中解脫出來
程序IO方式
cpu對I/O設備的控制采取程序I/O方式邑茄,或稱忙—等待方式
向控制器發(fā)送一條I/O指令;啟動輸入設備輸入數(shù)據(jù)俊啼;把狀態(tài)寄存器busy=1肺缕。
然后不斷測試標志。為1:表示輸入機尚未輸完一個字,CPU繼續(xù)對該標志測試同木;直到為0:數(shù)據(jù)已輸入控制器數(shù)據(jù)寄存器中浮梢。
CPU取控制器中的數(shù)據(jù)送入內(nèi)存單元,完成一個字的I/O 彤路。
高速CPU空閑等待低速I/O設備黔寇,致使CPU極大浪費。
中斷驅(qū)動IO方式
CPU向相應的設備控制器發(fā)出一條I/O命令
然后立即返回繼續(xù)執(zhí)行任務斩萌。
設備控制器按照命令的要求去控制指定I/O設備缝裤。
這時CPU與I/O設備并行操作。
I/O設備輸入數(shù)據(jù)中颊郎,無需CPU干預憋飞,因而可使CPU與I/O設備并行工作。從而提高了整個系統(tǒng)的資源利用率及吞吐量姆吭。
中斷方式比程序I/O方式更有效
但仍以字(節(jié))為單位進行I/O榛做,每當完成一個字(節(jié)),控制器便要請求一次中斷内狸。
CPU雖然可與I/O并行检眯,但效率不高,存在頻繁的中斷干擾昆淡。
改進:
CPU下指令通知控制器完成一塊數(shù)據(jù)的I/O锰瘸,控制器完成后才發(fā)中斷,而不是每個字節(jié)都要向CPU發(fā)中斷昂灵;
多字節(jié)傳輸入內(nèi)存過程不需要CPU搬運避凝,由控制器控制完成(所以稱直接存儲器訪問)——DMA(Direct Memory Access)控制方式引入
直接存儲器訪問DMA方式
該方式的特點是:
數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊;
所傳送的數(shù)據(jù)是從設備直接送入內(nèi)存的眨补,或者直接從內(nèi)存進設備管削;不需要CPU操作。
CPU干預進一步減少:僅在傳送一個或多個數(shù)據(jù)塊的開始和結束時撑螺,才需CPU干預含思,整塊數(shù)據(jù)的傳送是在控制器的控制下完成的。
可見DMA方式又是成百倍的減少了CPU對I/O的干預甘晤,進一步提高了CPU與I/O設備的并行操作程度含潘。
DMA控制器的組成
DMA控制器由三部分組成:
主機與DMA控制器的接口;
DMA控制器與塊設備的接口安皱;
I/O控制邏輯调鬓。
IO通道控制方式
DMA適用于讀一個連續(xù)的數(shù)據(jù)塊艇炎;
如一次讀多個數(shù)據(jù)塊到內(nèi)存不同區(qū)域酌伊,須由CPU分別發(fā)送多條I/O指令、進行多次DMA中斷處理。
再進一步減少CPU的干預(減少中斷)居砖, 引入通道虹脯。
實現(xiàn)對一組數(shù)據(jù)塊的讀(寫)及有關的控制和管理為單位的干預。
此時奏候,CPU只需發(fā)一條I/O指令循集,給出通道程序的首地址及要訪問設備即可。
CPU蔗草、通道和I/O設備三者的并行操作咒彤,提高整系統(tǒng)資源利用率。
設備獨立性的基本含義:
指應用程序中所使用的設備咒精,不局限于使用某個具體的物理設備镶柱,也稱為設備無關性。
為了實現(xiàn)設備獨立性模叙,在設備驅(qū)動程序之上設置一層軟件歇拆,稱為與設備無關的I/O軟件,或設備獨立性軟件范咨。
設備無關的軟件是I/O系統(tǒng)最高層軟件故觅,但它和其下的設備驅(qū)動程序之間的界限,將隨操作系統(tǒng)和設備的不同而有所差異渠啊。
獨占設備的分配過程
分配設備:
根據(jù)請求設備名输吏,查找SDT,找到DCT替蛉;
狀態(tài)评也、安全性等因素都可能導致本申請進程阻塞,掛入DCT等待隊列中灭返。
分配控制器
通過1步分配設備后盗迟,從DCT找到COCT;
檢查COCT狀態(tài)字熙含,若忙碌罚缕,進程PCB掛到其等待隊列
分配通道
COCT找到CHCT
判斷狀態(tài),…
當上述三步都通過后怎静,才可啟動設備進行數(shù)據(jù)傳輸