[OS复习]设备管理2
生活随笔
收集整理的這篇文章主要介紹了
[OS复习]设备管理2
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.I/O緩沖技術?
1.1緩沖技術的引入
緩解處理機與設備間速度不匹配的矛盾;實現設備與處理機一定程度的并行操作;減少設備的中斷頻率,放寬對中斷響應時間的限制。1.2提前讀與延后寫
指用戶進程從 I/O緩沖區中取走前一個數據以后,立即發出對下一個數據的輸入請求。操作系統將在適當的時候響應該請求以便把用戶進程需要的下一個數據從用戶進程指定的輸入設備讀入到I/O 緩沖區中。顯然,用戶進程加工前一個數據的工作與操作系統輸入下一個數據的工作可以同時進行。延后寫是指,當用戶進程請求輸出數據時,操作系統將很快把用戶進程請求輸出的數據從用戶進程的工作區中取走并將其暫時存放在I/O緩沖區中。直到用戶進程指定的輸出設備空閑時, 操作系統才把暫時存放在I/O緩沖區中的用戶進程的輸出數據寫入用戶進程指定的輸出設備上。顯然,用戶進程生成下一個輸出數據的工作與操作系統輸出前一個輸出數據的工作可以同時進行。
1.3硬件緩沖和軟件緩沖
硬件緩沖區配置在設備中,具有專門的用途。對處理機透明,不需要處理機的直接管理,不會影響系統性能。軟件實現的緩沖區是內存空間的一部分。其目的是為了彌補硬件緩沖區的不足。因為并非所有外設都擁有,或者足夠擁有硬件緩沖區。操作系統中介紹的緩沖區都是指軟件緩沖區。1.4緩沖區的組織形式
單緩沖:簡單,僅在內存中為進程對某個設備的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.讓操作系統將緩沖區中的數據復制到用戶進程空間,或者相反。?
2.虛擬設備
2.1虛擬設備的引入
獨占型設備的速度一般較慢,進程常需要長時間等待I/O傳輸完成,影響進程的推進速度;進程在占有設備期間不一定一直使用此設備,而其他申請該設備的進程只能阻塞等待,降低了設備的利用率,影響其他進程的推進速度。引入虛擬設備技術,能解決獨占設備利用率不高的問題,以及解決進程推進速度的問題。2.2虛擬設備技術的實現
虛擬設備技術類似緩沖區技術,可以認為是為設備提供了多個更大的、甚至在實際工作中是無限長度的緩沖區,進一步提高系統效率。虛擬設備技術的實現:在獨占型設備與進程之間加入一個共享型設備作為過渡,如圖:共享型設備的某一區域是由若干個設備塊構成的,對進程而言相當于真實的設備。由于共享型設備較獨占型設備的速度較快。所以,進程I/O所需的時間較短,提高了進程的推進速度。又由于共享型設備的存儲容量很大,可提供多個這樣的區域,因而虛擬設備的數量多,一般可為每個需要使用設備的進程提供一個。這些進程不用排隊等待,他們的推進速度也就不受任何影響。這樣,多個進程可以同時使用同一獨占型設備,而每個進程對應一個虛擬設備,提高了設備利用率。?
2.3輸入型虛擬設備的實現
對于輸入型虛擬設備,數據的流向:?獨占型設備->共享型設備 ->進程空間/內存。假定用于輸入的獨占型設備是讀卡機,用于實現虛擬設備的共享型設備是磁盤,則對于進程所發出的資源申請命令、使用命令及釋放命令,操作系統需要完成的工作如下:
①申請分配一臺虛擬設備(磁盤區域),分配一臺實設備(一臺讀卡機),將信息由實設備(讀卡機)連續地傳輸到虛擬設備(磁盤區域),釋放實設備(讀卡機);
②使用將數據從虛擬設備(磁盤區域)傳輸到進程空間;
③釋放回收虛擬設備(磁盤區域)。
2.4輸出型虛擬設備的實現
對于輸出型虛擬設備來說,數據的流向:內存->共享型設備->獨占型設備假定用于輸出的獨占型設備是打印機,用于實現虛擬設備的共享型設備是磁盤,則對于進程所發出的資源申請命令、使用命令及釋放命令,操作系統需要完成的工作如下:
①申請 ?分配一臺虛擬設備(磁盤區域);
②使用 ?將數據由進程空間傳送到虛擬設備(磁盤區域);
③釋放 ?申請一臺實設備(一臺打印機),將數據由虛擬設備(磁盤區域)輸出到實設備(打印機),回收實設備(打印機)。
總結
以上是生活随笔為你收集整理的[OS复习]设备管理2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [OS复习]设备管理1
- 下一篇: FEIM Studios 团队欢迎您加入