6 2裝置管理 使用者層IO軟體 緩衝 磁碟

2021-09-02 01:39:28 字數 2307 閱讀 3194

一、使用者層的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...