[OS复习]设备管理2
生活随笔
收集整理的這篇文章主要介紹了
[OS复习]设备管理2
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.I/O緩沖技術(shù)?
1.1緩沖技術(shù)的引入
緩解處理機(jī)與設(shè)備間速度不匹配的矛盾;實(shí)現(xiàn)設(shè)備與處理機(jī)一定程度的并行操作;減少設(shè)備的中斷頻率,放寬對中斷響應(yīng)時(shí)間的限制。1.2提前讀與延后寫
指用戶進(jìn)程從 I/O緩沖區(qū)中取走前一個(gè)數(shù)據(jù)以后,立即發(fā)出對下一個(gè)數(shù)據(jù)的輸入請求。操作系統(tǒng)將在適當(dāng)?shù)臅r(shí)候響應(yīng)該請求以便把用戶進(jìn)程需要的下一個(gè)數(shù)據(jù)從用戶進(jìn)程指定的輸入設(shè)備讀入到I/O 緩沖區(qū)中。顯然,用戶進(jìn)程加工前一個(gè)數(shù)據(jù)的工作與操作系統(tǒng)輸入下一個(gè)數(shù)據(jù)的工作可以同時(shí)進(jìn)行。延后寫是指,當(dāng)用戶進(jìn)程請求輸出數(shù)據(jù)時(shí),操作系統(tǒng)將很快把用戶進(jìn)程請求輸出的數(shù)據(jù)從用戶進(jìn)程的工作區(qū)中取走并將其暫時(shí)存放在I/O緩沖區(qū)中。直到用戶進(jìn)程指定的輸出設(shè)備空閑時(shí), 操作系統(tǒng)才把暫時(shí)存放在I/O緩沖區(qū)中的用戶進(jìn)程的輸出數(shù)據(jù)寫入用戶進(jìn)程指定的輸出設(shè)備上。顯然,用戶進(jìn)程生成下一個(gè)輸出數(shù)據(jù)的工作與操作系統(tǒng)輸出前一個(gè)輸出數(shù)據(jù)的工作可以同時(shí)進(jìn)行。
1.3硬件緩沖和軟件緩沖
硬件緩沖區(qū)配置在設(shè)備中,具有專門的用途。對處理機(jī)透明,不需要處理機(jī)的直接管理,不會影響系統(tǒng)性能。軟件實(shí)現(xiàn)的緩沖區(qū)是內(nèi)存空間的一部分。其目的是為了彌補(bǔ)硬件緩沖區(qū)的不足。因?yàn)椴⒎撬型庠O(shè)都擁有,或者足夠擁有硬件緩沖區(qū)。操作系統(tǒng)中介紹的緩沖區(qū)都是指軟件緩沖區(qū)。1.4緩沖區(qū)的組織形式
單緩沖:簡單,僅在內(nèi)存中為進(jìn)程對某個(gè)設(shè)備的I/O訪問分配一個(gè)緩沖區(qū),如圖:
假定,一塊數(shù)據(jù)從外部設(shè)備輸入到內(nèi)存所花費(fèi)的時(shí)間為T,在內(nèi)存中移動(dòng)所花費(fèi)的時(shí)間為M,被用戶進(jìn)程加工處理所花費(fèi)的時(shí)間為C,那么在沒有使用I/O緩沖區(qū)的情況下,平均每塊數(shù)據(jù)的處理時(shí)間近似為:T+C。在使用單I/O緩沖區(qū)的情況下,平均每塊數(shù)據(jù)的處理時(shí)間近似為:max(T,C)+M
相對于沒有I/O緩沖區(qū)的情形, 單I/O緩沖區(qū)能提高用戶進(jìn)程的運(yùn)行效率。 如果用戶進(jìn)程在對有關(guān)數(shù)據(jù)進(jìn)行加工處理時(shí)不釋放I/O緩沖區(qū), 那么用戶進(jìn)程的性能并不能得到改善。如果T遠(yuǎn)遠(yuǎn)大于C,即外部設(shè)備的I/O速度比用戶進(jìn)程的計(jì)算速度慢得多,那么,單I/O緩沖區(qū)不會顯著改善用戶進(jìn)程的性能。
雙緩沖:
增加一個(gè)緩沖區(qū),兩個(gè)緩沖區(qū)可以交替使用。當(dāng)數(shù)據(jù)從緩沖區(qū)復(fù)制到用戶進(jìn)程空間時(shí),輸入設(shè)備不必等待,可立即開始向另一個(gè)緩沖區(qū)輸入數(shù)據(jù)。因此,增加了一個(gè)緩沖區(qū)后,前述的平均工作時(shí)間可近似為:max(T,C)。?另外,若用戶進(jìn)程陣發(fā)性I/O的數(shù)據(jù)超過一個(gè)緩沖區(qū)而不滿兩個(gè)緩沖區(qū),雙緩沖使進(jìn)程不會在I/O數(shù)據(jù)期間被阻塞。
循環(huán)緩沖 :
當(dāng)用戶進(jìn)程處理數(shù)據(jù)的速度較快、外部設(shè)備處理數(shù)據(jù)的速度較慢,或者用戶進(jìn)程陣發(fā)性輸入/輸出的數(shù)據(jù)較多時(shí),必須考慮增加緩沖區(qū)的數(shù)量以改善系統(tǒng)性能,這就是多緩沖區(qū)方式。多個(gè)I/O緩沖區(qū)常常被組織成一個(gè)環(huán)形隊(duì)列,故,稱為循環(huán)緩沖。實(shí)質(zhì)上,雙緩沖可以看作是循環(huán)緩沖的一個(gè)特例。
緩沖池 :
上述三種緩沖區(qū)的組織形式僅適用于某種特定的I/O進(jìn)程和計(jì)算進(jìn)程,屬于專用緩沖。當(dāng)系統(tǒng)中的設(shè)備很多時(shí),將會有許多這樣的循環(huán)緩沖區(qū),消耗大量的內(nèi)存空間,而且其利用率也不高。為了提高緩沖區(qū)的利用率,可以采用公共緩沖池技術(shù),其中的緩沖區(qū)可為多個(gè)設(shè)備和進(jìn)程服務(wù)。 兩種緩沖池:分別用于塊型設(shè)備和字符型設(shè)備。用于塊型設(shè)備的緩沖池:緩沖區(qū)較大,其長度通常與外部設(shè)備物理塊的長度相同;用于字符型設(shè)備的緩沖池:緩沖區(qū)較小,其長度通常為8個(gè)字節(jié)、16個(gè)字節(jié)等。若單個(gè)緩沖區(qū)的容量太大會造成資源浪費(fèi),而太小的緩沖區(qū)則會增加系統(tǒng)管理開銷。緩沖池中的緩沖區(qū)通常組織成鏈表結(jié)構(gòu)。需要緩沖區(qū)時(shí),從鏈表中申請一個(gè)或多個(gè)緩沖區(qū)。使用完畢時(shí),釋放的緩沖區(qū)將被鏈接到鏈表中。緩沖區(qū)和緩沖池都屬于操作系統(tǒng)空間,用戶進(jìn)程不能直接對緩沖區(qū)中的數(shù)據(jù)進(jìn)行操作:1.只能通過系統(tǒng)調(diào)用間接地使用;2.讓操作系統(tǒng)將緩沖區(qū)中的數(shù)據(jù)復(fù)制到用戶進(jìn)程空間,或者相反。?
2.虛擬設(shè)備
2.1虛擬設(shè)備的引入
獨(dú)占型設(shè)備的速度一般較慢,進(jìn)程常需要長時(shí)間等待I/O傳輸完成,影響進(jìn)程的推進(jìn)速度;進(jìn)程在占有設(shè)備期間不一定一直使用此設(shè)備,而其他申請?jiān)撛O(shè)備的進(jìn)程只能阻塞等待,降低了設(shè)備的利用率,影響其他進(jìn)程的推進(jìn)速度。引入虛擬設(shè)備技術(shù),能解決獨(dú)占設(shè)備利用率不高的問題,以及解決進(jìn)程推進(jìn)速度的問題。2.2虛擬設(shè)備技術(shù)的實(shí)現(xiàn)
虛擬設(shè)備技術(shù)類似緩沖區(qū)技術(shù),可以認(rèn)為是為設(shè)備提供了多個(gè)更大的、甚至在實(shí)際工作中是無限長度的緩沖區(qū),進(jìn)一步提高系統(tǒng)效率。虛擬設(shè)備技術(shù)的實(shí)現(xiàn):在獨(dú)占型設(shè)備與進(jìn)程之間加入一個(gè)共享型設(shè)備作為過渡,如圖:共享型設(shè)備的某一區(qū)域是由若干個(gè)設(shè)備塊構(gòu)成的,對進(jìn)程而言相當(dāng)于真實(shí)的設(shè)備。由于共享型設(shè)備較獨(dú)占型設(shè)備的速度較快。所以,進(jìn)程I/O所需的時(shí)間較短,提高了進(jìn)程的推進(jìn)速度。又由于共享型設(shè)備的存儲容量很大,可提供多個(gè)這樣的區(qū)域,因而虛擬設(shè)備的數(shù)量多,一般可為每個(gè)需要使用設(shè)備的進(jìn)程提供一個(gè)。這些進(jìn)程不用排隊(duì)等待,他們的推進(jìn)速度也就不受任何影響。這樣,多個(gè)進(jìn)程可以同時(shí)使用同一獨(dú)占型設(shè)備,而每個(gè)進(jìn)程對應(yīng)一個(gè)虛擬設(shè)備,提高了設(shè)備利用率。?
2.3輸入型虛擬設(shè)備的實(shí)現(xiàn)
對于輸入型虛擬設(shè)備,數(shù)據(jù)的流向:?獨(dú)占型設(shè)備->共享型設(shè)備 ->進(jìn)程空間/內(nèi)存。假定用于輸入的獨(dú)占型設(shè)備是讀卡機(jī),用于實(shí)現(xiàn)虛擬設(shè)備的共享型設(shè)備是磁盤,則對于進(jìn)程所發(fā)出的資源申請命令、使用命令及釋放命令,操作系統(tǒng)需要完成的工作如下:
①申請分配一臺虛擬設(shè)備(磁盤區(qū)域),分配一臺實(shí)設(shè)備(一臺讀卡機(jī)),將信息由實(shí)設(shè)備(讀卡機(jī))連續(xù)地傳輸?shù)教摂M設(shè)備(磁盤區(qū)域),釋放實(shí)設(shè)備(讀卡機(jī));
②使用將數(shù)據(jù)從虛擬設(shè)備(磁盤區(qū)域)傳輸?shù)竭M(jìn)程空間;
③釋放回收虛擬設(shè)備(磁盤區(qū)域)。
2.4輸出型虛擬設(shè)備的實(shí)現(xiàn)
對于輸出型虛擬設(shè)備來說,數(shù)據(jù)的流向:內(nèi)存->共享型設(shè)備->獨(dú)占型設(shè)備假定用于輸出的獨(dú)占型設(shè)備是打印機(jī),用于實(shí)現(xiàn)虛擬設(shè)備的共享型設(shè)備是磁盤,則對于進(jìn)程所發(fā)出的資源申請命令、使用命令及釋放命令,操作系統(tǒng)需要完成的工作如下:
①申請 ?分配一臺虛擬設(shè)備(磁盤區(qū)域);
②使用 ?將數(shù)據(jù)由進(jìn)程空間傳送到虛擬設(shè)備(磁盤區(qū)域);
③釋放 ?申請一臺實(shí)設(shè)備(一臺打印機(jī)),將數(shù)據(jù)由虛擬設(shè)備(磁盤區(qū)域)輸出到實(shí)設(shè)備(打印機(jī)),回收實(shí)設(shè)備(打印機(jī))。
總結(jié)
以上是生活随笔為你收集整理的[OS复习]设备管理2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [OS复习]设备管理1
- 下一篇: FEIM Studios 团队欢迎您加入