freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

os20xxunit9設(shè)備管理(編輯修改稿)

2025-03-30 16:40 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 作系統(tǒng)并不給設(shè)備文件分配磁盤(pán)空間單元。那么, 設(shè)備文件的文件體是什么呢?就是 DCB! 例如, Linux是按如下方式處理的。 Linux支持三種類型的硬件設(shè)備:字符設(shè)備、塊設(shè)備及網(wǎng)絡(luò)設(shè)備。 字符設(shè)備能夠存儲(chǔ)或傳輸不定長(zhǎng)數(shù)據(jù)。某些字符設(shè)備可以每次傳送一個(gè)字節(jié),可以不經(jīng)過(guò)緩沖區(qū)直接進(jìn)行讀 寫(xiě),如系統(tǒng)中的串行口 /dev/dnao和 /dev/al,傳送完一個(gè)字節(jié)后產(chǎn)生一個(gè) I/O中斷;另一些字符設(shè)備可以在設(shè)備內(nèi)緩存數(shù)據(jù),因此可以一次傳送完多個(gè)字節(jié)后產(chǎn)生一個(gè) I/O中斷。 塊設(shè)備以塊為單位傳輸數(shù)據(jù)。每個(gè)塊設(shè)備都可建有一個(gè) I/O數(shù)據(jù)緩沖區(qū)隊(duì)列,緩沖區(qū)的大小與塊相等,因此,塊設(shè)備一次可傳輸一塊或多塊數(shù)據(jù)。 網(wǎng)絡(luò)設(shè)備也稱包設(shè)備(如以太網(wǎng)卡),是通過(guò) BSD socket和網(wǎng)絡(luò)子系統(tǒng)訪問(wèn),它負(fù)責(zé)數(shù)據(jù)包的發(fā)送和接收。 網(wǎng)絡(luò)協(xié)議(如 TCP/IP)就建立在網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序之上。與字符設(shè)備和塊設(shè)備不同的是,網(wǎng)絡(luò)設(shè)備傳輸?shù)牟皇菬o(wú)結(jié)構(gòu)的流式數(shù)據(jù),而是有結(jié)構(gòu)的數(shù)據(jù)包。 針對(duì)這三類設(shè)備, Linux在內(nèi)核空間中建立了三個(gè)設(shè)備注冊(cè)表 (也稱 設(shè)備開(kāi)關(guān)表 ),分別是: 塊設(shè)備注冊(cè)表 、 字符設(shè)備注冊(cè)表、 以及 網(wǎng)絡(luò)設(shè)備注冊(cè)表 ,它們均為線性表(數(shù)組) 。每個(gè)已配置在系統(tǒng)中的外設(shè)都在相應(yīng)的設(shè)備注冊(cè)表中占有一個(gè)表項(xiàng)。表項(xiàng)中包含了 DCB中的核心內(nèi)容,主要有:設(shè)備名(即設(shè)備文件名)、主設(shè)備號(hào)、驅(qū)動(dòng)程序指針。 DCB中的其他內(nèi)容則被記錄在 i 節(jié)點(diǎn)中。 i 節(jié)點(diǎn)中也設(shè)置有主設(shè)備號(hào),通過(guò)它與相應(yīng)的注冊(cè)表表項(xiàng)連接了起來(lái)。從而在設(shè)備文件名與設(shè)備驅(qū)動(dòng)程序之間建立起了一條通路。見(jiàn)圖 92。 … i節(jié)點(diǎn)號(hào) 外設(shè) … … 主設(shè)備號(hào) … … … fops … … *read() *write() … … write() read() … 驅(qū)動(dòng)程序 中處程序 設(shè)備 文件名 設(shè)備目錄 i 節(jié)點(diǎn) 設(shè)備注冊(cè)表 圖 92 設(shè)備文件名到設(shè)備驅(qū)動(dòng)程序的通路 *intrrpt() I/O軟件的分層結(jié)構(gòu) 設(shè)備管理軟件,也稱作 I/O控制系統(tǒng)( IOCS)或I/O軟件 ,是操作系統(tǒng)中非常繁雜的部分,通常按照I/O功能進(jìn)行分層,每一層提供獨(dú)特的功能,并與相鄰的層面間設(shè)計(jì)有標(biāo)準(zhǔn)界面。當(dāng)然,不同的操作系統(tǒng)這種分層是不同的,但一般都會(huì)有如下幾層(從高到低) : ■用戶級(jí) I/O軟件 ■獨(dú)立于設(shè)備的 I/O軟件 ■設(shè)備驅(qū)動(dòng)程序 ■設(shè)備中斷處理程序 I/O 請(qǐng)求 (用戶進(jìn)程) I/O 應(yīng)答 用戶級(jí) I/O軟件 獨(dú)立于設(shè)備的 I/O軟件 設(shè)備驅(qū)動(dòng)程序 硬 件 圖 93 I/O軟件的分層結(jié)構(gòu) 設(shè)備中斷處理程序 167。 3 設(shè)備中斷處理程序 由于大多數(shù) I/O均為中斷驅(qū)動(dòng),設(shè)備中斷處理程序就成為 I/O軟件的不可分割的組成部分。由于設(shè)備中斷處理程序直接與硬件相關(guān),針對(duì)不同的外部設(shè)備,中斷響應(yīng)的處理也不盡相同,因此,設(shè)備中斷處理程序處于 I/O軟件分層結(jié)構(gòu)里面的最底層。而為了降低操作系統(tǒng)的復(fù)雜性,設(shè)備中斷處理程序的暴露窗口應(yīng)該越小越好,與其打交道的 OS部分也是越少越好。 而降低暴露窗口的最好辦法是讓設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)I/O中斷響應(yīng),即設(shè)備驅(qū)動(dòng)程序啟動(dòng) I/O操作后阻塞(通過(guò)執(zhí)行信號(hào)量的 P操作或等待信號(hào)),然后等待 I/O中斷。當(dāng)響應(yīng) I/O中斷時(shí),先執(zhí)行設(shè)備中斷處理程序,在設(shè)備中斷處理程序完成相關(guān)的處理后喚醒設(shè)備驅(qū)動(dòng)程序(通過(guò)執(zhí) 行信號(hào)量的 V操作或發(fā)送信號(hào))。 I/O中斷處理過(guò)程大致有以下幾個(gè)步驟: 1. 關(guān)中斷。 CPU中的中斷響應(yīng)部件響應(yīng)中斷請(qǐng)求后立即關(guān)中斷。 2. 保存現(xiàn)行進(jìn)程(被中斷的進(jìn)程)的執(zhí)行現(xiàn)場(chǎng)(上下文)。 3. 分析中斷源(中斷類型和發(fā)出中斷的設(shè)備 ID),切換到相應(yīng)的設(shè)備中斷處理程序。 4. 執(zhí)行設(shè)備中斷處理程序。設(shè)備中斷處理程序首先從設(shè)備控制器中讀出設(shè)備狀態(tài),根據(jù)設(shè)備的當(dāng)前狀態(tài)作相應(yīng)處理;最后喚醒相應(yīng)的設(shè)備驅(qū)動(dòng)程序。 5. 恢復(fù)被中斷進(jìn)程的執(zhí)行現(xiàn)場(chǎng)。 6. 開(kāi)中斷。 167。 4 設(shè)備驅(qū)動(dòng)程序 ◆ 什么是設(shè)備驅(qū)動(dòng)程序 ◆ 設(shè)備驅(qū)動(dòng)程序的算法框架 什么是設(shè)備驅(qū)動(dòng)程序 設(shè)備驅(qū)動(dòng)程序,顧名思義,就是直接驅(qū)動(dòng)外部設(shè)備進(jìn)行 I/O操作的軟件。其作用就是實(shí)現(xiàn)對(duì)外部設(shè)備的軟件封裝,隱藏外部設(shè)備的所有硬件細(xì)節(jié),向用戶提供一個(gè)統(tǒng)一的操作界面, 是操作系統(tǒng)對(duì)外部設(shè)備的物理抽象 。它屬于與設(shè)備控制器直接聯(lián)系的 IOCS部分,與具體的外設(shè)直接相關(guān),并針對(duì)每個(gè)特定的外設(shè)進(jìn)行過(guò)優(yōu)化。設(shè)備驅(qū)動(dòng)程序通常由設(shè)備制造商提供,但歸屬于操作系統(tǒng)內(nèi)核。正因?yàn)檫@一屬性,設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)安全的一大隱患。 由于需要直接驅(qū)動(dòng)設(shè)備的運(yùn)行,設(shè)備驅(qū)動(dòng)程序必須清楚設(shè)備的所有物理細(xì)節(jié)。例如,磁盤(pán)驅(qū)動(dòng)程序必須清楚磁盤(pán)控制器設(shè)置有多少寄存器及其端口,了解磁盤(pán)擁有的柱面數(shù)(磁道數(shù))、磁頭數(shù)(盤(pán)面數(shù))、扇區(qū)數(shù)及扇區(qū)的容 量、臂的移動(dòng)、交叉訪問(wèn)系數(shù)、電機(jī)驅(qū)動(dòng)器、磁頭穩(wěn)定時(shí)間以及所有保證磁盤(pán)正常工作的硬件機(jī)制。鼠標(biāo)驅(qū)動(dòng)程序自然需要具備辨認(rèn)是哪個(gè)按鍵被按下的能力。 每種設(shè)備配置有一個(gè)設(shè)備驅(qū)動(dòng)程序,但一個(gè)設(shè)備驅(qū)動(dòng)程序并不是一個(gè)完整獨(dú)立的程序,而是由一組相對(duì)獨(dú)立的設(shè)備操作函數(shù)(內(nèi)核函數(shù))所構(gòu)成,其中的每個(gè)函數(shù)都可被進(jìn)程單獨(dú)調(diào)用,實(shí)現(xiàn)相關(guān)的物理 I/O。 在 UNIX中,設(shè)備驅(qū)動(dòng)程序與整個(gè) OS內(nèi)核編在一個(gè)二進(jìn)制文件里。如果要增加新的設(shè)備驅(qū)動(dòng)程序或者修改現(xiàn)有的設(shè)備驅(qū)動(dòng)程序,則需要重新編譯整個(gè)操作系統(tǒng)內(nèi)核。UNIX的這種做法主要是考慮到安全因素。由于用戶無(wú)法動(dòng)態(tài)地裝卸設(shè)備驅(qū)動(dòng)程序,操作系統(tǒng)的安全性較高。不 過(guò),這種不能動(dòng)態(tài)裝卸的限制讓人感覺(jué)十分不便,因此在最新的 UNIX以及 Linux版本里,建立了較復(fù)雜的可安裝內(nèi)核模塊機(jī)制,它可支持設(shè)備驅(qū)動(dòng)程序的動(dòng)態(tài)裝卸。 Windows操作系統(tǒng)從一開(kāi)始( NT開(kāi)始)就支持設(shè)備驅(qū)動(dòng)程序的動(dòng)態(tài)裝卸,這也是 Windows不如 UNIX安全的一個(gè)原因。 設(shè)備驅(qū)動(dòng)程序的算法框架 (1) 在收到一個(gè) I/O請(qǐng)求后,設(shè)備驅(qū)動(dòng)程序做的第一件事是檢查輸入?yún)?shù)是否合法。如果不合法,則錯(cuò)誤返回;否則,將 I/O請(qǐng)求的抽象表示轉(zhuǎn)換為設(shè)備控制器能夠認(rèn)識(shí)的具體表示,例如,將線性的盤(pán)塊號(hào)映射為磁道、磁頭、扇區(qū)等。 (2) 然后,設(shè)備驅(qū)動(dòng)程序需要檢查設(shè)備狀態(tài)以確認(rèn)設(shè)備是否處于閑置狀態(tài)。如果設(shè)備正忙著,則將 I/O請(qǐng)求送入該設(shè)備的等待隊(duì)列以待處理,并阻塞調(diào)用者;否則,若設(shè)備空閑,就驅(qū)動(dòng)設(shè)備運(yùn)行并啟動(dòng)電機(jī)。 (3) 接著開(kāi)始驅(qū)動(dòng)真正的 I/O操作。設(shè)備驅(qū)動(dòng)程序通過(guò)向設(shè)備寄存器里送入一系列的 I/O控制命令來(lái)進(jìn)行物理的數(shù)據(jù)傳輸工作。如果需要,設(shè)備驅(qū)動(dòng)程序通過(guò)自行阻塞 來(lái)等待 I/O中斷。 (4) 在被中斷處理程序喚醒后,讀取設(shè)備狀態(tài)寄存器中的信息以檢查此 I/O操作是否正確完成。如果正確完成的話,進(jìn)行 I/O操作的善后處理,例如,對(duì)于讀操作,需要將 I/O緩沖區(qū)中的數(shù)據(jù)傳送到調(diào)用者指定的內(nèi)存數(shù)據(jù)區(qū)中,繼續(xù) (5)。如果未正確完成的話,檢查錯(cuò)誤狀態(tài),對(duì)可修復(fù)性錯(cuò)誤進(jìn)行必要的出錯(cuò)處理,否則錯(cuò)誤返回。 (5) 如果該設(shè)備的等待隊(duì)列非空,則喚醒等待的進(jìn)程。 (6) 正常返回此 I/O請(qǐng)求的調(diào)用者。 167。 5 獨(dú)立于設(shè)備的 I/O軟件 ◆ 統(tǒng)一界面 ◆ I/O緩沖 ◆ 設(shè)備的安全保護(hù) ◆ 設(shè)備的分配與調(diào)度 ◆ 錯(cuò)誤處理 ◆ 假脫機(jī) 一般來(lái)說(shuō),設(shè)備驅(qū)動(dòng)程序并不直接從用戶程序處接收I/O請(qǐng)求,而是通過(guò)另外一層中介獲得用戶請(qǐng)求。這層介于設(shè)備驅(qū)動(dòng)程序與用戶程序之間的中介就是獨(dú)立于設(shè)備的I/O軟件。操作系統(tǒng)在設(shè)計(jì)時(shí)之所以有這層軟件是因?yàn)镮/O軟件的一部分與設(shè)備的具體特性有關(guān),一部分則與設(shè)備的具體特性無(wú)關(guān)。而如果與設(shè)備無(wú)關(guān),就可以將這部分抽象出來(lái)共用,并放置在設(shè)備驅(qū)動(dòng)程序之上,為用戶提供一個(gè)統(tǒng)一的 I/O界面。 這種對(duì)于所有設(shè)備都一樣的功能包括統(tǒng)一界面、 I/O緩沖、錯(cuò)誤處理與報(bào)告、設(shè)備的分配與調(diào)度、假脫機(jī)等。 有些操作系統(tǒng)把這層軟件獨(dú)立出來(lái),并以系統(tǒng)進(jìn)程方式運(yùn)行,稱之為設(shè)備服務(wù)器( server),如磁盤(pán)服務(wù)器、打印機(jī)服務(wù)器、終端服務(wù)器、網(wǎng)絡(luò)服務(wù)器等。 統(tǒng)一界面 獨(dú)立于設(shè)備的 I/O軟件的一個(gè)重要目標(biāo)是提供一個(gè)統(tǒng)一的 I/O界面,即讓所有的 I/O設(shè)備看上去一樣或相似。使用的辦法則是將設(shè)備驅(qū)動(dòng)界面標(biāo)準(zhǔn)化。 UNIX操作系統(tǒng)開(kāi)創(chuàng)的將 I/O設(shè)備抽象成特殊文件(設(shè)備文件),從而把所有的設(shè)備都納入了文件體系的做法是當(dāng)今最流行的 I/O統(tǒng)一界面模式。在這種模式下,對(duì)物理特征各異的各種設(shè)備都以統(tǒng)一的文件方式進(jìn)行管理和使用。 與數(shù)據(jù)文件一樣,系統(tǒng)也為每個(gè)設(shè)備文件建立一個(gè) i 節(jié)點(diǎn),用于實(shí)現(xiàn)對(duì)設(shè)備的管理。不同的是,數(shù)據(jù)文件及其FCB是對(duì)外存空間的抽象,設(shè)備文件及其 DCB則是對(duì)設(shè)備驅(qū)動(dòng)程序的抽象,而設(shè)備驅(qū)動(dòng)程序又是對(duì)物理設(shè)備(設(shè) 備控制器)的抽象。 這種模式為設(shè)備的使用提供了統(tǒng)一的界面,即設(shè)備可以以文件的形式進(jìn)行操作,對(duì)所有的設(shè)備都可以使
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1