【第七章】輸入輸出系統(tǒng)
| 本章概念
1.I/O系統(tǒng)的功能、模型和接口
- I/O系統(tǒng) 管理的主要對象: I/O設(shè)備和對應(yīng)的 設(shè)備控制器
- I/O系統(tǒng)的主要任務(wù): 完成用戶提出的I/O請求、提高I/O速率、改善I/O設(shè)備的利用率
- I/O系統(tǒng)的基本功能: 夠隱藏物理設(shè)備的細(xì)節(jié)、保證OS與設(shè)備無關(guān)、提高處理機(jī)和I/O設(shè)備的利用率、對I/O設(shè)備進(jìn)行控制、確保對設(shè)備的正確共享、能夠處理錯(cuò)誤
- I/O軟件的層次結(jié)構(gòu):
- 各種I/O模塊之間的關(guān)系:I/O系統(tǒng)接口(上接口)、軟件/硬件接口(下接口)、在上下接口之間是I/O系統(tǒng)
- I/O系統(tǒng)的分層:中斷處理程序、設(shè)備驅(qū)動(dòng)程序、與設(shè)備無關(guān)的I/O軟件
- I/O系統(tǒng)接口:
- 塊設(shè)備接口
- 流設(shè)備(字符設(shè)備)接口:get操作用于從字符緩沖區(qū)取得一個(gè)字符(到內(nèi)存);put操作用于將一個(gè)新字符(從內(nèi)存)輸出到字符緩沖區(qū)網(wǎng)絡(luò)
- 網(wǎng)絡(luò)通信接口:OS提供相應(yīng)的網(wǎng)絡(luò)軟件和網(wǎng)絡(luò)通信接口,以使計(jì)算機(jī)能通過網(wǎng)絡(luò)同網(wǎng)絡(luò)上的其他計(jì)算機(jī)進(jìn)行通信,或上網(wǎng)瀏覽信息
2.I/O設(shè)備和設(shè)備控制器
-
I/O設(shè)備的類型
- 按使用特性分類:存儲(chǔ)設(shè)備、IO設(shè)備
- 按傳輸速率分類:低速、中速、高速設(shè)別
- 按信息交換單位分類:塊設(shè)備、字符設(shè)備
- 按設(shè)備的共享屬性分類:獨(dú)占設(shè)備、共享設(shè)備
-
設(shè)備與控制器之間的接口: 設(shè)備并不是直接與CPU進(jìn)行通信,而是與設(shè)備控制器通信
-
設(shè)備控制器
- 主要功能:控制一個(gè)或多個(gè)I/O設(shè)備,以實(shí)現(xiàn)I/O設(shè)備和計(jì)算機(jī)之間的數(shù)據(jù)交換
- 設(shè)備控制器是CPU與I/O設(shè)備之間的接口,接收從CPU發(fā)來的命令,并去控制I/O設(shè)備工作
- 設(shè)備控制器是一個(gè)可編址的設(shè)備。當(dāng)僅控制一個(gè)設(shè)備時(shí),它只有一個(gè)惟一的設(shè)備地址;若控制器可連接多個(gè)設(shè)備時(shí),則每一個(gè)設(shè)備地址對應(yīng)一個(gè)設(shè)備
- 設(shè)備控制器的基本功能:接收和識別命令、數(shù)據(jù)交換、標(biāo)識和報(bào)告設(shè)備的狀態(tài)、地址識別、數(shù)據(jù)緩沖區(qū)、差錯(cuò)控制
- 設(shè)備控制器的組成:設(shè)備控制器與處理機(jī)的接口、設(shè)備控制器與設(shè)備的接口、I/O邏輯
-
I/O通道
- 目的:使一些原來由CPU處理的I/O任務(wù)轉(zhuǎn)由通道來承擔(dān),從而把CPU從繁雜的I/O任務(wù)中解脫出來
- 通道是特殊處理機(jī),但是區(qū)別在于通道的指令類型單一、沒有自己的內(nèi)存(與CPU共享)
- 類型:字節(jié)多路通道,數(shù)組選擇通道,數(shù)組多路通道
- “瓶頸”問題:因?yàn)橥ǖ赖膬r(jià)格昂貴,所以通道不足,造成“瓶頸”現(xiàn)象。
- 解決"瓶頸問題"的辦法:增加設(shè)備到CPU間的通路而不增加通道,多通路方式不僅解決了“瓶頸”問題,而且提高了系統(tǒng)的可靠性
- 單通路 VS 多通路 IO系統(tǒng)
I/O設(shè)備的控制方式
-
使用輪詢的可編程I/O方式(基本不用)
-
使用中斷的可編程I/O方式(廣泛采用)
-
直接存儲(chǔ)器訪問(DMA)方式(DMA的引入:進(jìn)一步減少CPU對I/O設(shè)備的干預(yù))
-
I/O通道控制方式
- 引入:是DMA方式的發(fā)展,可進(jìn)一步減少CPU的干預(yù)
- 通道程序:由一系列通道指令所構(gòu)成的。通道指令不同于CPU指令。指令包含:操作碼、內(nèi)存地址、計(jì)數(shù)、通道程序結(jié)束位P、記錄結(jié)束位R。
3.中斷和中斷處理程序
- 什么是中斷?
- 中斷和陷入:中斷(Interrupt)是指CPU對I/O設(shè)備發(fā)來的中斷信號的一種響應(yīng) 、 而 陷入(Trap)是指CPU內(nèi)部事件所引起的中斷
- 中斷向量表、中斷優(yōu)先級
- 對多中斷源的處理方式
- 中斷源:引起中斷的事件
- 當(dāng)處理機(jī)正在處理一個(gè)中斷時(shí),又來了一個(gè)新的中斷請求,有兩種處理方式: 屏蔽(禁止)中斷、嵌套中斷
- 中斷處理程序:測定是否有未響應(yīng)的中斷信號、保護(hù)被中斷進(jìn)程的CPU現(xiàn)場、轉(zhuǎn)入相應(yīng)的設(shè)備處理程序、處理中斷、恢復(fù)CPU現(xiàn)場并退出中斷
4.用戶層的I/O軟件
-
大部分I/O軟件都放在OS內(nèi)部,仍有一小部分在用戶層
-
假脫機(jī)技術(shù):
- 為了緩和CPU的高速性與I/O設(shè)備的低速性間的矛盾
- 利用一個(gè)程序模擬脫機(jī)輸入時(shí)的外圍控制機(jī)功能,把低速I/O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上;用另一道程序模擬脫機(jī)輸出時(shí)外圍控制機(jī)的功能,把數(shù)據(jù)從磁盤傳送到低速輸出設(shè)備
- 外圍操作與CPU對數(shù)據(jù)的處理同時(shí)進(jìn)行,這種在聯(lián)機(jī)情況下實(shí)現(xiàn)的同時(shí)外圍操作稱為假脫機(jī)技術(shù)
- 特點(diǎn):提高了I/O的速度、將獨(dú)占設(shè)備改造為共享設(shè)備、實(shí)現(xiàn)了虛擬設(shè)備功能
-
假脫機(jī)技術(shù)系統(tǒng)的組成
- 輸入井和輸出井:在磁盤上開辟的兩個(gè)大存儲(chǔ)空間<
- 輸入緩沖區(qū)和輸出緩沖區(qū):緩和CPU和磁盤之間速度不匹配的矛盾
- 輸入進(jìn)程Spi:數(shù)據(jù)從輸入設(shè)備通過輸入緩沖區(qū)再送入輸入井,當(dāng)CPU需要輸入數(shù)據(jù)時(shí),直接從輸入井讀入內(nèi)存
- 輸出進(jìn)程Sp:從內(nèi)存送到輸出井,待輸出設(shè)備空閑時(shí),再將輸出井中的數(shù)據(jù)經(jīng)過輸出緩沖區(qū)送到輸出設(shè)備上
- 井管理程序:用于控制作業(yè)與磁盤井之間信息的交換
-
假脫機(jī)打印系統(tǒng)
- 打印機(jī)屬于獨(dú)占設(shè)備。利用SPOOLing技術(shù),可將之改造為一臺(tái)可供多個(gè)用戶共享的設(shè)備,從而提高設(shè)備的利用率,也方便了用戶
- 磁盤緩沖區(qū):磁盤空間,暫存用戶程序的輸出數(shù)據(jù);打印緩沖區(qū):設(shè)在內(nèi)存,暫存從磁盤緩沖區(qū)送來的數(shù)據(jù);
-
共享打印機(jī)
-
假脫機(jī)的【管理進(jìn)程】
①在磁盤緩沖區(qū)中為之申請一個(gè)空閑盤塊,并將要打印的數(shù)據(jù)送入其中暫存。
②為用戶進(jìn)程申請一張空白的用戶請求打印表,并將用戶的打印要求填入表中,再將該表掛到假脫機(jī)文件隊(duì)列上
-
假脫機(jī)的【打印進(jìn)程】
①打印機(jī)空閑時(shí),進(jìn)程從請求打印隊(duì)列的隊(duì)首取出一張請求打印表。
②根據(jù)表中的要求 將要打印的數(shù)據(jù),從輸出井傳送到內(nèi)存緩沖區(qū),再由打印機(jī)進(jìn)行打印
③打印完,進(jìn)程再次察看請求打印隊(duì)列,若非空,重復(fù)上述工作,直到隊(duì)列為空。
④進(jìn)程才將自己阻塞起來。僅當(dāng)下次再有打印請求時(shí),進(jìn)程才被喚醒
-
-
守護(hù)進(jìn)程
- 方案修改:取消假脫機(jī)管理進(jìn)程,為打印機(jī)建立一個(gè)守護(hù)進(jìn)程,由它 執(zhí)行一部分原來的假脫機(jī)管理進(jìn)程的功能。
- 守護(hù)進(jìn)程是允許使用打印機(jī)的唯一進(jìn)程
5.緩沖區(qū)管理
- 緩沖區(qū)是一個(gè)存儲(chǔ)區(qū)域,可以由專門的硬件組成;更多的是利用內(nèi)存
- 緩沖管理的主要功能是組織好這些緩沖區(qū),并提供獲得和釋放緩沖區(qū)的手段。
-
為什么要引入緩沖區(qū)?
- CPU與I/O設(shè)備間速度不匹配
- 減少對CPU的中斷頻率,放寬對CPU中斷響應(yīng)時(shí)間的限制
- 解決數(shù)據(jù)粒度不匹配的問題
- 提高CPU與I/O設(shè)備之間的并行性
- 單緩沖
- 每當(dāng)用戶進(jìn)程發(fā)出一I/O請求時(shí),操作系統(tǒng)便在主存中為之分配一緩沖區(qū)
- 系統(tǒng)對每一塊數(shù)據(jù)的處理時(shí)間為:Max(C,T)+M
- 雙緩沖
- 在雙緩沖時(shí),系統(tǒng)處理一塊數(shù)據(jù)的時(shí)間可以粗略地認(rèn)為是Max(C,T),如果 C>T,則可使CPU不必等待設(shè)備輸入
- 環(huán)形緩沖區(qū)
- 當(dāng)輸入與輸出若兩者的速度相差懸殊,雙緩沖的效果則不夠理想,不過可以隨著緩沖區(qū)數(shù)量的增加,使情況有所改善
- 引入多緩沖機(jī)制,可將多個(gè)緩沖組織為循環(huán)緩沖
- 緩沖池
- 當(dāng)系統(tǒng)較大時(shí),將會(huì)有許多循環(huán)緩沖,這不僅要消耗大量的內(nèi)存空間,而且利用率不高
- 為了提高緩沖區(qū)的利用率,引入公用緩沖池,在池中設(shè)置了多個(gè)可供若干個(gè)進(jìn)程共享的緩沖區(qū)。
- 緩沖池的組成:空閑緩沖隊(duì)列emq、空閑緩沖隊(duì)列emq、輸出隊(duì)列out、收容輸入緩沖區(qū)、 提取輸入緩沖區(qū)、 收容輸出緩沖區(qū)、 提取輸出緩沖區(qū)。
- 工作方式:收容輸入、提取輸入、收容輸出、提取輸出
- 緩存
- 緩存是保存數(shù)據(jù)副本的高速內(nèi)存區(qū)域
- 為了緩和CPU運(yùn)行速率與內(nèi)存讀/寫速率不匹配的矛盾
- 緩沖 VS 緩存:緩沖可以保存數(shù)據(jù)項(xiàng)的唯一的現(xiàn)有版本;緩存只是提供一個(gè)位于其他地方的數(shù)據(jù)項(xiàng)的更快存儲(chǔ)副本;有時(shí),同一個(gè)內(nèi)存區(qū),既可以是緩沖,也可以是緩存
6. 磁盤性能概述和磁盤調(diào)度
- 磁盤的結(jié)構(gòu)
- 盤面(磁頭):磁盤設(shè)備可包含一或多個(gè)盤片,每個(gè)盤片分為一個(gè)或兩個(gè)盤面,每個(gè)面上有一個(gè)讀寫磁頭
- 磁道(柱面):每個(gè)盤面可分成若干條磁道
- 扇區(qū):每條磁道邏輯上分成若干個(gè)大小相同的扇區(qū)。每個(gè)扇區(qū)的大小相當(dāng)于一個(gè)盤塊(數(shù)據(jù)塊)
- 每條磁道上可存儲(chǔ)相同數(shù)目的二進(jìn)制位
- 磁盤密度即每英寸中所存儲(chǔ)的位數(shù),顯然是內(nèi)層磁道的密度較外層磁 道的密度高。
- 數(shù)據(jù)的組織和格式
- 為了在磁盤上存儲(chǔ)數(shù)據(jù),必須先將磁盤格式化
- 每個(gè)扇區(qū)包括2個(gè)字段:標(biāo)識符字段、數(shù)據(jù)字段
- 磁盤的類型
- 硬盤、軟盤;
- 單片盤、多片盤;
- 固定頭磁盤:每個(gè)磁道上都有一個(gè)讀寫磁頭。
- 移動(dòng)頭磁盤:每個(gè)盤面僅配有一個(gè)磁頭,能移動(dòng)尋道
| 本章算法
1.單緩沖區(qū)和雙緩沖區(qū)的處理時(shí)間計(jì)算
T:從磁盤把一塊數(shù)據(jù)輸入到緩沖區(qū)的時(shí)間
C:CPU對這塊數(shù)據(jù)處理的時(shí)間。
M:操作系統(tǒng)將該緩沖區(qū)中的數(shù)據(jù)傳送到工作區(qū)的時(shí)間
單緩沖區(qū):系統(tǒng)對每一塊數(shù)據(jù)的處理時(shí)間為:Max(C,T)+M
雙緩沖區(qū):系統(tǒng)對每一塊數(shù)據(jù)的處理時(shí)間為:Max(C,T)
2.磁盤容量計(jì)算
容量=柱面×磁頭×扇區(qū),每扇區(qū)存放512B數(shù)據(jù)
3.磁盤訪問時(shí)間的計(jì)算
-
磁盤在工作時(shí)是以恒定速率旋轉(zhuǎn)
-
讀寫的過程:磁頭必須移動(dòng)到所要求的磁道上 → 等待所指定的扇區(qū)的開始位置旋轉(zhuǎn)到磁頭下 → 開始讀寫數(shù)據(jù)
-
磁盤的訪問時(shí)間計(jì)算公式:尋道時(shí)間 + 旋轉(zhuǎn)延遲時(shí)間(查詢扇區(qū)平均時(shí)間) + 傳輸時(shí)間
-
尋道時(shí)間 = 啟動(dòng)磁臂的時(shí)間 + m*磁頭移動(dòng) n 條磁道所花費(fèi)的時(shí)間 m是一個(gè)常數(shù),一般是 0.2。對于高速磁盤則小于 0.1
-
旋轉(zhuǎn)延遲時(shí)間(查詢扇區(qū)平均時(shí)間) = 0.5 * 1 / 轉(zhuǎn)速 (轉(zhuǎn)速的單位:r/s,注意換算。 本質(zhì):0.5 * 周期。 T = 1 / f)
4.磁盤調(diào)度算法 與 平均尋道時(shí)間的計(jì)算
-
磁盤調(diào)度的目標(biāo), 是使磁盤的平均尋道時(shí)間最小。
-
FCFS調(diào)度算法(先來先):根據(jù)進(jìn)程請求訪問磁盤的先后次序進(jìn)行調(diào)度
SSTF調(diào)度算法(最短):尋找當(dāng)前距離最近的磁頭所在的磁道,以使每次的尋道時(shí)間最短,但不保證平均尋道時(shí)間最短
SCAN調(diào)度算法(反復(fù)循環(huán)掃描):①磁臂從磁盤的一端向另一段移動(dòng),沿途響應(yīng)服務(wù)請求。②到達(dá)另一端時(shí), 磁頭改變移動(dòng)方向,繼續(xù)處理。磁頭在磁盤上來回掃描
CSCDN調(diào)度算法(單向循環(huán)掃描):①磁頭從磁盤一段移到另一端,隨著移動(dòng)不斷的處理 請求。②到達(dá)另一端時(shí), 立即返回相對的另一端,返回期間不處理任何請求
CLOOK調(diào)度算法(單項(xiàng)循環(huán)掃描,但是以最遠(yuǎn)請求為斷點(diǎn)):①磁頭只移動(dòng)到一個(gè)方向上【最遠(yuǎn)的請求】為止!然后馬上返回【另一端的最遠(yuǎn)請求】(而非另一端?。?br>
5.磁盤傳輸文件耗時(shí):知柱面查找時(shí)間、間隔柱面時(shí)間
| 課后簡答題
1.試說明I/O系統(tǒng)的基本功能。
①隱藏物理設(shè)備的細(xì)節(jié);
②保證OS與設(shè)備無關(guān);
③提高處理機(jī)和IO設(shè)備的利用率;
④控制IO設(shè)備;
⑤確保對設(shè)備的正確共享;
⑥處理錯(cuò)誤。
2.IO軟件一般分為用戶層軟件、設(shè)備獨(dú)立性軟件、設(shè)備驅(qū)動(dòng)程序和中斷處理程序這4個(gè)層次,它們的基本功能分別是什么?請說明下列工作分別是在哪一層完成的?
( 1)向設(shè)備寄存器寫命令。 —— 設(shè)備驅(qū)動(dòng)管理器中完成
( 2)檢查用戶是否有權(quán)使用設(shè)備。 —— 設(shè)備獨(dú)立性軟件中完成
( 3)將二進(jìn)制整數(shù)轉(zhuǎn)換成ASCl的格式打印。 ——用戶層軟件中完成
(4)緩沖管理。 ——設(shè)備獨(dú)立性軟件中完成
3.設(shè)備控制器由哪幾部分組成?為了實(shí)現(xiàn) CPU與設(shè)備控制器之間的通信,設(shè)備控制器應(yīng)具備哪些功能?
①設(shè)備控制器的組成部分主要包括設(shè)備控制器與CPU的接口、設(shè)備控制器與設(shè)備的接口、EO邏輯這3部分。
②設(shè)備控制器應(yīng)具備接收和識別命令、交換數(shù)據(jù)、標(biāo)志和報(bào)告設(shè)備的狀態(tài)、緩沖地址、識別數(shù)據(jù)、控制差錯(cuò)等功能。
4.(考研真題)什么是通道?通道經(jīng)常采用圖1-7-1所示的交叉連接方式,為什么?
①通道是一種特殊的處理機(jī),它具有執(zhí)行UO指令的能力,并且可以通過執(zhí)行通道I/O程序來控制1/O操作。
②圖1-7-1中的交叉連接主要是為了解決通道的瓶頸問題。之所以會(huì)產(chǎn)生瓶頸問題,是因?yàn)橥ǖ纼r(jià)格昂貴,設(shè)置的通道數(shù)量較少,導(dǎo)致系統(tǒng)吞吐量下降。交叉連接的多通路方式不僅解決了瓶頸問題,還提高了系統(tǒng)可靠性。
5.設(shè)備中斷處理程序通常須完成哪些工作?它對中斷進(jìn)行處理的過程包含哪些步驟?
設(shè)備中斷處理程序要完成:
①喚醒被阻塞的驅(qū)動(dòng)進(jìn)程;
②保存被中斷進(jìn)程的CPU現(xiàn)場信息;
③轉(zhuǎn)人相應(yīng)的設(shè)備處理程序;
④處理中斷;
⑤恢復(fù)被中斷進(jìn)程的CPU現(xiàn)場。
對中斷進(jìn)行處理的過程為:
①測定是否有未響應(yīng)的中斷信號;
②保護(hù)被中斷進(jìn)程的CPU現(xiàn)場;
③轉(zhuǎn)人相應(yīng)的設(shè)備處理程序;
④處理中斷;
⑤恢復(fù)CPU現(xiàn)場并退出中斷。
6.(考研真題)為什么要有設(shè)備驅(qū)動(dòng)程序?用戶進(jìn)程是如何通過設(shè)備驅(qū)動(dòng)程序來控制設(shè)備工作的?
設(shè)備驅(qū)動(dòng)程序與硬件密切相關(guān),主要負(fù)責(zé)接收上層軟件發(fā)來的IO指令,并將其轉(zhuǎn)換成具體要求發(fā)送給設(shè)備控制器;
反之,也將來自設(shè)備控制器的信號傳送給上層軟件。采用設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn)IO系統(tǒng)的高層與設(shè)備控制器之間的通信,驅(qū)動(dòng)I/O設(shè)備工作。
用戶進(jìn)程通過設(shè)備驅(qū)動(dòng)程序控制設(shè)備工作的過程為:
①接收由用戶進(jìn)程發(fā)來的IO命令和參數(shù),并將命令中的抽象要求轉(zhuǎn)換為具體要求,如將磁盤盤塊號轉(zhuǎn)換為磁盤的盤面、磁道和扇區(qū)號;
②檢查用戶I/O請求的合法性,如果請求不合法,則拒絕接收I/O請求并反饋用戶進(jìn)程;
③了解I/O設(shè)備的狀態(tài),如果設(shè)備準(zhǔn)備就緒,則可由設(shè)備控制器設(shè)置設(shè)備的工作方式、傳遞有關(guān)參數(shù);否則,將請求者的請求塊掛到設(shè)備請求隊(duì)列上等待;
④發(fā)出I/O命令,如果設(shè)備空閑,則立即啟動(dòng)EO設(shè)備,完成指定的U/O操作。
7,推動(dòng)IO控制方式發(fā)展的主要因素是什么?
①盡量減少CPU對1/O控制的干預(yù),把CPU從繁雜的IO控制中解脫出來,以便更多地去完成數(shù)據(jù)處理任務(wù);
②緩和CPU的高速性和設(shè)備的低速性之間速度不匹配的矛盾,以提高CPU利用率和系統(tǒng)吞吐量;
③提高CPU和1/O設(shè)備操作的并行程度,使CPU和L/O設(shè)備都處于忙碌狀態(tài),提高整個(gè)系統(tǒng)的資源利用率和系統(tǒng)吞吐量。
8.請說明中斷驅(qū)動(dòng)1/O方式和DMA ( direct memory access,直接存儲(chǔ)器訪問)方式有什么不同。
它們主要在以下兩個(gè)方面有不同。
(1) VO中斷頻率。
在中斷驅(qū)動(dòng)1/0方式中,每當(dāng)輸入數(shù)據(jù)緩沖寄存器中裝滿輸入數(shù)據(jù)或?qū)⑤敵鰯?shù)據(jù)緩沖寄存器中的數(shù)據(jù)輸出之后,設(shè)備控制器就會(huì)發(fā)生- -次中斷, 由于設(shè)備控制器中配置的數(shù)據(jù)緩沖寄存器通常較小,如1個(gè)字節(jié)或1個(gè)字,因此中斷比較頻繁。
而在DMA方式中,在DMA控制器的控制下,-次能完成一批連續(xù)數(shù)據(jù)的傳輸, 并在整批數(shù)據(jù)傳送完成后才發(fā)生一次中斷,因此可大大減少CPU處理1/O中斷的時(shí)間。
(2)數(shù)據(jù)的傳送方式。
在中斷驅(qū)動(dòng)VO方式中,由CPU直接將輸出數(shù)據(jù)寫人控制器的數(shù)據(jù)緩沖寄存器中以供設(shè)備輸出,或在中斷發(fā)生后直接從數(shù)據(jù)緩沖寄存器中取出輸人數(shù)據(jù)以供進(jìn)程處
理,即數(shù)據(jù)的傳送必須經(jīng)過CPU;
而在DMA方式中,數(shù)據(jù)傳送是在DMA控制器的控制下直接在
內(nèi)存和10設(shè)備間進(jìn)行的,CPU只須將磁盤地址、內(nèi)存地址和字節(jié)數(shù)傳給DMA控制器即可。
9.設(shè)備無關(guān)性的基本含義是什么?為什么要設(shè)置設(shè)備無關(guān)性軟件?
為了提高OS的可適應(yīng)性和可擴(kuò)展性,在現(xiàn)代OS中都實(shí)現(xiàn)了設(shè)備無關(guān)性(設(shè)備獨(dú)立性),其基本含義是應(yīng)用程序獨(dú)立于物理設(shè)備。
為了實(shí)現(xiàn)設(shè)備無關(guān)性,引人了邏輯設(shè)備和物理設(shè)備這兩個(gè)概念。在應(yīng)用程序中,可通過邏輯設(shè)備名稱請求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時(shí),必須使用其對應(yīng)的物理設(shè)備名稱,應(yīng)用程序應(yīng)與實(shí)際使用的物理設(shè)備無關(guān)
設(shè)置設(shè)備無關(guān)性軟件的目的是:①增加設(shè)備分配的靈活性;②實(shí)現(xiàn)I/O重定向。當(dāng)IO設(shè)備被更換時(shí)不必改變應(yīng)用程序,即IO重定向
10.設(shè)備分配過程中可能會(huì)出現(xiàn)死鎖嗎?為什么?
在設(shè)備分配過程中,如果在進(jìn)程發(fā)出IO請求后,系統(tǒng)為其分配了IO設(shè)備,則進(jìn)程仍繼續(xù)運(yùn)行;
運(yùn)行中再次發(fā)出新的I/O請求,只有當(dāng)某個(gè)請求不滿足時(shí),進(jìn)程才會(huì)阻塞。這種情況下,一個(gè)進(jìn)程可以同時(shí)使用多個(gè)設(shè)備。雖然進(jìn)程推進(jìn)迅速,但此時(shí)的資源分配方式是不安全的,可能會(huì)發(fā)生死鎖。
11.SPOOLing ( simultaneous peripheral operations on-line,假脫機(jī))系統(tǒng)由哪幾部分組成?以打印機(jī)為例,說明如何利用SPOOLing技術(shù)實(shí)現(xiàn)多個(gè)進(jìn)程對打印機(jī)的共享?
SPOOLing系統(tǒng)由磁盤上的輸入井和輸出井、內(nèi)存中的輸入緩沖區(qū)和輸出緩沖區(qū)、輸人進(jìn)程和輸出進(jìn)程以及井管理程序組成。
采用SPOOLing技術(shù)共享打印機(jī)時(shí),對所有提出輸出請求的用戶進(jìn)程,系統(tǒng)接受它們的請求時(shí),并不真正分配打印機(jī),而是由SPOOLing管理進(jìn)程做兩件事情:
①在輸出井中為它申請一空閑緩沖區(qū),并將要打印的數(shù)據(jù)送入其中;
②為用戶進(jìn)程申請一張空白的用戶打印請求表,并將用戶的打印請求填入該表中,再將該表掛到SPOOLing文件隊(duì)列上。
12.(考研真題)在單緩沖區(qū)情況下,為什么系統(tǒng)對一塊數(shù)據(jù)的處理時(shí)間為max (C,T) + M?
以輸入為例,假定從磁盤中把一塊數(shù)據(jù)輸入緩沖區(qū)的時(shí)間為T;
OS將緩沖區(qū)數(shù)據(jù)傳送到用戶區(qū)的時(shí)間為M;
CPU對這塊數(shù)據(jù)進(jìn)行計(jì)算的時(shí)間為C。文章來源:http://www.zghlxwxcb.cn/news/detail-479680.html
在單緩沖區(qū)情況下,由于設(shè)備的輸入操作和CPU的處理操作可以并行執(zhí)行,因此系統(tǒng)對每一整塊數(shù)據(jù)的處理時(shí)間為max (C.T) +M。文章來源地址http://www.zghlxwxcb.cn/news/detail-479680.html
到了這里,關(guān)于【第七章 | 輸入輸出系統(tǒng)】《操作系統(tǒng) 慕課版》課后答案 + 復(fù)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!