版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng)(設(shè)備管理),徐鋒Email: xf@ics.nju.edu.cn南京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,主要內(nèi)容,概述輸入/輸出處理緩沖技術(shù)I/O軟件層次及其功能驅(qū)動調(diào)度技術(shù)設(shè)備分配虛擬設(shè)備,概述,計(jì)算機(jī)的外圍設(shè)備分為(設(shè)備管理的對象):存儲型設(shè)備,以存儲大量信息和快速檢索為目標(biāo),如磁帶機(jī)、磁盤機(jī)輸入輸出型設(shè)備,將外界信息輸入計(jì)算機(jī),把計(jì)算結(jié)果從計(jì)算機(jī)輸出。如顯示器、卡片機(jī)、打印機(jī)設(shè)備管理的目的:方便用戶使用各種
2、各樣的外圍設(shè)備,同時提高各種外圍設(shè)備的并行性,從而提高其利用率,概述,設(shè)備管理是操作系統(tǒng)中最龐雜和瑣碎的部分。其主要內(nèi)容:外圍設(shè)備中斷處理緩沖區(qū)管理外圍設(shè)備的登記和使用情況跟蹤以及分配和去配外圍設(shè)備驅(qū)動調(diào)度虛擬設(shè)備及其實(shí)現(xiàn),,基本,輸入/輸出處理,輸入/輸出系統(tǒng)的組成I/O設(shè)備及其接口電路控制部件通道管理軟件,,硬件,軟件,,主存,外圍設(shè)備,,輸出,,輸入,輸入/輸出處理,輸入/輸出設(shè)備分類按輸入、輸出特征輸入型、
3、輸出型、存儲型按信息交換的單位字符型、塊按存取方式順序型直接型(隨機(jī)),輸入/輸出處理,輸入/輸出控制方式I/O控制器(管理軟件),對設(shè)備進(jìn)行管理/并實(shí)施具體的I/O操作按其功能的強(qiáng)弱、以及與CPU的聯(lián)系方式(并行度的差異),可分為:詢問方式中斷方式DMA方式通道方式,輸入/輸出處理,輸入/輸出控制方式詢問方式程序直接控制方式,不斷查詢外圍設(shè)備的工作狀態(tài)(忙式等待)CPU與I/O設(shè)備之間串行工作效率低下,輸
4、入/輸出處理,輸入/輸出控制方式中斷方式中斷技術(shù)的引入,使得外圍設(shè)備有表達(dá)其工作狀態(tài)的能力CPU與I/O設(shè)備之間可以部分并行工作,但數(shù)據(jù)傳輸時,CPU需要參與工作,仍為串行工作方式效率有所提高,輸入/輸出處理,輸入/輸出控制方式DMA方式I/O設(shè)備可直接與主存交換數(shù)據(jù),而不需要CPU過多的干預(yù)DMA具有處理器的能力,與CPU共享對總線的控制數(shù)據(jù)在主存與I/O設(shè)備之間以塊為單位傳輸,傳輸過程不需要占用CPU時間CPU與I
5、/O設(shè)備之間可以并行工作,效率較高CPU還需要在塊與塊之間對I/O操作進(jìn)行干預(yù)(缺點(diǎn)),輸入/輸出處理,輸入/輸出控制方式通道方式減少CPU對I/O操作的干預(yù),只是在開始啟動時執(zhí)行相應(yīng)指令,并在操作結(jié)束時通過中斷通知執(zhí)行代碼進(jìn)行處理。CPU與I/O設(shè)備之間完全并行工作效率高通道分類:字節(jié)多路通道,以字節(jié)為單位交叉工作,連接大量慢速設(shè)備選擇(高速)通道,連接快速設(shè)備,一次為一個設(shè)備服務(wù)數(shù)組多路通道,上述兩種混合,I/O軟
6、件原理,I/O軟件目標(biāo)高效與通用性I/O軟件設(shè)計(jì)涉及的主要問題設(shè)備獨(dú)立性統(tǒng)一命名,UNIX系統(tǒng)利用文件系統(tǒng)文件名來統(tǒng)一命名I/O設(shè)備出錯處理錯誤盡量在接近硬件層(錯誤發(fā)生處)得到處理同步與異步傳輸緩沖設(shè)備的分配與去配區(qū)別對待共享設(shè)備與獨(dú)占設(shè)備,獨(dú)占設(shè)備分配容易引發(fā)死鎖,不同的I/O控制方式對應(yīng)的軟件實(shí)現(xiàn),打印字符串過程,程序控制I/O實(shí)現(xiàn),// 將待打印數(shù)據(jù)從用戶空間拷貝至內(nèi)核緩沖區(qū)copy_from_user(b
7、uffer, k_buffer, count);// 依次打印緩沖區(qū)中每個字符for (i = 0; i < count; i++) { // 輪詢方式查看打印機(jī)控制器狀態(tài)寄存器,等待設(shè)備空閑 while (*printer_status_reg != READY); // 將下一個字符放入打印機(jī)控制器數(shù)據(jù)寄存器 *printer_data_reg = k_buffer[i];}// 返回用
8、戶態(tài)return_to_user();,系統(tǒng)調(diào)用引發(fā),中斷驅(qū)動I/O實(shí)現(xiàn),// 將數(shù)據(jù)從用戶空間拷貝至內(nèi)核空間copy_from_user(buffer, k_buffer, count);// 初始化字符指針i = 0;// 打開中斷enable_interrupts();// 等待設(shè)備空閑while(*printer_status_reg != READY);// 在控制器數(shù)據(jù)寄存器存入第一個字符*printer
9、_data_reg = k_buffer[i];// 字符串指針加一i = i++;// 調(diào)度其他進(jìn)程執(zhí)行scheduler();,if (count == 0) { // 全部字符輸出完成,則喚醒用戶進(jìn)程 unblock_user();} else { // 否則,將下一個字符存入控制器數(shù)據(jù)寄存器 *printer_data_reg = k_buffer[i]; // 計(jì)數(shù)器減一
10、 count = count - 1; // 字符串指針加一 i = i + 1;}// 中斷響應(yīng)acknowledge_interrupt();// 中斷返回return_from_interrupt();,系統(tǒng)調(diào)用引發(fā),打印機(jī)中斷處理,使用DMA的I/O實(shí)現(xiàn),// 將數(shù)據(jù)從用戶空間拷貝至內(nèi)核空間copy_from_user(buffer, k_buffer, count);// 設(shè)置DMA控制器
11、set_up_DMA_controller();// 調(diào)度其他進(jìn)程執(zhí)行scheduler();,// 中斷響應(yīng)acknowledge_interrupt();//喚醒用戶進(jìn)程unblock_user();// 中斷返回return_from_interrupt();,系統(tǒng)調(diào)用引發(fā),DMA控制器中斷處理,I/O軟件層次,用戶級I/O軟件,與設(shè)備無關(guān)的I/O軟件,設(shè)備驅(qū)動程序,中斷處理程序,I/O硬件,中斷處理程序,主
12、要功能:喚醒設(shè)備驅(qū)動程序保護(hù)現(xiàn)場為設(shè)備驅(qū)動程序準(zhǔn)備運(yùn)行環(huán)境喚醒設(shè)備驅(qū)動程序中斷返回,設(shè)備驅(qū)動程序,直接控制I/O設(shè)備的代碼內(nèi)核進(jìn)程實(shí)現(xiàn)(正確性難保證,降低系統(tǒng)可靠性)用戶進(jìn)程實(shí)現(xiàn)(對設(shè)備控制器操作的代碼封裝在內(nèi)核)主要功能設(shè)備初始化將設(shè)備無關(guān)層發(fā)出的抽象讀寫請求轉(zhuǎn)換成具體的I/O請求(邏輯→物理)中斷處理(阻塞等待中斷處理程序喚醒)通常分為塊設(shè)備驅(qū)動程序和字符設(shè)備驅(qū)動程序符合操作系統(tǒng)的規(guī)范(編程框架)塊設(shè)備和
13、字符設(shè)備需要實(shí)現(xiàn)規(guī)定的函數(shù),被上層調(diào)用如果是內(nèi)核進(jìn)程實(shí)現(xiàn),還需規(guī)定能夠訪問的內(nèi)核函數(shù)列表,與設(shè)備無關(guān)的I/O軟件,設(shè)備驅(qū)動程序的統(tǒng)一接口I/O設(shè)備命名與保護(hù)例如,UNIX系統(tǒng)利用文件系統(tǒng)對設(shè)備統(tǒng)一命名和實(shí)施保護(hù)(主設(shè)備號,次設(shè)備號,文件訪問控制屬性)inode包含指向內(nèi)核設(shè)備驅(qū)動程序的指針定義設(shè)備無關(guān)的塊大小緩沖管理設(shè)備分配和狀態(tài)跟蹤無空閑設(shè)備時設(shè)備申請失敗加入等待隊(duì)列錯誤處理與報告,用戶空間的I/O軟件,庫函數(shù)形
14、式(最終被連接進(jìn)用戶代碼中)觸發(fā)系統(tǒng)調(diào)用,啟動實(shí)際I/O操作數(shù)據(jù)格式化,如printf實(shí)現(xiàn)獨(dú)立用戶進(jìn)程形式假脫機(jī)系統(tǒng)守護(hù)進(jìn)程假脫機(jī)目錄,I/O軟件層次及其功能,緩沖技術(shù),動因:改善CPU與外圍設(shè)備之間速度不匹配的矛盾協(xié)調(diào)邏輯記錄大小與物理記錄大小不一致的問題減少I/O操作對CPU執(zhí)行的中斷次數(shù)放寬對CPU中斷響應(yīng)時間的要求基本思想,當(dāng)一個進(jìn)程執(zhí)行寫操作輸出數(shù)據(jù)時,先向系統(tǒng)申請一個輸出緩沖區(qū),然后,將數(shù)據(jù)高速送到緩
15、沖區(qū)。若為順序?qū)懻埱?,則不斷把數(shù)據(jù)填到緩沖區(qū),直至裝滿。輸入緩沖區(qū)類似。,緩沖技術(shù),緩沖技術(shù)分類:單緩沖一種簡單的緩沖技術(shù),效率較低雙緩沖又稱緩沖交換。兩個緩沖區(qū)輪流工作。多緩沖緩沖共享,LRU,緩沖技術(shù),緩沖技術(shù)實(shí)例,驅(qū)動調(diào)度技術(shù),什么是驅(qū)動調(diào)度?系統(tǒng)運(yùn)行時,同時會有多個訪問輔助存儲器的進(jìn)程請求輸入/輸出操作,操作系統(tǒng)必須采用一種調(diào)度策略,使其能按最佳的次序執(zhí)行各訪問請求。調(diào)度效率指標(biāo):若干個輸入/輸出請求服務(wù)所需的
16、總時間越少,則系統(tǒng)效率越高,驅(qū)動調(diào)度技術(shù),影響存取訪問速度的因素:調(diào)度算法(策略),即如何對訪問請求進(jìn)行優(yōu)化排序信息在輔助存儲器上的排列方式存儲空間的分配方法,驅(qū)動調(diào)度技術(shù),存儲設(shè)備的物理結(jié)構(gòu)順序存取存儲結(jié)構(gòu)隨機(jī)(直接)存取存儲結(jié)構(gòu),驅(qū)動調(diào)度技術(shù),存儲設(shè)備的物理結(jié)構(gòu)順序存取存儲設(shè)備,嚴(yán)格依賴信息存放的物理位置進(jìn)行定位和讀寫的存儲設(shè)備,存取物理記錄所需時間受其存放位置影響。例如:磁帶機(jī),,始點(diǎn),塊1,間隙,塊2,間隙,間
17、隙,塊3,… …,末點(diǎn),,磁頭(正走、反走、正讀、反讀、正寫、反寫、倒帶、…),驅(qū)動調(diào)度技術(shù),存儲設(shè)備的物理結(jié)構(gòu)順序存取存儲設(shè)備——磁帶機(jī)的優(yōu)點(diǎn)與用途:存儲容量大、穩(wěn)定可靠、卷可裝卸和便于保存物理塊長的變化范圍較大。被廣泛用于存檔(備份)文件存儲設(shè)備,驅(qū)動調(diào)度技術(shù),存儲設(shè)備的物理結(jié)構(gòu)隨機(jī)(直接)存取存儲設(shè)備(磁盤),每個物理記錄有確定的位置和唯一地址,存取任何一個物理記錄所需時間幾乎不依賴于此信息存放的物理位置。,,,,,,,
18、,,,,,,,,,,移動臂,,盤片組,磁頭,柱面,磁道,磁盤物理結(jié)構(gòu),盤片的幾何結(jié)構(gòu)每磁道等扇區(qū)數(shù)每磁道等密度,磁盤的物理結(jié)構(gòu),扇區(qū)結(jié)構(gòu)(磁盤低級格式化結(jié)果)前導(dǎo)碼(Preamble)扇區(qū)開始位置識別柱面號、扇區(qū)號數(shù)據(jù)塊(Data)錯誤校驗(yàn)碼(ECC),磁盤的物理結(jié)構(gòu),壞扇區(qū)處理(磁道結(jié)構(gòu)),磁盤的物理結(jié)構(gòu),隨機(jī)(直接)存取存儲設(shè)備——磁盤的相關(guān)概念:磁道:在一個盤面上讀寫磁頭的軌跡。柱面:在磁頭位置下的所有盤片的磁道
19、組成的圓柱面扇區(qū)(塊):一個磁道又可劃分為一個或多個物理塊傳統(tǒng)模式(CHS模式)下訪問磁盤上的一個物理記錄,需要確定三個參數(shù):柱面號(10bits)、磁頭號(8bits)、扇區(qū)號(6bits)現(xiàn)代磁盤,支持LBA(邏輯塊尋址)尋址,CHS模式,最大磁盤容量,(2^6-1)*2^10*2^8=8064M,磁盤讀寫,BIOS Int 13回顧,調(diào)用此功能將從磁盤上把一個或更多的扇區(qū)內(nèi)容讀入內(nèi)存。(BIOS不能自動地從一條磁道末尾切換
20、到另一條磁道開始,因此用戶必須把跨多條磁道的讀操作分為若干條單磁道讀操作)。參數(shù):AH=02H 指明調(diào)用讀扇區(qū)功能。AL 置要讀的扇區(qū)數(shù)目(> 0 and < 磁道最大扇區(qū)號)DL 需要進(jìn)行讀操作的驅(qū)動器號(0開始編號)DH 磁頭號(0開始編號)CH 柱面號的低8位數(shù)(0開始編號)CL 低6位起始扇區(qū)號(1開始編號),位7-6表示柱面號的高2位ES:BX 讀出數(shù)據(jù)的緩沖區(qū)地址返回參數(shù):如果CF=1,AX中
21、存放出錯狀態(tài)。讀出后的數(shù)據(jù)在ES:BX區(qū)域依次排列。,磁盤實(shí)例,驅(qū)動調(diào)度技術(shù),旋轉(zhuǎn)型存儲設(shè)備(磁盤)的訪問優(yōu)化循環(huán)排序優(yōu)化分布交替地址,驅(qū)動調(diào)度技術(shù),旋轉(zhuǎn)型存儲設(shè)備(磁盤)的訪問優(yōu)化循環(huán)排序按照數(shù)據(jù)的分布對輸入/輸出請求進(jìn)行排序,提高處理的效率舉例假設(shè)每個磁道上保存4個記錄(塊),磁盤旋轉(zhuǎn)速度是20ms/轉(zhuǎn),如果收到如下請求序列:讀記錄4、讀記錄3、讀記錄2、讀記錄1,則如何安排輸入/輸出順序,到達(dá)理想的處理性能。按請
22、求次序讀取上述記錄,總的處理時間:(1/2+1/4+3*3/4) * 20 = 60 (ms)按讀取記錄1, 2, 3, 4的順序,則總的處理時間為:(1/2 + ¼ + 3* ¼) * 20 = 30 (ms) 如果知道當(dāng)前讀位置為記錄3,則按讀取記錄4,1,2,3順序,則總的處理時間為:(4 * ¼) * 20 = 20 (ms),,,,,,塊1,塊2,塊3,塊4,,,驅(qū)動調(diào)度技術(shù),旋轉(zhuǎn)型存儲設(shè)備
23、(磁盤)的訪問優(yōu)化優(yōu)化分布按照數(shù)據(jù)處理的規(guī)律,合理安排其磁盤上的分布,以提高處理的效率舉例假設(shè)每個磁道上劃分為10個塊,分別存放A~J十個邏輯記錄,磁盤旋轉(zhuǎn)速度是20ms/轉(zhuǎn)。如果處理程序讀出每個記錄后花4ms進(jìn)行處理,則如何安排邏輯記錄的存放位置,以達(dá)到理想的處理性能?,,,,,,,1,A,2,H,3,E,4,B,,2*2 = 4ms,磁盤訪問優(yōu)化實(shí)例-扇區(qū)間隔排列,也可通過增加磁盤控制器緩存,如整條磁道緩存來解決上述問題,磁
24、盤扇區(qū)讀出之后,需要進(jìn)行校驗(yàn),會消耗一定時間,驅(qū)動調(diào)度技術(shù),旋轉(zhuǎn)型存儲設(shè)備(磁盤)的訪問優(yōu)化交替地址通過數(shù)據(jù)的冗余存放來提高訪問的速度缺點(diǎn):消耗較多的存儲空間數(shù)據(jù)一致性問題決定其較適合于數(shù)據(jù)記錄總是讀出使用的方式,磁盤訪問優(yōu)化實(shí)例-柱面斜進(jìn),磁頭臂移動需要花費(fèi)時間,為保證連續(xù)的扇區(qū)被不間斷讀出,驅(qū)動調(diào)度技術(shù),旋轉(zhuǎn)型存儲設(shè)備(磁盤)的搜索定位對于移動臂磁盤設(shè)備,除了旋轉(zhuǎn)位置外,還有搜索定位的問題(尋道)常見的移動臂調(diào)度算法:
25、先來先服務(wù)電梯調(diào)度算法最短查找時間優(yōu)先算法掃描算法分步掃描算法循環(huán)掃描算法,最短時間優(yōu)先調(diào)度算法,當(dāng)前位置11號柱面新到來請求:1, 36, 16, 34, 9, 12,11-12-9-16-1-34-36, 共計(jì)移動61個柱面,電梯調(diào)度算法,假設(shè):當(dāng)前移動臂正向編號大的柱面方向移動11-12-16-34-36-9-1, 共移動60個柱面,Linux磁盤調(diào)度算法,Linux 2.4,電梯調(diào)度算法對相同或者相鄰磁盤扇區(qū)的
26、請求會合并考慮公平性,等待時間較長的請求先執(zhí)行缺陷:寫請求異步完成,讀請求同步完成距離當(dāng)前磁道較遠(yuǎn)的請求,會延遲很長時間Linux 2.6時限調(diào)度算法(試圖克服上述缺陷)增加獨(dú)立的讀、寫FIFO隊(duì)列,時限不同預(yù)期調(diào)度算法(考慮磁盤訪問局部性),綜合考慮磁道循環(huán)排序與移動臂,磁盤存在如下5個請求,當(dāng)前磁頭臂在1號柱面,試分析如何調(diào)度,使得總的花費(fèi)時間最少?,5,3,2,1,4,驅(qū)動調(diào)度技術(shù),獨(dú)立磁盤冗余陣列(RAID)基
27、本思路:用一組較小容量的、獨(dú)立的、可并行工作的磁盤驅(qū)動器組成陣列來代替單一的大容量磁盤,并加入冗余技術(shù),數(shù)據(jù)能夠以多種方式組織和分布存儲。優(yōu)點(diǎn):數(shù)據(jù)的分布存儲,提高了單個I/O請求的處理性能數(shù)據(jù)的冗余,提高了系統(tǒng)的可靠性,驅(qū)動調(diào)度技術(shù),獨(dú)立磁盤冗余陣列RAID0RAID1RAID2RAID3RAID4RAID5RAID6,驅(qū)動調(diào)度技術(shù),提高磁盤I/O速度的一些方法提前讀延遲寫虛擬盤,設(shè)備分配,設(shè)備按其使用特性
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京大學(xué)
- powerpointpresentation-南京大學(xué)
- 南京大學(xué)公共管理碩士mpa
- 南京大學(xué)拔尖計(jì)劃
- 南京大學(xué)學(xué)生獎學(xué)金
- 南京大學(xué)行政管理作業(yè)答案
- 性能測試-南京大學(xué)軟件學(xué)院
- rfidintroduction-南京大學(xué)軟件學(xué)院
- 南京大學(xué)扁平化部署
- 南京大學(xué)認(rèn)識地球習(xí)題答案
- 南京大學(xué)版聲學(xué)基礎(chǔ)答案
- 南京大學(xué)碩士論文模板
- 南京大學(xué)教育博士培養(yǎng)方案
- 南京大學(xué)申請博士學(xué)位
- python-南京大學(xué)軟件學(xué)院
- 南京大學(xué)碩士開題報告表格
- 廣播電視概論 南京大學(xué)
- 南京大學(xué)教育科學(xué)與管理系
- 南京大學(xué)差旅費(fèi)管理暫行辦法
- 南京大學(xué)產(chǎn)業(yè)人事管理暫行辦法
評論
0/150
提交評論