一荣赶、 I/O系統(tǒng)
I/O設(shè)備
類型
按傳輸速率高低
- 低速設(shè)備:每秒幾個(gè)字節(jié)至數(shù)百個(gè)字節(jié)。鍵盤刽虹、鼠標(biāo)器酗捌、語音輸入輸出設(shè)備
- 中速設(shè)備:每秒鐘數(shù)千個(gè)字節(jié)至數(shù)萬個(gè)字節(jié)。打印機(jī)涌哲、激光打印機(jī)
- 高速設(shè)備:數(shù)百千個(gè)字節(jié)至數(shù)十兆字節(jié)胖缤。磁帶機(jī)、磁盤機(jī)膛虫、光盤機(jī)
按信息交換單位
- 塊設(shè)備:磁盤草姻。傳輸效率高,可尋址
- 字符設(shè)備:用于數(shù)據(jù)輸入輸出稍刀。打印機(jī)撩独、鼠標(biāo)
系統(tǒng)總線
- ISA總線
- EISA總線
- PCI總線:PCI既可以連接ISA,EISA等總線账月,又可支持pentium的64位系統(tǒng) ,我們現(xiàn)在使用的PC基本都是PCI總線综膀。最大傳輸速率4GB/sec
二、 I/O控制方式:
程序I/O方式
在該方式中局齿,CPU不斷地測(cè)試I/O設(shè)備的狀態(tài)剧劝。由于CPU的高速性和I/O設(shè)備的低速性, 致使CPU的絕大部分時(shí)間都處于等待I/O設(shè)備完成數(shù)據(jù)I/O的循環(huán)測(cè)試中抓歼,造成對(duì)CPU的極大浪費(fèi)讥此。就是因?yàn)樵贑PU中無中斷機(jī)構(gòu)。
中斷驅(qū)動(dòng)I/O控制方式
在I/O設(shè)備輸入每個(gè)數(shù)據(jù)的過程中谣妻,由于無須CPU干預(yù)萄喳,因而可使CPU與I/O設(shè)備并行工作。僅當(dāng)輸完一個(gè)數(shù)據(jù)時(shí)蹋半,才需CPU花費(fèi)極短的時(shí)間去做些中斷處理他巨。可見,這樣可使CPU和I/O設(shè)備都處于忙碌狀態(tài).
直接存儲(chǔ)器訪問DMA I/O控制方式
僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí)染突,才需CPU干預(yù)捻爷,整塊數(shù)據(jù)的傳送是在控制器的控制下完成的。減少了CPU對(duì)I/O的干預(yù)份企,進(jìn)一步提高了CPU與I/O設(shè)備的并行操作程度也榄。
① 數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊,即在CPU與I/O設(shè)備之間薪棒,每次傳送至少一個(gè)數(shù)據(jù)塊手蝎;
② 所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存的榕莺,或者相反俐芯;
③ 僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需CPU干預(yù)钉鸯,整塊數(shù)據(jù)的傳送是在控制器的控制下完成的吧史。可見唠雕,DMA方式較之中斷驅(qū)動(dòng)方式贸营,又是成百倍地減少了CPU對(duì)I/O的干預(yù),進(jìn)一步提高了CPU與I/O設(shè)備的并行操作程度岩睁。
三钞脂、 中斷處理程序
- 喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程
- 保護(hù)被中斷的CPU環(huán)境
- 轉(zhuǎn)入相應(yīng)的設(shè)備處理程序
- 中斷處理
- 恢復(fù)被中斷的進(jìn)程的現(xiàn)場(chǎng)
四、設(shè)備驅(qū)動(dòng)程序
功能
(1) 接收由I/O進(jìn)程發(fā)來的命令和參數(shù).
(2) 檢查用戶I/O請(qǐng)求的合法性.
(3) 發(fā)出I/O命令,啟動(dòng)I/O設(shè)備去完成指定的I/O操作.
(4) 及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請(qǐng)求捕儒,并根據(jù) 其中斷類型調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理冰啃。
(5) 對(duì)于設(shè)置有通道的計(jì)算機(jī)系統(tǒng),驅(qū)動(dòng)程序還應(yīng)能夠根據(jù)用戶的I/O請(qǐng)求刘莹,自動(dòng)地構(gòu)成通道程序阎毅。
流程
五、與設(shè)備無關(guān)的I/O軟件
設(shè)計(jì)目標(biāo)
(1)與具體設(shè)備無關(guān)
(2)統(tǒng)一命名
(3)對(duì)錯(cuò)誤的處理
(4)緩沖技術(shù)
(5)設(shè)備的分配和釋放
(6)I/O控制方式
層次和功能
六点弯、 磁盤存儲(chǔ)器管理
磁盤性能簡(jiǎn)述
磁盤的類型
- 固定頭磁盤:這種磁盤在每條磁道上都有一讀/寫磁頭扇调,所有的磁頭都被裝在一剛性磁臂中。這種結(jié)構(gòu)的磁盤主要用于大容量磁盤上抢肛。
- 移動(dòng)頭磁盤:每一個(gè)盤面僅配有一個(gè)磁頭狼钮,也被裝入磁臂中。為能訪問該盤面上的所有磁道捡絮,該磁頭必須能移動(dòng)以進(jìn)行尋道熬芜。由于其結(jié)構(gòu)簡(jiǎn)單, 故仍廣泛應(yīng)用于中小型磁盤設(shè)備中锦援。
磁盤訪問時(shí)間
- 尋道時(shí)間(移動(dòng)頭磁盤):
這是指把磁臂(磁頭)移動(dòng)到指定磁道上所經(jīng)歷的時(shí)間猛蔽。該時(shí)間是啟動(dòng)磁臂的時(shí)間s與磁頭移動(dòng)n條磁道所花費(fèi)的時(shí)間之和, 即
Ts=m×n+s
其中,m是一常數(shù)曼库,與磁盤驅(qū)動(dòng)器的速度有關(guān)区岗,對(duì)一般磁盤, m=0.2毁枯;對(duì)高速磁盤慈缔,m≤0.1,磁臂的啟動(dòng)時(shí)間約為2 ms种玛。 這樣藐鹤,對(duì)一般的溫盤,其尋道時(shí)間將隨尋道距離的增加而增大赂韵, 大體上是5~30 ms娱节。 - 旋轉(zhuǎn)延遲時(shí)間:
這是指定扇區(qū)移動(dòng)到磁頭下面所經(jīng)歷的時(shí)間。對(duì)于硬盤祭示,典型的旋轉(zhuǎn)速度大多為5400 r/min肄满,每轉(zhuǎn)需時(shí)11.1 ms,平均旋轉(zhuǎn)延遲時(shí)間Tτ為6.55 ms质涛;如果旋轉(zhuǎn)速度為7200r/min稠歉,平均Tτ為4.16 ms。 - 傳輸時(shí)間:
這是指把數(shù)據(jù)從磁盤讀出或向磁盤寫入數(shù)據(jù)所經(jīng)歷的時(shí)間汇陆。 Tt的大小與每次所讀/寫的字節(jié)數(shù)B和旋轉(zhuǎn)速度有關(guān) .
磁盤調(diào)度
先來先服務(wù)(FCFS)
最短尋道時(shí)間優(yōu)選(SSTF)
掃描算法(SCAN)
SSTF算法雖然能獲得較好的尋道性能怒炸, 但卻可能導(dǎo)致某個(gè)進(jìn)程發(fā)生“饑餓”(Starvation)現(xiàn)象。因?yàn)橹灰粩嘤行逻M(jìn)程的請(qǐng)求到達(dá)毡代, 且其所要訪問的磁道與磁頭當(dāng)前所在磁道的距離較近阅羹,這種新進(jìn)程的I/O請(qǐng)求必須優(yōu)先滿足。對(duì)SSTF算法略加修改后所形成的SCAN算法月趟, 即可防止老進(jìn)程出現(xiàn)“饑餓”現(xiàn)象灯蝴。
循環(huán)掃描算法
磁盤高速緩存
磁盤的告訴緩存形式
是指利用內(nèi)存中的存儲(chǔ)空間,來暫存從磁盤中讀出的一系列盤塊中的信息孝宗。因此穷躁,這里的高速緩存是一組在邏輯上屬于磁盤, 而物理上是駐留在內(nèi)存中的盤塊因妇。高速緩存在內(nèi)存中可分成兩種形式问潭。
- 在內(nèi)存中開辟一個(gè)單獨(dú)的存儲(chǔ)空間來作為磁盤高速緩存,其大小是固定的婚被,不會(huì)受應(yīng)用程序多少的影響狡忙;
- 把所有未利用的內(nèi)存空間變?yōu)橐粋€(gè)緩沖池,供請(qǐng)求分頁系統(tǒng)和磁盤I/O時(shí)(作為磁盤高速緩存)共享址芯。此時(shí)高速緩存的大小不再是固定的灾茁。當(dāng)磁盤I/O的頻繁程度較高時(shí)窜觉,該緩沖池可能包含更多的內(nèi)存空間;而在應(yīng)用程序運(yùn)行得較多時(shí)北专,該緩沖池可能只剩下較少的內(nèi)存空間禀挫。