OS複習 裝置管理2

2021-07-16 18:52:14 字數 2960 閱讀 5021

緩解處理機與裝置間速度不匹配的矛盾;實現裝置與處理機一定程度的並行操作;減少裝置的中斷頻率,放寬對中斷響應時間的限制。

指使用者程序從 i/o緩衝區中取走前乙個資料以後,立即發出對下乙個資料的輸入請求。作業系統將在適當的時候響應該請求以便把使用者程序需要的下乙個資料從使用者程序指定的輸入裝置讀入到i/o 緩衝區中。顯然,使用者程序加工前乙個資料的工作與作業系統輸入下乙個資料的工作可以同時進行。

延後寫是指,當使用者程序請求輸出資料時,作業系統將很快把使用者程序請求輸出的資料從使用者程序的工作區中取走並將其暫時存放在i/o緩衝區中。直到使用者程序指定的輸出裝置空閒時, 作業系統才把暫時存放在i/o緩衝區中的使用者程序的輸出資料寫入使用者程序指定的輸出裝置上。顯然,使用者程序生成下乙個輸出資料的工作與作業系統輸出前乙個輸出資料的工作可以同時進行。

硬體緩衝區配置在裝置中,具有專門的用途。對處理機透明,不需要處理機的直接管理,不會影響系統效能。軟體實現的緩衝區是記憶體空間的一部分。其目的是為了彌補硬體緩衝區的不足。因為並非所有外設都擁有,或者足夠擁有硬體緩衝區。作業系統中介紹的緩衝區都是指軟體緩衝區。

單緩衝:

簡單,僅在記憶體中為程序對某個裝置的i/o訪問分配乙個緩衝區,如圖:

假定,一塊資料從外部裝置輸入到記憶體所花費的時間為t,在記憶體中移動所花費的時間為m,被使用者程序加工處理所花費的時間為c,那麼在沒有使用i/o緩衝區的情況下,平均每塊資料的處理時間近似為:t+c。在使用單i/o緩衝區的情況下,平均每塊資料的處理時間近似為:max(t,c)+m

相對於沒有i/o緩衝區的情形, 單i/o緩衝區能提高使用者程序的執行效率。

如果使用者程序在對有關資料進行加工處理時不釋放i/o緩衝區, 那麼使用者程序的效能並不能得到改善。如果t遠遠大於c,即外部裝置的i/o速度比使用者程序的計算速度慢得多,那麼,單i/o緩衝區不會顯著改善使用者程序的效能。

雙緩衝:

增加乙個緩衝區,兩個緩衝區可以交替使用。當資料從緩衝區複製到使用者程序空間時,輸入裝置不必等待,可立即開始向另乙個緩衝區輸入資料。因此,增加了乙個緩衝區後,前述的平均工作時間可近似為:max(t,c)。 另外,若使用者程序陣發性i/o的資料超過乙個緩衝區而不滿兩個緩衝區,雙緩衝使程序不會在i/o資料期間被阻塞。

迴圈緩衝 :

當使用者程序處理資料的速度較快、外部裝置處理資料的速度較慢,或者使用者程序陣發性輸入/輸出的資料較多時,必須考慮增加緩衝區的數量以改善系統效能,這就是多緩衝區方式。多個i/o緩衝區常常被組織成乙個環形佇列,故,稱為迴圈緩衝。實質上,雙緩衝可以看作是迴圈緩衝的乙個特例。

緩衝池

上述三種緩衝區的組織形式僅適用於某種特定的i/o程序和計算程序,屬於專用緩衝。當系統中的裝置很多時,將會有許多這樣的迴圈緩衝區,消耗大量的記憶體空間,而且其利用率也不高。為了提高緩衝區的利用率,可以採用公共緩衝池技術,其中的緩衝區可為多個裝置和程序服務。

兩種緩衝池:分別用於塊型裝置和字元型裝置。用於塊型裝置的緩衝池:緩衝區較大,其長度通常與外部裝置物理塊的長度相同;用於字元型裝置的緩衝池:緩衝區較小,其長度通常為8個位元組、16個位元組等。若單個緩衝區的容量太大會造成資源浪費,而太小的緩衝區則會增加系統管理開銷。緩衝池中的緩衝區通常組織成煉表結構。需要緩衝區時,從鍊錶中申請乙個或多個緩衝區。使用完畢時,釋放的緩衝區將被鏈結到鍊錶中。緩衝區和緩衝池都屬於作業系統空間,使用者程序不能直接對緩衝區中的資料進行操作:1.只能通過系統呼叫間接地使用;2.讓作業系統將緩衝區中的資料複製到使用者程序空間,或者相反。 

獨佔型裝置的速度一般較慢,程序常需要長時間等待i/o傳輸完成,影響程序的推進速度;程序在占有裝置期間不一定一直使用此裝置,而其他申請該裝置的程序只能阻塞等待,降低了裝置的利用率,影響其他程序的推進速度。引入虛擬裝置技術,能解決獨佔裝置利用率不高的問題,以及解決程序推進速度的問題。

虛擬裝置技術類似緩衝區技術,可以認為是為裝置提供了多個更大的、甚至在實際工作中是無限長度的緩衝區,進一步提高系統效率。虛擬裝置技術的實現:在獨佔型裝置與程序之間加入乙個共享型裝置作為過渡,如圖:

共享型裝置的某一區域是由若干個裝置塊構成的,對程序而言相當於真實的裝置。由於共享型裝置較獨佔型裝置的速度較快。所以,程序i/o所需的時間較短,提高了程序的推進速度。又由於共享型裝置的儲存容量很大,可提供多個這樣的區域,因而虛擬裝置的數量多,一般可為每個需要使用裝置的程序提供乙個。這些程序不用排隊等待,他們的推進速度也就不受任何影響。

這樣,多個程序可以同時使用同一獨佔型裝置,而每個程序對應乙個虛擬裝置,提高了裝置利用率。 

對於輸入型虛擬裝置,資料的流向: 獨佔型裝置->共享型裝置 ->程序空間/記憶體。

假定用於輸入的獨佔型裝置是讀卡機,用於實現虛擬裝置的共享型裝置是磁碟,則對於程序所發出的資源申請命令、使用命令及釋放命令,作業系統需要完成的工作如下:

①申請分配一台虛擬裝置(磁碟區域),分配一台實裝置(一台讀卡機),將資訊由實裝置(讀卡機)連續地傳輸到虛擬裝置(磁碟區域),釋放實裝置(讀卡機);

②使用將資料從虛擬裝置(磁碟區域)傳輸到程序空間;

③釋放**虛擬裝置(磁碟區域)。

對於輸出型虛擬裝置來說,資料的流向:記憶體->共享型裝置->獨佔型裝置

假定用於輸出的獨佔型裝置是印表機,用於實現虛擬裝置的共享型裝置是磁碟,則對於程序所發出的資源申請命令、使用命令及釋放命令,作業系統需要完成的工作如下:

①申請  分配一台虛擬裝置(磁碟區域);

②使用  將資料由程序空間傳送到虛擬裝置(磁碟區域);

③釋放  申請一台實裝置(一台印表機),將資料由虛擬裝置(磁碟區域)輸出到實裝置(印表機),**實裝置(印表機)。

裝置管理 裝置管理概述

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...