一、使用者層的i/o軟體
1.系統呼叫與庫函式
2.- spooling技術(假離線操作)
多道程式技術,專門利用程式模擬離線i/o的外圍機,完成裝置i/o操作。稱這種聯機情況下實現的同時外圍操作為spooling 技術。
3.spooling系統的組成
二、緩衝管理
1.緩衝管理
2.引入緩衝區的主要原因:
3.使用緩衝區的方式:
1)單緩衝
os在主存中為之分配乙個緩衝區。
cpu和外設輪流使用,一方處理完後等待對方處理。
2)雙緩衝
兩個緩衝區,cpu和外設不再針對一塊交替
輸入:資料送入第一緩衝區,裝滿後轉向第二緩衝區。
讀出:os從第一緩衝區中移出資料,送入使用者程序,再由cpu對資料進行計算。
兩個緩衝區,cpu和外設不再針對一塊交替
可能實現連續處理無需等待對方。前提是cpu和外設對一塊資料的處理速度相近。而如下圖情況cpu仍需等待慢速裝置。
4.迴圈緩衝
1)設定多塊緩衝區
用迴圈結構組織,只供兩個相關程序使用
順乙個方向放入或取出
2)迴圈緩衝的組成
多個緩衝區。
多個指標。
主要就是利用指標,操作上述不同型別緩衝區
乙個時段只能用於輸入或輸出,不能同時雙向通訊。
3)迴圈緩衝的問題:
不能同時雙向通訊
利用率不高
3)緩衝池(可雙向緩衝)
緩衝區是專用緩衝。(每個程序都要維護自己的乙個迴圈緩衝區),使用有剩餘時也不給其他程序使用,消耗大量記憶體空間。
系統將多個緩衝區形成乙個緩衝池。
池中緩衝區為系統中所有的程序共享使用(如unix系統在塊裝置管理中設定了乙個15個緩衝區組成的緩衝池)
組織形式:佇列及佇列指標
a.緩衝池的組成
對於既可輸入又可輸出的公用緩衝池,至少應含有下列三種型別的緩衝區:
空緩衝區;
裝滿輸入資料的緩衝區;
裝滿輸出資料的緩衝區;
為方便管理,將上述型別相同的緩衝區連成佇列
空緩衝區佇列(所有程序都可用)
輸入佇列(n個程序有各自的佇列)
輸出佇列(n個程序有各自的佇列)
*(佇列長度不固定,根據程序實際情況靈活變動,需要多少用多少)
b.緩衝區的工作方式
收容輸入:getbuf(emq),hin;輸入資料填入一空緩衝區;putbuf(inq,hin)
提取輸入: getbuf(inq),sin;從輸入緩衝佇列中取出一資料區的內容;putbuf(emq,sin)
收容輸出: getbuf(emq),hout;輸出資料填入一空緩衝區;putbuf(outq,hout)
提取輸出: getbuf(outq),sout;從輸出緩衝佇列中取一資料區的內容;putbuf(emq,sout)
三、磁碟儲存器的效能和排程
1.磁碟效能簡述
a.資料的組織和格式:碟片、面、磁軌、扇區
為方便處理,每條磁軌儲存容量相同,每個磁軌上的每個扇區相當於乙個盤塊。
b.磁碟型別
固定磁頭(每道一磁頭)
移動磁頭(每盤一磁頭)
c.訪問時間的計算
使每次磁頭移動時間最少。
不一定是最短平均柱面定位時間,但比fifo演算法有更好的效能。
對中間的磁軌有利,但可能會有程序處於飢餓狀態(i/o請求總不被執行)。
問題:總選擇最近的磁軌訪問,遠磁軌請求的程序會長時間得不到執行。
c.掃瞄演算法scan(磁碟電梯排程演算法)
規定磁頭移動方向:自里向外,再自外向裡移動。
後續的i/o磁軌請求,哪個在規定方向上距離最近,就先執行哪個。
問題:容易錯過與當前磁軌距離近,但方向不一致的磁軌。
d.迴圈掃瞄cscan:由里向外後,再由裡向外。
問題:「磁臂粘著」——磁頭靜止在乙個磁軌上,導致其它程序無法及時進行磁碟i/o。
e.n-step-scan
將磁碟請求佇列分成長為n 的子佇列
按fcfs選擇子佇列。佇列內又按scan演算法。
3 3 5 2 |3 3 3 2| 3 3 2 3| 3 4 4 5| 2 3 ….2 3
處理子佇列過程中產生的新i/o再依次排隊列。
n=1時,就是fcfs,n很大時就是scan。
3.對磁碟的訪問總是由缺頁引起的
(1)緩衝技術中的緩衝池在:主存中。
(2)為了實現cpu與外設的並行工作,系統引入了:中斷和通道硬體機制。
(3)引起中斷發生的事件稱為:中斷源。
(4)裝置分配中的安全性是指:裝置分配應保證不會引起程序死鎖。
裝置管理 裝置管理概述
i o裝置是作業系統龐大複雜的主要原因之一,不同外部裝置之間,速度差異很大,控制介面複雜,資料表示各異,與其它功能聯絡緊密,特別是檔案系統。在這種情況下,難以針對裝置做統一的規劃與設計。對i o裝置的直接控制,是通過特定的裝置控制器進行的,主機只需要對控制器進行操作即可,無需理會具體裝置的引數細節。...
裸裝置管理
裸裝置 raw device,就是不被作業系統直接管理的裝置。這種裝置少了作業系統一層,i o效率更高。資料庫一般會用到。常與lvm聯用。建立裸裝置 mkdir raw mknod dev rawctl c 162 0 mknod dev raw raw1 c 162 1 mknod dev raw...
linux裝置管理
linux 的裝置管理 6.1 裝置管理概述 linux 裝置的分類 linux 使用套介面 socket 以檔案i o 方式提供了對網路資料的訪問。裝置驅動程式 三 裝置的識別 而多個scsi 硬碟及其各個分割槽分別賦予次裝置號1 2 3 root localhost ls dev sda l b...