

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第六章輸入輸出系統(tǒng),1. 輸入/輸出系統(tǒng)簡稱I/O系統(tǒng) 包括:,I/O設(shè)備(如鍵盤、磁盤、打印機(jī)) I/O設(shè)備與處理機(jī)的連接 (1)數(shù)據(jù)如何傳送(并行或串行,傳輸速率) (2)對外設(shè)如何控制(如程序控制、DMA、I/O處理機(jī)),6.1 I/O系統(tǒng)性能與CPU性能,2. I/O系統(tǒng)的基本任務(wù):完成計(jì)算機(jī)與外界的信息交換給計(jì)算機(jī)提供大容量的外部存儲器3. 按照主要完成的工作進(jìn)行分類:存儲I/O系統(tǒng)(本章內(nèi)
2、容) 通信I/O系統(tǒng),6.1 I/O系統(tǒng)性能與CPU性能,3. 幾個與I/O有關(guān)的問題 (1) 對系統(tǒng)性能的影響 CPU速度再提高,如果無相適應(yīng)的I/O系統(tǒng)的話,將無多大意義。,6.1 I/O系統(tǒng)性能與CPU性能,例6.1 假設(shè)一臺計(jì)算機(jī)的I/O處理占10%,當(dāng)其CPU性能改進(jìn),而I/O性能保持不變時,系統(tǒng)總體性能會出現(xiàn)什么變化? 解:假設(shè)原來的程序執(zhí)行時間為1個單位時間。如果
3、CPU的性能提高10倍,程序的計(jì)算(包含I/O處理)時間為: (1 - 10%)/10 + 10% = 0.19,如果CPU的性能提高10倍 如果CPU的性能提高100倍,6.1 I/O系統(tǒng)性能與CPU性能,即整機(jī)性能只能提高約5倍,差不多有50%的CPU性能浪費(fèi)在I/O上。 如果CPU性能提高100倍,程序的計(jì)算時間為: (1 - 10%)/100 + 10%
4、= 0.109而整機(jī)性能只能提高約10倍,表示有90%的性能浪費(fèi)在沒有改進(jìn)的I/O上了。,6.1 I/O系統(tǒng)性能與CPU性能,(2) 不同系統(tǒng)中I/O的差異 不同類型系統(tǒng)(微機(jī)、工作站、大型機(jī)、巨型機(jī))的CPU速度差異正在縮小,差異更多來自于I/O系統(tǒng)。,6.1 I/O系統(tǒng)性能與CPU性能,(3) 評價(jià)I/O系統(tǒng)性能的參數(shù)主要有: 連接特性(哪些I/O設(shè)備可以和計(jì)算機(jī)系統(tǒng)相連接) I/O系統(tǒng)的容量(
5、I/O系統(tǒng)可以容納的I/O設(shè)備數(shù)) 響應(yīng)時間和吞吐率等(4) 另一種衡量I/O系統(tǒng)性能的方法: 考慮I/O操作對CPU的打擾情況。 即考查某個進(jìn)程在執(zhí)行時,由于其他進(jìn)程的I/O操作,使得該進(jìn)程的執(zhí)行時間增加了多少。,6.1 I/O系統(tǒng)性能與CPU性能,,6.2 可靠性、可用性和可信性,◆ 反映存儲外設(shè)可靠性能的參數(shù),可靠性(Reliability) 可用性(Availability) 可信性(Dependabili
6、ty),◆ 與可靠性相關(guān)的三個術(shù)語,故障(fault) 錯誤(error) 失效(failure),◆ 可信性是存儲的基礎(chǔ),,6.2 可靠性、可用性和可信性,1. 故障、錯誤和失效之間的關(guān)系(1) 一個故障可能會導(dǎo)致一個或者多個錯誤;(2) 錯誤通常具有以下特性 ◆ 錯誤在潛在狀態(tài)和有效狀態(tài)間相互轉(zhuǎn)換; ◆ 潛在的錯誤可能通過激活而有效; ◆ 有效錯誤的影響可以傳遞,引起新的錯誤。(3) 如果錯誤影響到部件正常
7、的服務(wù)時,部件就發(fā) 生了失效;(4) 系統(tǒng)中的所有部件的故障、錯誤和失效均存在 這樣的關(guān)系。,,6.2 可靠性、可用性和可信性,3. 系統(tǒng)可靠性◆ 系統(tǒng)從初始狀態(tài)開始一直提供服務(wù)的能力◆ 用平均無故障時間MTTF來衡量 (Mean Time To Failure) ◆ MTTF的倒數(shù)為失效率◆如果一個系統(tǒng)有多個部件,其工作時間服從指數(shù)分布(獨(dú)立概率事件),則系統(tǒng)失效率為部件失效率之和
8、 MTTR(平均維修時間) MTBF(平均失效間隔時間),,6.2 可靠性、可用性和可信性,4. 系統(tǒng)可用性◆ 系統(tǒng)正常工作時間在連續(xù)兩次正常服務(wù)間隔 時間中所占的比率如果時間僅包含工作和維修兩個成分:MTBF =MTTF + MTTR可用性= MTTF/( MTTF + MTTR)5. 系統(tǒng)可信性◆ 多大程度上可以合理地認(rèn)為服務(wù)是可靠的◆ 可信性不可度量,,6.2 可靠性、可用性和可信性,例
9、6.2 假設(shè)磁盤子系統(tǒng)的組成部件和它們的MTTF 如下:(1) 磁盤子系統(tǒng)由10個磁盤構(gòu)成,每個磁盤 的MTTF為1000000小時;(2) 1個SCSI控制器,其MTTF為500000小時;(3) 1個不間斷電源,其MTTF為200000小時;(4) 1個風(fēng)扇,其MTTF為200000小時;(5) 1根SCSI連線,其MTTF為1000000小時;,,6.2 可靠性、可用性和可信性,假定部件的工作時
10、間服從指數(shù)分布,部件的工作時間與故障出現(xiàn)的概率無關(guān);同時假定各部件的故障相互獨(dú)立,試計(jì)算整個系統(tǒng)的MTTF。解:整個系統(tǒng)的失效率為:,,,,,,,,1000000,23,1000000,1,200000,1,200000,1,500000,1,1000000,1,10,=,+,+,+,+,×,=,系統(tǒng)失效率,,6.2 可靠性、可用性和可信性,系統(tǒng)的MTTF為系統(tǒng)失效率的倒數(shù),即:,,,小時,=,43500,23,100000
11、0,MTTF,=,大約為5年。,6.2 可靠性、可用性和可信性,指數(shù)分布:用于電子設(shè)備可靠性預(yù)計(jì)的一種分布.概率密度函數(shù):,P(x) = ?e- ?x,期望值:,平均無故障工作時間MTTF,,? 為失效率,可靠度:,6.2 可靠性、可用性和可信性,串聯(lián)系統(tǒng):任一部件的故障即構(gòu)成系統(tǒng)的故障.,,,6.2 可靠性、可用性和可信性,6. 提高系統(tǒng)組成部件可靠性的方法 有效構(gòu)建方法(valid construction) 在
12、構(gòu)建系統(tǒng)的過程中消除故障隱患,這樣建立起來的系統(tǒng)就不會出現(xiàn)故障。糾錯方法(error correction) 在系統(tǒng)構(gòu)建中采用容錯的方法。這樣即使出現(xiàn)故障,也可以通過容錯信息保證系統(tǒng)正常工作。,6.3 廉價(jià)磁盤冗余陣列RAID,磁盤陣列DA(Disk Array):使用多個磁盤(包括驅(qū)動器)的組合來代替一個大容量的磁盤。多個磁盤并行工作。以條帶為單位把數(shù)據(jù)均勻地分布到多個磁盤上。(交叉存放)條帶存放可以使多個數(shù)據(jù)讀/
13、寫請求并行地被處理,從而提高總的I/O性能。,6.3 廉價(jià)磁盤冗余陣列RAID,這里并行性有兩方面的含義:多個獨(dú)立的請求可以由多個盤來并行地處理。 減少了I/O請求的排隊(duì)等待時間 如果一個請求訪問多個塊,就可以由多個盤合作來并行處理。 提高了單個請求的數(shù)據(jù)傳輸率,6.3 廉價(jià)磁盤冗余陣列RAID,問題:陣列中磁盤數(shù)量的增加會導(dǎo)致磁盤陣 列可靠性的下降。 磁盤出錯的概率增加。解決方法:在磁盤陣列中設(shè)置冗余信息
14、盤 當(dāng)單個磁盤失效時,丟失的信息可以通過冗 余盤中的信息重新構(gòu)建。,6.3 廉價(jià)磁盤冗余陣列RAID,◆ 廉價(jià)磁盤冗余陣列 Redundant Array of Inexpensive Disks◆ 獨(dú)立磁盤冗余陣列 Redundant Array of Independent Disks◆ 簡稱盤陣列技術(shù) 1988年,Patterson教授首先提出。 ◆ 優(yōu)點(diǎn) 容量大、速
15、度快、可靠性高、造價(jià)低廉,6.3 廉價(jià)磁盤冗余陣列RAID,大多數(shù)磁盤陣列的組成可以由以下兩個特征來區(qū)分: 1. 數(shù)據(jù)交叉存放的粒度 細(xì)粒度磁盤陣列是在概念上把數(shù)據(jù)分割成相對較 小的單位交叉存放。 優(yōu)點(diǎn):所有I/O請求都能夠獲得很高的數(shù)據(jù)傳輸率。缺點(diǎn):在任何時間,都只有一個邏輯上的I/O在處理當(dāng)中,而且所有的磁盤都會因?yàn)闉槊總€請求進(jìn)行定位而浪費(fèi)時間。 粗粒度磁盤陣列是把數(shù)據(jù)以相
16、對較大的單位交叉 存放。多個較小規(guī)模的請求可以同時得到處理。對于較大規(guī)模的請求又能獲得較高的傳輸率。,6.3 廉價(jià)磁盤冗余陣列RAID,2. 冗余數(shù)據(jù)的計(jì)算方法以及在磁盤陣列中的存放方式糾錯檢錯方案大多都是采用奇偶校驗(yàn)碼;也有采用漢明碼(Hamming code)或Reed-Solomon碼的。 冗余信息分布 有兩種方法:把冗余信息集中存放在少數(shù)的幾個盤中。把冗余信息均勻地存放到所有的盤中。 (能避免
17、出現(xiàn)熱點(diǎn)問題),RAID的分級及其特性,RAID的分級及其特性,6.3 廉價(jià)磁盤冗余陣列RAID,8. 有關(guān)RAID的幾個問題 (1) 關(guān)鍵問題:如何發(fā)現(xiàn)磁盤的失效 磁盤技術(shù)提供了故障檢測操作的信息。 (2) 設(shè)計(jì)的另一個問題: 如何減少平均修復(fù)時間MTTR 典型的做法:在系統(tǒng)中增加熱備份盤 (3) 熱切換技術(shù) 與熱備份盤相關(guān)的一
18、種技術(shù),6.3 廉價(jià)磁盤冗余陣列RAID,6.3.1 RAID0 ◆ 把數(shù)據(jù)切分成條帶,以條帶為單位交叉地 分布存放到多個磁盤中。 ◆ 非冗余陣列、無冗余信息。 ◆ 嚴(yán)格地說,它不屬于RAID系列。,6.3 廉價(jià)磁盤冗余陣列RAID,6.3.2 RAID1 亦稱鏡像盤,使用雙備份磁盤。 每當(dāng)數(shù)據(jù)寫入一個磁盤時,將該數(shù)據(jù)也寫 到另一個冗余盤,形成信息的兩份復(fù)制品。,6.3 廉價(jià)磁盤
19、冗余陣列RAID,1. RAID1的特點(diǎn)◆ 讀性能好 RAID1的性能能夠達(dá)到RAID0性能的兩倍?!?寫性能由寫性能最差的磁盤決定。相對以后 各級RAID來說,RAID1的寫速度較快?!?可靠性很高,數(shù)據(jù)的恢復(fù)很簡單?!?最昂貴的解決方法,物理磁盤空間是邏輯磁 盤空間的兩倍。,6.3 廉價(jià)磁盤冗余陣列RAID,2. RAID1中的鏡像和分塊如何相互作用? ◆ RAID0+1 先分塊后鏡像(或稱RA
20、ID01 ),6.3 廉價(jià)磁盤冗余陣列RAID,◆ RAID1+0 先鏡像后分塊(或稱RAID10 ),6.3 廉價(jià)磁盤冗余陣列RAID,,6.3.3 RAID21. 位交叉式海明編碼陣列2. 各個數(shù)據(jù)盤上的相應(yīng)位計(jì)算海明校驗(yàn)碼,編碼 位被存放在多個校驗(yàn)(Ecc)磁盤的對應(yīng)位上。,,6.3 廉價(jià)磁盤冗余陣列RAID,3. RAID2的特點(diǎn)每個數(shù)據(jù)盤存放所有數(shù)據(jù)字的一位 (位交叉存放)各個數(shù)據(jù)盤上的相應(yīng)位計(jì)算漢明校
21、驗(yàn)碼,編碼位被存放在多個校驗(yàn)(ECC)磁盤的對應(yīng)位上。冗余盤用來存放漢明碼的校驗(yàn)位,其個數(shù)為log2m級。 m:數(shù)據(jù)盤的個數(shù)(也就是數(shù)據(jù)字的位數(shù))并未被廣泛應(yīng)用,目前還沒有商業(yè)化產(chǎn)品。,6.3 廉價(jià)磁盤冗余陣列RAID,6.3.4 RAID31. 位交叉奇偶校驗(yàn)盤陣列2. 單盤容錯并行傳輸:數(shù)據(jù)以位或字節(jié)交叉存儲, 奇偶校驗(yàn)信息存儲在一臺專用盤上。,6.3 廉價(jià)磁盤冗余陣列RAID,3.RAID3的特點(diǎn)采用奇偶校驗(yàn)
22、寫數(shù)據(jù)時為每行數(shù)據(jù)形成奇偶校驗(yàn)位并寫入校驗(yàn)盤讀出數(shù)據(jù)時如果控制器發(fā)現(xiàn)某個磁盤出故障,就可以根據(jù)故障盤以外的所有其他盤中的正確信息恢復(fù)故障盤中的數(shù)據(jù)。(通過異或運(yùn)算實(shí)現(xiàn)) 細(xì)粒度的磁盤陣列,即采用的條帶寬度較小。 (可以是1個字節(jié)或1位)只需要一個校驗(yàn)盤,校驗(yàn)空間開銷比較小。,6.3 廉價(jià)磁盤冗余陣列RAID,6.3.5 RAID41. 專用奇偶校驗(yàn)獨(dú)立存取盤陣列2. 數(shù)據(jù)以塊(塊大小可變)交叉的方式存于各盤, 奇
23、偶校驗(yàn)信息存在一臺專用盤上。 目標(biāo):能同時處理多個小規(guī)模訪問請求,6.3 廉價(jià)磁盤冗余陣列RAID,3. RAID4特點(diǎn)◆ 冗余代價(jià)與RAID3相同◆ 訪問數(shù)據(jù)的方法與RAID3不同,在RAID4中,一次磁盤訪問不需對所有磁盤 進(jìn)行操作; RAID4出現(xiàn)的原因:希望使用較少的磁盤 參與操作,以使磁盤陣列可以并行進(jìn)行多 個數(shù)據(jù)的磁盤操作。,6.3 廉價(jià)磁盤冗余陣列RAID,4. RAID4讀
24、寫特點(diǎn)假定:有4個數(shù)據(jù)盤和一個冗余盤◆ 讀出數(shù)據(jù),最少一次讀操作(利用扇區(qū)檢錯);◆ 寫數(shù)據(jù)需要2次磁盤讀和2次磁盤寫操作(優(yōu)化),6.3 廉價(jià)磁盤冗余陣列RAID,6.3.6 RAID51. 塊交叉分布式奇偶校驗(yàn)盤陣列2. 數(shù)據(jù)以塊交叉的方式存于各盤,無專用冗余盤, 奇偶校驗(yàn)信息均勻分布在所有磁盤上。,6.4 廉價(jià)磁盤冗余陣列RAID,6.3 廉價(jià)磁盤冗余陣列RAID,6.3.7 RAID61. 雙維奇偶校驗(yàn)獨(dú)立存取
25、盤陣列2. 數(shù)據(jù)以塊(塊大小可變)交叉方式存于各盤, 檢、糾錯信息均勻分布在所有磁盤上。,6.3 廉價(jià)磁盤冗余陣列RAID,3. RAID6特點(diǎn)◆ 可容忍雙盤出錯;◆ 存儲開銷是RAID5的兩倍,6.3 廉價(jià)磁盤冗余陣列RAID,6.3.8 RAID7◆ 采用Cache和異步技術(shù)的RAID6◆ 較高的響應(yīng)速度和傳輸速率,6.3 廉價(jià)磁盤冗余陣列RAID,6.3.9 RAID的實(shí)現(xiàn)與發(fā)展1. 實(shí)現(xiàn)盤陣列的方式主要有三種
26、◆ 軟件方式:陣列管理軟件由主機(jī)來實(shí)現(xiàn) 優(yōu)點(diǎn):成本低 缺點(diǎn):過多地占用主機(jī)時間,并且?guī)捴?標(biāo)上不去。◆ 陣列卡方式:把RAID管理軟件固化在I/O控制 卡上,從而可不占用主機(jī)時間,一般用于工作 站和PC機(jī)。,6.3 廉價(jià)磁盤冗余陣列RAID,◆ 子系統(tǒng)方式:這是一種基于通用接口總線 的開放式平臺,可用于各種主機(jī)平臺和網(wǎng) 絡(luò)系統(tǒng)。,2. 盤陣列技術(shù)研究的主要熱點(diǎn)問題◆ 新型陣列
27、體系結(jié)構(gòu);◆ RAID結(jié)構(gòu)與其所記錄文件特性的關(guān)系;◆ 在RAID冗余設(shè)計(jì)中,綜合平衡性能、可靠 性和開銷的問題;◆ 超大型盤陣列在物理上如何構(gòu)造和連結(jié)的問題。,3.盤陣列技術(shù)飛速發(fā)展的原因: (1)應(yīng)用需求,CPU與單個磁盤的速度差異越來越大。 (2)一些單項(xiàng)技術(shù)(如交叉存取、數(shù)據(jù)分塊、緩沖存儲等) 已比較成熟。 (3)在PC帶動下,小盤驅(qū)動器得到了更高速發(fā)展。 (4)微電子技術(shù)的發(fā)展,使得支持
28、盤陣列的大規(guī)模芯片成 為可能。,,6.3 廉價(jià)磁盤冗余陣列RAID,在計(jì)算機(jī)系統(tǒng)中,各子系統(tǒng)之間可以通過總線互相連接優(yōu)點(diǎn):低成本、多樣性、靈活性、可擴(kuò)展性缺點(diǎn):必須獨(dú)占使用,造成了設(shè)備信息交換的瓶頸,從而限制了系統(tǒng)中總的I/O吞吐量。,6.4 總 線,6.4 總 線,總線設(shè)計(jì)存在很多技術(shù)難點(diǎn)一個重要原因:總線上信息傳送的速度極大地受限于各種物理因素。 如總線的長度、設(shè)備的數(shù)目、信號的強(qiáng)度等,這些
29、物理因素限制了總線性能的提高。另外,我們一方面要求I/O操作響應(yīng)快,另一方面又要求高吞吐量,這可能造成設(shè)計(jì)需求上的沖突。,設(shè)計(jì)總線時需要考慮的一些問題,2. 分離事務(wù)總線(又稱:流水總線、懸掛總線、包交換總線)在有多個主設(shè)備時,可以通過打包技術(shù)來提高總線帶寬。基本思想將總線事務(wù)分成請求和應(yīng)答兩部分。在請求和應(yīng)答之間的空閑時間內(nèi),總線可以供其他的I/O使用,這樣就不必在整個I/O過程中都獨(dú)占總線。,6.4 總 線,分離事務(wù)總線有
30、較高的帶寬,但是它的數(shù)據(jù)傳送延遲通常比獨(dú)占總線方法大。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6.4 總 線,(2) 同步總線 包含一個供總線上所有設(shè)備使用的時鐘,并且這些設(shè)備是基于該時鐘按照一個固定的協(xié)議來發(fā)送地址和數(shù)據(jù)的。 優(yōu)點(diǎn):速度快、成本低。 缺點(diǎn):總線操作都必須以同樣的時鐘頻率進(jìn)行。(3) 異步總線 沒有統(tǒng)一的參考時鐘,每個設(shè)備都有各自的定時 方法。
31、 采用握手協(xié)議 。,6.4 總 線,I/O總線標(biāo)準(zhǔn):定義如何將設(shè)備與計(jì)算機(jī)進(jìn)行連接的文檔。常見I/O總線的一些典型特征,6.4.2 總線標(biāo)準(zhǔn)和實(shí)例,6.4 總 線,幾種常用并行I/O總線,6.4 總 線,在嵌入式系統(tǒng)中使用較多的4種串行I/O總線的一些典型特征,幾種CPU-存儲器互連系統(tǒng),6.4 總 線,6.4 總 線,6.4.3 與CPU的連接,I/O總線的物理連接方式有兩種選擇連接到存儲器上, 更常見連接到Cache上I
32、/O總線連接到存儲器總線上的方式一種典型的組織結(jié)構(gòu),,,,CPU,,Cache,,主存,,I/O,控制器,,圖形輸出,,,,,,,,,,,,,,I/O,控制器,,,,總線適配器,,,網(wǎng)絡(luò),,,CPU,-主存總線,I/O,總線,,總線適配器,,,AGP總線,PCI總線,,I/O,控制器,,,I/O,控制器,總線適配器,磁盤,磁盤,CD,CPU對I/O設(shè)備的編址有兩種方式存儲器映射I/O(也稱為統(tǒng)一編址)將一部分存儲器地址空間分配給I
33、/O設(shè)備,用load指令和store指令對這些地址進(jìn)行讀寫將引起I/O設(shè)備的數(shù)據(jù)傳輸。將一部分存儲空間留出用于設(shè)備控制,對這一部分地址空間進(jìn)行讀寫就是向設(shè)備發(fā)出控制命令。,6.4 總 線,給I/O設(shè)備獨(dú)立編址需要在CPU中設(shè)置專用的I/O指令來訪問I/O設(shè)備。CPU需要發(fā)出一個標(biāo)志信號來表示所訪問的地址是I/O設(shè)備的地址。,6.4 總 線,CPU與外部設(shè)備進(jìn)行輸入/輸出的方式可分為4 種程序查詢中斷DMA通道,6.4 總
34、線,6.5 通道處理機(jī),程序控制、中斷和DMA方式管理外圍設(shè)備會引起兩個問題:所有外設(shè)的輸入/輸出工作均由CPU承擔(dān),CPU的計(jì)算工作經(jīng)常被打斷而去處理輸入/輸出的事務(wù),不能充分發(fā)揮CPU的計(jì)算能力。 大型計(jì)算機(jī)系統(tǒng)的外設(shè)雖然很多,但同時工作的機(jī)會不是很多。 解決上述問題的方法:采用通道處理機(jī),6.5.1 通道的作用和功能,通道處理機(jī): 能夠執(zhí)行有限I/O指令,并且能夠被多 臺外圍
35、設(shè)備共享的小型DMA專用處理 機(jī)。,6.5 通道處理機(jī),通道的功能 接收CPU發(fā)來的I/O指令,并根據(jù)指令要求選擇指定的外設(shè)與通道相連接。執(zhí)行通道程序 從主存中逐條取出通道指令,對通道指令進(jìn)行譯碼,并根據(jù)需要向被選中的設(shè)備控制器發(fā)出各種操作命令。給出外設(shè)中要進(jìn)行讀/寫操作的數(shù)據(jù)所在的地址, 如磁盤存儲器的柱面號、磁頭號、扇區(qū)號等。,6.5 通道處理機(jī),6.5 通道處理機(jī)
36、,給出主存緩沖區(qū)的首地址, 該緩沖區(qū)存放從外設(shè)輸入的數(shù)據(jù)或者將要輸出到外設(shè)中去的數(shù)據(jù)。控制外設(shè)與主存緩沖區(qū)之間的數(shù)據(jù)傳送的長度, 對傳送的數(shù)據(jù)個數(shù)進(jìn)行計(jì)數(shù),并判斷數(shù)據(jù)傳送是否結(jié)束。指定傳送工作結(jié)束時要進(jìn)行的操作, 例如:將外設(shè)的中斷請求及通道的中斷請求送往CPU等。檢查外設(shè)的工作狀態(tài)是否正常,并將該狀態(tài)信息送往主存指定單元保存。在數(shù)據(jù)傳輸過程中完成必要的格式變換 例如:把字拆分為字節(jié),或者把字節(jié)裝配成字 等。,通道的主要硬件
37、 (1) 寄存器部分,數(shù)據(jù)緩沖寄存器 主存地址計(jì)數(shù)器 傳輸字節(jié)數(shù)計(jì)數(shù)器 通道命令字寄存器 通道狀態(tài)字寄存器,6.5 通道處理機(jī),(2) 控制邏輯,分時控制 地址分配 數(shù)據(jù)傳送 數(shù)據(jù)裝配 拆卸,6.5 通道處理機(jī),6.5 通道處理機(jī),通道對外設(shè)的控制通過輸入/輸出接口和設(shè)備控制器進(jìn)行 通道與設(shè)備控制器之間一般采用標(biāo)準(zhǔn)的輸入/輸出接口來連接。 通道通過標(biāo)準(zhǔn)接口把操作命令送到設(shè)備控制器,設(shè)備控制器解
38、釋并執(zhí)行這些通道命令,完成命令指定的操作。 設(shè)備控制器能夠記錄外設(shè)的狀態(tài),并把狀態(tài)信息送往通道和CPU。,通道對外設(shè)的連接,6.5.2 通道工作過程 (1) 在用戶程序中使用訪管指令進(jìn)入管理程序, 由CPU通過管理程序組織一個通道程序,并 啟動通道。該廣義指令一般是調(diào)用操作系統(tǒng)的管理程序來實(shí)現(xiàn)。管理程序根據(jù)廣義指令提供的參數(shù)來編制通道程序。 啟動輸入/輸出設(shè)備指令是一條主
39、要的輸入/輸出指令,屬于特權(quán)指令。,6.5 通道處理機(jī),(2) 通道處理機(jī)執(zhí)行CPU為它組織的通道程序, 完成指定的數(shù)據(jù)I/O工作。通道處理機(jī)執(zhí)行 通道程序是與CPU執(zhí)行用戶程序并行的。,(3) 通道程序結(jié)束后向CPU發(fā)中斷請求。CPU響應(yīng) 這個中斷請求后,第二次進(jìn)入操作系統(tǒng),調(diào) 用管理程序?qū)/O中斷請求進(jìn)行處理。,6.5 通道處理機(jī),通道程序、管理程序和用戶程序的執(zhí)行時
40、間關(guān)系,6.5 通道處理機(jī),6.5.3 通道種類◆ 通道分為三種類型字節(jié)多路通道 選擇通道 數(shù)組多路通道,6.5 通道處理機(jī),1) 字節(jié)多路通道 (1) 字節(jié)多路通道主要為多臺低速或中速的外圍 設(shè)備服務(wù)。 (2) 采用分時方式工作,依靠它與CPU之間的高 速數(shù)據(jù)通路分時為多臺設(shè)備服務(wù)。,6.5 通道處理機(jī),2. 選擇通道 (1) 選擇通道也是為多高速外圍設(shè)備服務(wù)的。
41、 (2) 在傳送數(shù)據(jù)期間,該通道只能為一臺高速外圍設(shè)備服務(wù),但在不同的時間內(nèi)可以選擇不同的設(shè)備。,6.5 通道處理機(jī),3. 數(shù)組多路通道 (1) 數(shù)組多路通道適于為高速設(shè)備服務(wù)。 (2) 每次選擇一個高速設(shè)備后傳送一個數(shù)據(jù)塊, 并輪流為多臺外圍設(shè)備服務(wù)。 (3) 數(shù)組多路通道之所以能夠并行地為多個高速 外圍設(shè)備服務(wù),是因?yàn)檫@些高速外圍設(shè)備并 不能在整個數(shù)據(jù)輸入輸出時間內(nèi)單
42、獨(dú)利用通 道的全部傳輸能力。,6.5 通道處理機(jī),6.5 通道處理機(jī),6.5.4 通道中的數(shù)據(jù)傳送過程與流量分析,通道流量一個通道在數(shù)據(jù)傳送期間,單位時間內(nèi)能夠傳送的數(shù)據(jù)量。所用單位一般為Bps。 又稱為通道吞吐率、通道數(shù)據(jù)傳輸率等。通道最大流量 一個通道在滿負(fù)荷工作狀態(tài)下的流量 。,1) 字節(jié)多路通道的數(shù)據(jù)傳送過程 通道每連接一個外圍設(shè)備,只傳送一個字節(jié), 然后又與另
43、一臺設(shè)備連接,并傳送一個字節(jié)。,6.5 通道處理機(jī),P 臺設(shè)備每臺傳送n個數(shù)據(jù)總共所需的時間為,,6.5 通道處理機(jī),最大流量實(shí)際流量是連接在這個通道上的所有設(shè)備的數(shù)據(jù)傳輸率之和。fi:第 i 臺設(shè)備的實(shí)際數(shù)據(jù)傳輸率,2) 選擇通道的工作過程 在一段時間內(nèi)只能單獨(dú)為一臺高速外設(shè)服務(wù),當(dāng)這臺設(shè)備的數(shù)據(jù)傳送工作全部完成后,通道才能為另一臺設(shè)備服務(wù)。,,,6.5 通道處理機(jī),TD1 = TD2 = … = TDn =
44、TD,,,6.5 通道處理機(jī),p 臺設(shè)備每臺傳送 n 個數(shù)據(jù)總共所需的時間 最大流量,3) 數(shù)組多路通道的數(shù)據(jù)傳送過程 每連接一臺高速設(shè)備,傳送一個數(shù)據(jù)塊,傳 送完成后,又與另一臺高速設(shè)備連接,再傳送一 個數(shù)據(jù)塊。,6.5 通道處理機(jī),,,6.5 通道處理機(jī),p 臺設(shè)備每臺傳送 n 個數(shù)據(jù)總共所需的時間 最大流量,,,6.5 通道處理機(jī),數(shù)組多路通道和選擇通道在一段時間內(nèi)與一臺設(shè)備相連,因
45、此實(shí)際流量與連接的設(shè)備不同而不同。 實(shí)際流量小于連接在這個通道上的所有設(shè)備中數(shù)據(jù)流量最大的那一個 。,,,◆ 實(shí)際流量不大于最大流量 字節(jié)多路通道選擇通道數(shù)組多路通道,◆ 兩邊的差值越小,通道的利用率就越高?!?當(dāng)兩邊相等時,通道處于滿負(fù)荷工作狀態(tài)。,6.5 通道處理機(jī),6.6 I/O與操作系統(tǒng),在計(jì)算機(jī)系統(tǒng)中,I/O系統(tǒng)硬件的功能如何使用, 往往完全是由操作系統(tǒng)來決定的。
46、I/O操作主要在外設(shè)和存儲器間進(jìn)行,所以操 作系統(tǒng)的一個重要任務(wù)是維護(hù)數(shù)據(jù)的安全性。,6.6 I/O與操作系統(tǒng),6.6.1 DMA和虛擬存儲器DMA是使用虛擬地址還是物理地址?1. 使用物理地址進(jìn)行DMA,存在的問題:◆ 對于超過一頁的數(shù)據(jù)緩沖區(qū),由于緩沖區(qū)使 用的頁面在物理存儲器中不一定是連續(xù)的, 所以傳輸可能會發(fā)生問題。 ◆ 如果DMA正在存儲器和緩沖器之間傳輸數(shù)據(jù) 時,操作系統(tǒng)從存儲器中移出(或重
47、新裝載) 一些頁面后,DMA將會在存儲器中錯誤的頁 面上傳輸數(shù)據(jù)。,6.6 I/O與操作系統(tǒng),◆ 解決問題的方法,鎖定在主存中的頁面 虛擬DMA技術(shù),2. 通過DMA連接的I/O “虛擬DMA”技術(shù),它允許DMA設(shè)備直接使用虛擬地址,在DMA期間由硬件將虛擬地址映射到物理地址。 DMA地址表必須能及時更新,6.6 I/O與操作系統(tǒng),,,CPU,,Cache,,主存,,,DMA,控制器,,,,I/
48、O,總線,,TLB,,地址轉(zhuǎn)換寄存器,-主存總線,CPU,6.7.2 I/O 和 Cache 數(shù)據(jù)一致性 ◆ Cache會使一個數(shù)據(jù)出現(xiàn)兩個副本 一個在Cache中,一個在主存中。 ◆ I/O 計(jì)算機(jī)的連接方式 1. 連接到CPU的Cache上,6.6 I/O與操作系統(tǒng),,,,CPU,,Cache,,主存,,,CPU,-主存總線,,總線適配器,,,,I/O,總線,,TLB,6.6 I/O與操作
49、系統(tǒng),,◆ 不會產(chǎn)生數(shù)據(jù)不一致的問題 ◆ 所有I/O設(shè)備和CPU都能在Cache中看到最新的 數(shù)據(jù),而且存儲器中的機(jī)制能保證數(shù)據(jù)的其它 副本得到及時更新。問題:大量的I/O數(shù)據(jù)填充Cache內(nèi)容; I/O要傳給Cache的數(shù)據(jù)往往不是CPU當(dāng) 前需要訪問的數(shù)據(jù)。,6.6 I/O與操作系統(tǒng),,,CPU,,Cache,,主存,,,CPU,-主存總線,,DMA,控制器,,,
50、,I/O,總線,,TLB,,地址轉(zhuǎn)換寄存器,2. 直接連到存儲器上I/O與存儲器之間的數(shù)據(jù)交換不會干擾CPU。,6.6 I/O與操作系統(tǒng),數(shù)據(jù)不一致問題有兩個方面:(1) 存儲器中可能不是CPU產(chǎn)生的最新數(shù)據(jù),所以 I/O系統(tǒng)從存儲器中取出來使用的是陳舊數(shù)據(jù)。 如何確保I/O使用到正確的數(shù)據(jù)?,寫直達(dá)Cache可以保證存儲器和Cache有 相同的數(shù)據(jù); 寫回Cache則需要操作系統(tǒng)幫助進(jìn)行數(shù)據(jù)
51、 檢查。,6.6 I/O與操作系統(tǒng),(2) I/O與存儲器交換數(shù)據(jù)之后,在Cache中被CPU 使用的可能就是陳舊數(shù)據(jù)。如何確保CPU使用到正確的數(shù)據(jù)?,6.6 I/O與操作系統(tǒng),6.6 I/O與操作系統(tǒng),1. 軟件的方法 設(shè)法保證I/O緩沖器中的所有各塊都不在 Cache中。具體做法有兩種 把I/O緩沖器的頁面設(shè)置為不可進(jìn)入Cache的,在進(jìn)行輸入操作時,操作系統(tǒng)總是把輸入的數(shù)據(jù)
52、放到該頁面上。 在進(jìn)行輸入操作之前,操作系統(tǒng)先把Cache中與I/O緩沖器相關(guān)的數(shù)據(jù)“趕出”Cache,即把相應(yīng)的數(shù)據(jù)塊設(shè)置為“無效”狀態(tài)。,6.6 I/O與操作系統(tǒng),2. 硬件的方法在進(jìn)行輸入操作時,檢查相應(yīng)的I/O地址(I/O緩沖器中的單元)是否在Cache中(即是否有數(shù)據(jù)副本)。如果發(fā)現(xiàn)I/O地址在Cache中有匹配的項(xiàng),就把相應(yīng)的Cache塊設(shè)置為“無效”。,6.7.3 異步I/O 提高I/O性能的
53、一種方法:并行 使用多個磁盤同時工作來獲得一批數(shù)據(jù)。如何在編程模型層面支持這種并行? 同步I/O: 進(jìn)程處于等待狀態(tài)直到所需數(shù)據(jù)從磁 盤讀出。 異步I/O: 允許進(jìn)程在發(fā)出I/O請求后繼續(xù)執(zhí)行, 直到該進(jìn)程真正訪問這些數(shù)據(jù)而它們 又尚未就緒時
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論