某系统有6台输出设备 有多个进程均需要使用2台_系统设计硬核知识(4)——操作系统的设备管理...
在計(jì)算機(jī)系統(tǒng)中,除了處理器和內(nèi)存之外,其他的大部分硬設(shè)備稱(chēng)為外部設(shè)備。它包括輸入/輸出設(shè)備,輔存設(shè)備及終端設(shè)備等。這些設(shè)備種類(lèi)繁多,特性各異,操作方式的差異很大,從而使操作系統(tǒng)的設(shè)備管理變得十分繁雜。
設(shè)備管理程序一般要提供下述功能:
1 數(shù)據(jù)傳輸控制方式
設(shè)備管理的主要任務(wù)之一是控制設(shè)備和內(nèi)存或 CPU 之間的數(shù)據(jù)傳送。
選擇和衡量控制方式的原則如下: (1)數(shù)據(jù)傳送速度足夠高,能滿(mǎn)足用戶(hù)的需要但又不丟失數(shù)據(jù)。 (2)系統(tǒng)開(kāi)銷(xiāo)小,所需的處理控制程序少。 (3)能充分發(fā)揮硬件資源的能力,使得 I/O 設(shè)備盡量處于使用狀態(tài)中,而 CPU 等待時(shí)間少。
外圍設(shè)備和內(nèi)存之間常用的數(shù)據(jù)傳送控制方式:
(1)程序控制方式。處理器啟動(dòng)數(shù)據(jù)傳輸,然后等設(shè)備完成。此方式不能實(shí)現(xiàn)并發(fā)。 (2)中斷方式。中斷方式的數(shù)據(jù)傳輸過(guò)程是這樣的,進(jìn)程啟動(dòng)數(shù)據(jù)傳輸(如讀)后,該進(jìn)程放棄處理器,當(dāng)數(shù)據(jù)傳輸完成,設(shè)備控制器產(chǎn)生中斷請(qǐng)求,中斷處理程序?qū)?shù)據(jù)傳輸工作處理之后,讓相應(yīng)進(jìn)程成為就緒狀態(tài)。以后,該進(jìn)程就可以得到所需要的數(shù)據(jù)。 (3)直接存儲(chǔ)訪(fǎng)問(wèn)(Direct Memory Access, DMA)方式。指外部設(shè)備和內(nèi)存之間開(kāi)辟直接的數(shù)據(jù)交換通路。除了控制狀態(tài)寄存器和數(shù)據(jù)緩沖寄存器外, DMA 控制器中還包括傳輸字節(jié)計(jì)數(shù)器、內(nèi)存地址寄存器等。 DMA 方式采用竊取(或挪用)處理器的工作周期和控制總線(xiàn)而實(shí)現(xiàn)輔助存儲(chǔ)器和內(nèi)存之間的數(shù)據(jù)交換。有的 DMA 方式也采用總線(xiàn)浮起方式傳輸 大批量數(shù)據(jù)。 (4)通道方式。通道又稱(chēng)為輸入/輸出處理器(Input/Output Processor, IOP),可以獨(dú)立完成系統(tǒng)交付的輸入/輸出任務(wù),通過(guò)執(zhí)行自身的輸入/輸出專(zhuān)用程序(稱(chēng)通道程序)進(jìn)行內(nèi)存和外設(shè)之間的數(shù)據(jù)傳輸。主要有 3 種通道:字節(jié)多路通道、選擇通道和成組多路通道。 (5)輸入輸出處理機(jī)。輸入輸出處理機(jī)也稱(chēng)為外圍處理機(jī),它是一個(gè)專(zhuān)用處理機(jī),也可以是一個(gè)通用的處理機(jī),具有豐富的指令系統(tǒng)和完善的中斷系統(tǒng)。專(zhuān)用于大型 、 高效的計(jì)算機(jī)系統(tǒng)處理外圍設(shè)備的輸入輸出,并利用共享存儲(chǔ)器或其他共享手段與主機(jī)交換信息。從而使大型 、 高效的計(jì)算機(jī)系統(tǒng)更加高效地工作。與通道相比,輸入輸出處理機(jī)具有比較豐富的指令系統(tǒng),結(jié)構(gòu)接近于一般的處理機(jī),有自己的局部存儲(chǔ)器。
2 磁盤(pán)調(diào)度算法
訪(fǎng)問(wèn)磁盤(pán)的時(shí)間由3部分構(gòu)成,它們是尋道 ( 査找數(shù)據(jù)所在的磁道 ) 時(shí)間 、 等待 ( 旋轉(zhuǎn)等待扇區(qū) ) 時(shí)間和數(shù)據(jù)傳輸時(shí)間,其中尋道時(shí)間 ( 査找時(shí)間 ) 是決定因素。
( 1 ) FCFS (first come first service)算法 : 有些文獻(xiàn)稱(chēng)為 FIFO 算法 。FCFS 是一種最簡(jiǎn)單的磁盤(pán)調(diào)度算法,按先來(lái)先服務(wù)的次序,未作優(yōu)化。這種算法的優(yōu)點(diǎn)是公平 、 簡(jiǎn)單,且每個(gè)進(jìn)程的請(qǐng)求都能依次得到處理,不會(huì)出現(xiàn)某一進(jìn)程的請(qǐng)求長(zhǎng)期得不到滿(mǎn)足的情況。此算法未對(duì)尋道進(jìn)行優(yōu)化,致使平均尋道時(shí)間可能較長(zhǎng)。
( 2 ) SSTF ( ShortestSeekTimeFirst,最短尋道時(shí)間優(yōu)先 ) 算法 : 選擇這樣的進(jìn)程,其要求訪(fǎng)問(wèn)的磁道距當(dāng)前磁頭所在的磁道距離最近,以使每次尋道的時(shí)間最短 。FCFS 會(huì)引起讀寫(xiě)頭在盤(pán)面上的大范圍移動(dòng), SSTF 査找距離磁頭最短 ( 也就是查找時(shí)間最短 ) 的請(qǐng)求作為下一次服務(wù)的對(duì)象。 SSTF 査找模式有高度局部化的傾向,會(huì)推遲一些請(qǐng)求的服務(wù),甚至引起無(wú)限拖延 ( 這種現(xiàn)象稱(chēng)為 “ 饑餓” )
( 3 ) SCAN ( 電梯 ) 算法 : 不僅考慮到欲訪(fǎng)問(wèn)的磁道與當(dāng)前磁道的距離,而且優(yōu)先考慮的是磁頭的當(dāng)前移動(dòng)方向,是在磁頭前進(jìn)方向上的最短查找時(shí)間優(yōu)先算法,它排除了磁頭在盤(pán)面局部位置上的往復(fù)移動(dòng) 。SCAN 算法在很大程度上消除了 SSTF 算法的不公平性,但仍有利于對(duì)中間磁道的請(qǐng)求 。SCAN 算法的缺陷是當(dāng)磁頭剛由里向外移動(dòng)過(guò)某一磁道時(shí),恰有一進(jìn)程請(qǐng)求訪(fǎng)向此磁道,這時(shí)進(jìn)程必須等待,待磁頭由里向外,然后再?gòu)耐庀蚶飹呙柰晁幸L(fǎng)問(wèn)的磁道后,才處理該進(jìn)程的請(qǐng)求,致使該進(jìn)程的請(qǐng)求被嚴(yán)重地推遲。
(4 ) N - SCAN ( N 步 SCAN ) 算法 : 這是對(duì) SCAN 算法的改良,磁頭的移動(dòng)與 SCAN 算法是一樣的,不同的是掃描期間只對(duì)那些在掃描開(kāi)始前已等待服務(wù)的請(qǐng)求提供服務(wù)。在服務(wù)期間,新到達(dá)的請(qǐng)求即使在磁頭前進(jìn)方向上也得不到服務(wù),直到下一個(gè)新掃描周期開(kāi)始。 N - SCAN 算法的實(shí)質(zhì)是把 FCFS 和 SCAN 的優(yōu)點(diǎn)結(jié)合起來(lái),以便取得較好的性能。如果新到達(dá)的請(qǐng)求按優(yōu)化次序排列,則下一個(gè)掃描周期必然花費(fèi)最少的磁頭移動(dòng)時(shí)間。
(5 ) C- SCAN (循環(huán)掃描 ) 算法 : 這是對(duì) SCAN 算法的另一種改良,是單向服務(wù)的 N 步 SCAN 算法,C- SCAN 算法規(guī)定磁頭單向移動(dòng)。C- SCAN 算法徹底消除了對(duì)兩端磁道請(qǐng)求的不公平。
3 虛設(shè)備與 SPOOLING 技術(shù)
采用假脫機(jī)技術(shù),可以將低速的獨(dú)占設(shè)備改造成一種可共享的設(shè)備,而且一臺(tái)物理設(shè)備可以對(duì)應(yīng)若干臺(tái)虛擬的同類(lèi)設(shè)備。假脫機(jī)( Simultaneous Peripheral Operation On Line,SPOOLING)的意思是外部設(shè)備同時(shí)聯(lián)機(jī)操作,又稱(chēng)為假脫機(jī)輸入/輸出操作,采用一組程序或進(jìn)程模擬一臺(tái)輸入/輸出處理器。
SPOOLING 系統(tǒng)的組成如圖 1 所示。該技術(shù)利用了專(zhuān)門(mén)的外圍控制機(jī)將低速 I/O 設(shè)備上的數(shù)據(jù)傳送到高速設(shè)備上,或者相反。但是當(dāng)引入多道程序后,完全可以利用其中的一道程序來(lái)模擬脫機(jī)輸入時(shí)的外圍控制機(jī)的功能,把低速的 I/O 設(shè)備上的數(shù)據(jù)傳送到高速磁盤(pán)上;再利用另一道程序來(lái)模擬脫機(jī)輸出時(shí)外圍控制機(jī)的功能,把高速磁盤(pán)上的數(shù)據(jù)傳送到低速的 I/O 設(shè)備上。這樣便可以在主機(jī)的控制下實(shí)現(xiàn)脫機(jī)輸入、輸出的功能。此時(shí)的外圍操作與 CPU 對(duì)數(shù)據(jù)的處理同時(shí)進(jìn)行。
從圖 1 可以看出, Spooling 系統(tǒng)主要包括以下3個(gè)部分 :
采用假脫機(jī)技術(shù),可以將低速的獨(dú)占設(shè)備改造成一種可共享的設(shè)備,而且一臺(tái)物理設(shè)備可以對(duì)應(yīng)若干臺(tái)虛擬的同類(lèi)設(shè)備。 SPOOLING 系統(tǒng)必須有高速、大容量并且可隨機(jī)存取的外存(例如,磁盤(pán)或磁鼓)支持。
在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,還可以用一臺(tái)設(shè)備來(lái)模擬自身。例如,常見(jiàn) 的多窗口技術(shù),即在一個(gè)終端上開(kāi)多個(gè)窗口,每個(gè)窗口可以獨(dú)立地進(jìn)行顯示,以監(jiān)視用戶(hù)不同任務(wù)的執(zhí)行情況。這是通過(guò)縮小顯示區(qū)域、平鋪或重疊顯示來(lái)模擬多個(gè)顯示器的。
作者:deniro
鏈接:https://www.jianshu.com/p/c3cfbe59babf
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
總結(jié)
以上是生活随笔為你收集整理的某系统有6台输出设备 有多个进程均需要使用2台_系统设计硬核知识(4)——操作系统的设备管理...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: xampp 支持pdo mysql_在W
- 下一篇: oracle windows serve