操作系统(5) -- 输入/输出管理
5.1 I/O管理概述
I/O設(shè)備
按使用特性:人機(jī)交互外部設(shè)備、存儲(chǔ)設(shè)備、網(wǎng)絡(luò)通信設(shè)備
按信息交換的單位分類(lèi):塊設(shè)備、字符設(shè)備
I/O控制方式
外圍設(shè)備與內(nèi)存之間的輸入/輸出方式:
程序直接控制方式
中斷驅(qū)動(dòng)方式:允許IO設(shè)備主動(dòng)打斷CPU的運(yùn)行并請(qǐng)求服務(wù),從而解放CPU
DMA方式:在IO設(shè)備和內(nèi)存之間開(kāi)辟直接的數(shù)據(jù)交換通路,特點(diǎn)是:
-
基本單位是數(shù)據(jù)塊
-
所傳送的數(shù)據(jù),是從設(shè)備直接送入內(nèi)存的,或者相反
-
僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開(kāi)始和結(jié)束時(shí),才需CPU干預(yù),整塊數(shù)據(jù)的傳送在DMA控制器的控制下完成。
通道控制方式
IO通道指專(zhuān)門(mén)負(fù)責(zé)輸入輸出的處理機(jī)。
I/O子系統(tǒng)的層次結(jié)構(gòu)
I/O軟件涉及的面很廣,往下與硬件有密切聯(lián)系,往上與用戶(hù)直接交互。在I/O軟件中普遍采用層次式結(jié)構(gòu)。
一般將I/O系統(tǒng)視為4個(gè)層次的系統(tǒng)結(jié)構(gòu),各層次及功能如下:
用戶(hù)層I/O軟件:實(shí)現(xiàn)與用戶(hù)交互的接口,用戶(hù)可直接調(diào)用在用戶(hù)層提供的庫(kù)函數(shù),對(duì)設(shè)備進(jìn)行操作。
設(shè)備獨(dú)立性軟件:用于實(shí)現(xiàn)用戶(hù)程序與設(shè)備驅(qū)動(dòng)器的統(tǒng)一接口、設(shè)備命令、設(shè)備保護(hù)及設(shè)備分配與釋放等。設(shè)備獨(dú)立性也稱(chēng)設(shè)備無(wú)關(guān)性,使應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。在應(yīng)用程序中使用邏輯設(shè)備名來(lái)請(qǐng)求使用某類(lèi)設(shè)備;在系統(tǒng)實(shí)際執(zhí)行時(shí),將邏輯設(shè)備名映射成物理設(shè)備名使用。
設(shè)備驅(qū)動(dòng)程序:與硬件直接相關(guān),負(fù)責(zé)具體實(shí)現(xiàn)系統(tǒng)對(duì)設(shè)備發(fā)出的操作指令,驅(qū)動(dòng)I/O設(shè)備工作的驅(qū)動(dòng)程序。
中斷處理程序:保存被中斷的進(jìn)程的CPU環(huán)境,轉(zhuǎn)入相應(yīng)的中斷處理程序處理,處理完并恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)后,返回到被中斷進(jìn)程。
硬件設(shè)備:I/O設(shè)備通常包括一個(gè)機(jī)械部件和一個(gè)電子部件。
?
5.2 I/O核心子系統(tǒng)
I/O調(diào)度
I/O調(diào)度就是確定一個(gè)好的順序來(lái)執(zhí)行這些I/O請(qǐng)求。I/O調(diào)度改善系統(tǒng)整體性能,使進(jìn)程之間公平地共享設(shè)備訪問(wèn),減少I(mǎi)/O完成所需要的平均等待時(shí)間。
高速緩存與緩沖區(qū)
磁盤(pán)高速緩存:指利用內(nèi)存中的存儲(chǔ)空間暫存從磁盤(pán)中讀出的一系列盤(pán)塊中的信息。磁盤(pán)高速緩存邏輯上屬于磁盤(pán),物理上是駐留在內(nèi)存中的盤(pán)塊。高速緩存在內(nèi)存中分兩種形式:一種是在內(nèi)存中開(kāi)辟一個(gè)單獨(dú)的存儲(chǔ)空間作為磁盤(pán)高速緩存;另一種是把未利用的內(nèi)存空間作為一個(gè)緩沖池。
緩沖區(qū):
目的:
-
緩和CPU與I/O設(shè)備速度不匹配問(wèn)題
-
減少對(duì)CPU的中斷頻率
-
解決基本數(shù)據(jù)單元大小不匹配問(wèn)題
-
提高CPU和I/O設(shè)備之間的并行性
特點(diǎn):不滿不能讀,不空不能寫(xiě)
分類(lèi):單緩沖,雙緩沖,循環(huán)緩沖,緩沖池
設(shè)備分配與回收
設(shè)備分配:根據(jù)用戶(hù)的請(qǐng)求分配所需的設(shè)備。分三種:
獨(dú)占式使用設(shè)備:申請(qǐng)?jiān)O(shè)備時(shí),若設(shè)備空閑,獨(dú)占,其他進(jìn)程不能再申請(qǐng)使用
分時(shí)式共享使用設(shè)備
以SPOOLing方式使用外部設(shè)備:假脫機(jī)I/O技術(shù),對(duì)I/O操作進(jìn)行批處理
SPOOLing技術(shù)(假脫機(jī)技術(shù))
該技術(shù)利用專(zhuān)門(mén)的外圍控制機(jī),將低速I(mǎi)/O設(shè)備上的數(shù)據(jù)傳送到高速磁盤(pán)上,或者相反。SPOOLing是外部設(shè)備同時(shí)聯(lián)機(jī)操作。
輸入井和輸出井:磁盤(pán)上開(kāi)辟出的兩個(gè)存儲(chǔ)區(qū)域。輸入井模擬脫機(jī)輸入時(shí)的磁盤(pán),收容I/O設(shè)備輸入的數(shù)據(jù);輸出井收容用戶(hù)程序的輸出數(shù)據(jù)。
輸入緩沖區(qū)和輸出緩沖區(qū):內(nèi)存中開(kāi)辟的兩個(gè)緩沖區(qū)。輸入緩沖區(qū)暫存由輸入設(shè)備送來(lái)的數(shù)據(jù),再送到輸入井。輸出緩沖區(qū)暫存從輸出井送來(lái)的數(shù)據(jù),再輸送到輸出設(shè)備。
輸入進(jìn)程和輸出進(jìn)程:輸入進(jìn)程把用戶(hù)要求的數(shù)據(jù)從輸入機(jī)通過(guò)通入緩沖區(qū)送到輸入井。CPU需要數(shù)據(jù)時(shí),直接把數(shù)據(jù)從輸入井讀入內(nèi)存。輸出進(jìn)程把用戶(hù)要求輸出的數(shù)據(jù)從內(nèi)存送到輸出井,待輸出設(shè)備空閑時(shí),再將輸出井中數(shù)據(jù)經(jīng)過(guò)輸出緩沖區(qū)送到輸出設(shè)備。
總結(jié)
以上是生活随笔為你收集整理的操作系统(5) -- 输入/输出管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据仓库与联机分析处理技术
- 下一篇: java信息管理系统总结_java实现科