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

正文內(nèi)容

操作系統(tǒng)operatingsystem(編輯修改稿)

2025-08-15 03:00 本頁面
 

【文章內(nèi)容簡介】 動(dòng)層是 I/O管理的主要部分。 各層之間的界面并不是死的,各層之間的確切界面是依賴于具體系統(tǒng)的。 amp。I/O軟件設(shè)計(jì)的一個(gè)關(guān)鍵目標(biāo)是設(shè)備獨(dú)立性。 除了直接與設(shè)備打交道的低層軟件之外,其他部分的軟件不依賴于硬件。 I/O軟件獨(dú)立于設(shè)備,當(dāng) I/O設(shè)備更新時(shí),沒有必要重新編寫全部設(shè)備軟件。在一些操作系統(tǒng)中,只要安裝了相應(yīng)的設(shè)備驅(qū)動(dòng)程序,就可以很方便地安裝好新的 I/O設(shè)備。甚至不必重新編譯就能將設(shè)備管理程序移到別處執(zhí)行。 I/O軟件的組成amp。概述 : I/O設(shè)備管理軟件一般分為四層: 中斷處理程序,設(shè)備驅(qū)動(dòng)程序,與設(shè)備無關(guān)的系統(tǒng)軟件以及用戶空間的 I/O軟件 。其中低層與硬件相關(guān),把硬件與較高層次的軟件隔離開來。而最高層軟件則向用戶提供一個(gè)友好的、統(tǒng)一的接口。 中斷處理程序 中斷 是指計(jì)算機(jī)在執(zhí)行期間, 系統(tǒng)內(nèi)發(fā)生任何非尋常的或非預(yù)期的急需處理事件 ,使得 CPU暫時(shí)中斷當(dāng)前的執(zhí)行程序而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完畢后又返回原來被中斷處繼續(xù)執(zhí)行或調(diào)度新的進(jìn)程執(zhí)行。 開中斷和關(guān)中斷是為了保證某段程序執(zhí)行的原子性。 中斷又分為 外中斷和內(nèi)中斷 。 外中斷 是指來自處理器和內(nèi)存之外的中斷,如 I/O設(shè)備發(fā)出的 I/O中斷等。內(nèi)中斷 是指在處理器和內(nèi)存內(nèi)部產(chǎn)生的中斷,又稱為陷阱( trap)。 中斷處理程序 I/O設(shè)備之間數(shù)據(jù)傳輸 I/O系統(tǒng)采用了中斷方式來控制 I/O設(shè)備和內(nèi)存與 CPU之間的數(shù)據(jù)傳送。 在硬件結(jié)構(gòu)上,這種方式要求 CPU與 I/O設(shè)備(或控制器)之間有相應(yīng)的中斷請(qǐng)求線,而且在 I/O設(shè)備控制器的控制狀態(tài)寄存器上有相應(yīng)的中斷允許位。 在中斷方式下, CPU與 I/O設(shè)備之間數(shù)據(jù)傳輸?shù)牟襟E:( 1)某個(gè)進(jìn)程需要數(shù)據(jù)時(shí),處理器發(fā)出指令啟動(dòng) I/O設(shè)備準(zhǔn)備數(shù)據(jù)。同時(shí),該指令還打開 I/O設(shè)備控制狀態(tài)寄存器中的中斷允許位,以便在需要時(shí),中斷程序可以被調(diào)度執(zhí)行。 中斷處理程序( 2)該進(jìn)程放棄處理器,等待相關(guān) I/O操作完成,此時(shí)進(jìn)程調(diào)度程序會(huì)調(diào)度其他就緒進(jìn)程使用處理器。另一種方式是該進(jìn)程在能夠運(yùn)行的情況下將繼續(xù)運(yùn)行,直到中斷信號(hào)來臨 。 ( 3)當(dāng) I/O操作完成時(shí), I/O設(shè)備控制器通過中斷請(qǐng)求線向處理器發(fā)出中斷信號(hào)。處理器收到中斷信號(hào)后,轉(zhuǎn)向預(yù)先設(shè)計(jì)好的中斷處理程序?qū)?shù)據(jù)傳送工作進(jìn)行相應(yīng)的處理。( 4)得到數(shù)據(jù)的進(jìn)程,轉(zhuǎn)入就緒狀態(tài)。在隨后的某個(gè)時(shí)刻,進(jìn)程調(diào)度程序會(huì)選中該進(jìn)程繼續(xù)工作。 中斷處理程序 I/O設(shè)備完成了 I/O操作后,控制器便向 CPU發(fā)出一中斷請(qǐng)求, CPU響應(yīng)中斷后便轉(zhuǎn)向中斷處理程序。 無論是哪種 I/O設(shè)備,其中斷處理程序的處理過程大體相同,其步驟如下 :( 1) CPU響應(yīng)中斷后,則關(guān)中斷,使其進(jìn)入不可再次響應(yīng)中斷的狀態(tài)。( 2)當(dāng)中斷處理程序開始執(zhí)行時(shí),用信號(hào)或信號(hào)量機(jī)制,將處于阻塞狀態(tài)的設(shè)備驅(qū)動(dòng)程序進(jìn)程喚醒。( 3)保護(hù)被中斷進(jìn)程的執(zhí)行現(xiàn)場。即將當(dāng)前處理機(jī)狀態(tài)字 PSW、程序計(jì)數(shù)器 PC以及被中斷進(jìn)程的 CPU現(xiàn)場(包含所有的 CPU寄存器)等都保存到中斷棧中。 中斷處理程序( 4)分析中斷原因,調(diào)用相應(yīng)的設(shè)備中斷處理程序。由處理器對(duì)各個(gè)中斷源進(jìn)行測試,以確定引起本次中斷的 I/O設(shè)備,并發(fā)送應(yīng)答信號(hào)給發(fā)中斷請(qǐng)求信號(hào)的進(jìn)程,使之消除該中斷請(qǐng)求信號(hào),然后將中斷處理程序的入口地址裝入到程序計(jì)數(shù)器中,使處理機(jī)轉(zhuǎn)向中斷處理程序。( 5)執(zhí)行中斷處理程序。該程序從設(shè)備控制器中讀出設(shè)備狀態(tài)。若是正常完成中斷,則驅(qū)動(dòng)程序進(jìn)程便可做結(jié)束處理;若還有命令,可再向控制器發(fā)送新的命令。若是異常中斷,則根據(jù)發(fā)生異常的原因做相應(yīng)處理。( 6)恢復(fù)被中斷進(jìn)程的現(xiàn)場或調(diào)度新進(jìn)程占據(jù)處理器。( 7)開中斷, CPU繼續(xù)執(zhí)行。 設(shè)備驅(qū)動(dòng)程序( 1)設(shè)備驅(qū)動(dòng)程序是在請(qǐng)求 I/O的進(jìn)程和設(shè)備控制器之間的一個(gè)通信程序。它把進(jìn)程的 I/O請(qǐng)求傳送給設(shè)備控制器,然后把設(shè)備控制器中所記錄的設(shè)備狀態(tài)、 I/O操作完成情況傳回請(qǐng)求 I/O的進(jìn)程 。 ( 2)它與 I/O設(shè)備的特性緊密相關(guān),對(duì)于不同類型的設(shè)備,應(yīng)配置不同的驅(qū)動(dòng)程序。 ( 3)它與 I/O控制方式緊密相關(guān),常用的設(shè)備控制方式為中斷驅(qū)動(dòng)和 DMA方式。( 4)設(shè)備驅(qū)動(dòng)程序與 I/O設(shè)備的硬件結(jié)構(gòu)密切聯(lián)系。其中全部是依賴于設(shè)備的代碼。設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)中唯一知道設(shè)備控制器細(xì)節(jié)及其用途的部分。 設(shè)備驅(qū)動(dòng)程序 ( 1)將接收到的抽象請(qǐng)求轉(zhuǎn)換為具體要求。 ( 2)檢查用戶 I/O請(qǐng)求的合法性。一個(gè) I/O設(shè)備只能完成一組特定的功能,若超出這些特定的功能,則認(rèn)為這次 I/O請(qǐng)求非法。 ( 3)讀出和檢查設(shè)備的狀態(tài)。在啟動(dòng)設(shè)備之前,要從設(shè)備控制器的狀態(tài)寄存器中讀出設(shè)備的狀態(tài)。若設(shè)備正處于空閑狀態(tài),則可以啟動(dòng)該設(shè)備進(jìn)行 I/O操作。 設(shè)備驅(qū)動(dòng)程序( 4)向設(shè)備控制器發(fā)出控制命令。驅(qū)動(dòng)程序向控制器中的命令寄存器傳送控制命令,啟動(dòng) I/O設(shè)備。隨后的 I/O是在設(shè)備控制器的控制下進(jìn)行的。若I/O操作所要完成的工作較多,需要一定的時(shí)間,驅(qū)動(dòng)程序進(jìn)程會(huì)把自己阻塞起來,直到中斷到來時(shí)才被喚醒。若 I/O操作毫無拖延地完成,驅(qū)動(dòng)程序無需阻塞。( 5)對(duì)各種可能的有關(guān)設(shè)備排隊(duì)、掛起、喚醒等操作進(jìn)行處理。( 6)及時(shí)響應(yīng)由控制器發(fā)來的中斷請(qǐng)求,并根據(jù)中斷類型調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。 獨(dú)立于設(shè)備的系統(tǒng)軟件 獨(dú)立于設(shè)備的系統(tǒng)軟件應(yīng)該實(shí)現(xiàn)的功能有 ,與設(shè)備驅(qū)動(dòng)程序的統(tǒng)一接口、設(shè)備命名、設(shè)備保護(hù)、提供與設(shè)備無關(guān)的邏輯塊、緩沖、塊設(shè)備的存儲(chǔ)分配、獨(dú)占設(shè)備的分配與釋放、處理錯(cuò)誤。 在操作系統(tǒng)的 I/O軟件中,對(duì) I/O設(shè)備進(jìn)行了統(tǒng)一命名,由獨(dú)立于設(shè)備的系統(tǒng)軟件負(fù)責(zé)把設(shè)備的符號(hào)名映射到相應(yīng)的設(shè)備驅(qū)動(dòng)上。 在 Linux系統(tǒng)中,像 /dev/hda5這樣的設(shè)備名,唯一地確定了一個(gè)特殊文件的 i節(jié)點(diǎn),這個(gè) i節(jié)點(diǎn)包含了主設(shè)備號(hào)和次設(shè)備號(hào)。主設(shè)備號(hào)用于尋找正確的設(shè)備驅(qū)動(dòng)程序,次設(shè)備號(hào)提供了設(shè)備驅(qū)動(dòng)程序的有關(guān)參數(shù),用來確定要讀寫的具體設(shè)備。 操作系統(tǒng)應(yīng)該對(duì)設(shè)備進(jìn)行必要的保護(hù),以防止無權(quán)用戶非法使用設(shè)備。 在計(jì)算機(jī)系統(tǒng)中,不同的磁盤可以有著不同的扇區(qū)尺寸。 獨(dú)立于設(shè)備的系統(tǒng)軟件就要向高層軟件屏蔽這一事實(shí),并提供一個(gè)大小統(tǒng)一的邏輯塊尺寸。 它可以將若干扇區(qū)合并成一個(gè)邏輯塊。這樣, 高層軟件只與抽象設(shè)備打交道 ,獨(dú)立于物理扇區(qū)的尺寸而使用等長的邏輯塊。 緩沖是獨(dú)立于設(shè)備的系統(tǒng)軟件應(yīng)提供的另一個(gè)目標(biāo)。 I/O設(shè)備和 CPU的處理速度不匹配是客觀存在的,為此,引入了緩沖技術(shù)。對(duì)于常見的塊設(shè)備和字符設(shè)備,都存在著緩沖的問題。 獨(dú)立于設(shè)備的系統(tǒng)軟件 在創(chuàng)建一個(gè)文件并向其中填入數(shù)據(jù)時(shí),就從磁盤空閑塊表中為文件分配新的存儲(chǔ)塊;刪除一個(gè)文件時(shí),就把釋放的存儲(chǔ)塊加入磁盤空閑塊表中并進(jìn)行統(tǒng)一的管理。 要求操作系統(tǒng)對(duì)獨(dú)占設(shè)備的使用請(qǐng)求進(jìn)行檢查,并根據(jù)該獨(dú)占設(shè)備的可用狀況來決定是否接收該請(qǐng)求。一個(gè)簡單的處理獨(dú)占設(shè)備請(qǐng)求的方法是, 進(jìn)程直接通過 “ OPEN” 打開設(shè)備特殊文件提出請(qǐng)求。 如果設(shè)備不能用,則 OPEN失敗,關(guān)閉該設(shè)備的同時(shí)釋放該設(shè)備。 獨(dú)立于設(shè)備的系統(tǒng)軟件 一般, 出錯(cuò)處理是由設(shè)備驅(qū)動(dòng)程序完成的,因?yàn)榇蠖鄶?shù)錯(cuò)誤是與設(shè)備密切相關(guān)的。 對(duì)于這類錯(cuò)誤,設(shè)備驅(qū)動(dòng)程序知道如何處理,例如重試、忽略、放棄。像由于磁盤塊受損而不能再讀這樣一類錯(cuò)誤,驅(qū)動(dòng)程序?qū)⒃O(shè)法重讀一定次數(shù),若仍有問題,則放棄并 通知設(shè)備獨(dú)立軟件,之后如何處理這個(gè)錯(cuò)誤就與設(shè)備無關(guān)了。若在讀用戶文件時(shí)出現(xiàn)錯(cuò)誤,操作系統(tǒng)會(huì)將該錯(cuò)誤信息 報(bào)告給用戶。若在讀系統(tǒng)數(shù)據(jù)結(jié)構(gòu)時(shí)出現(xiàn)錯(cuò)誤,比如磁盤的空閑塊表,操作系統(tǒng)只能打印一些錯(cuò)誤信息并終止運(yùn)行。 大部分 I/O軟件都包含在操作系統(tǒng)中,但仍有一小部分是由與用戶程序連接在一起的庫函數(shù)實(shí)現(xiàn)的,甚至完全由運(yùn)行于核外的程序構(gòu)成。 Spooling(假脫機(jī))系統(tǒng)是多道程序系統(tǒng)中處理獨(dú)占 I/O設(shè)備的一種方法。 圖 55總結(jié)了 I/O系統(tǒng)軟件的全部層次及每一層的主要功能。圖中的箭頭給出了 I/O部分的控制流。 用戶空間的 I/O軟件 用戶空間軟件獨(dú)立于設(shè)備的系統(tǒng)軟件設(shè)備驅(qū)動(dòng)程序中斷處理程序硬件 圖 55 I/O系統(tǒng)的分層及各層的主要功能 I/O請(qǐng)求 I/O回答下面以讀磁盤文件為例說明 I/O過程。 ( 1)當(dāng)用戶程序?qū)σ粋€(gè)已經(jīng)打開的文件發(fā)出 read()系統(tǒng)調(diào)用時(shí)。( 2)在內(nèi)核的系統(tǒng)調(diào)用代碼首先檢查調(diào)用參數(shù)的正確性。如果要輸入的數(shù)據(jù)已經(jīng)在內(nèi)存緩沖區(qū)中,則把數(shù)據(jù)返回給該進(jìn)程,完成 I/O請(qǐng)求。( 3)否則,需要執(zhí)行實(shí)際的 I/O操作。把該進(jìn)程從運(yùn)行 (run)隊(duì)列中移出并放入等待 (wait)設(shè)備的隊(duì)列,I/O請(qǐng)求被調(diào)度。最后, I/O子系統(tǒng)向該設(shè)備驅(qū)動(dòng)程序發(fā)送請(qǐng)求。依據(jù) OS,該請(qǐng)求或者由子程序調(diào)用發(fā)送或者由內(nèi)核消息發(fā)送。 用戶空間的 I/O軟件 ( 4)設(shè)備驅(qū)動(dòng)程序首先分配內(nèi)核緩沖區(qū)用于接收數(shù)據(jù),然后向設(shè)備控制器發(fā)命令。( 5)設(shè)備控制器操縱設(shè)備執(zhí)行數(shù)據(jù)傳輸。( 6)驅(qū)動(dòng)程序可以查詢 (poll)控制器的狀態(tài),也可以設(shè)置 DMA。這里假設(shè)用 DMA方式,當(dāng)數(shù)據(jù)傳輸完成時(shí),產(chǎn)生中斷。( 7)相應(yīng)的中斷處理程序通過中斷向量表接收到中斷,存儲(chǔ)一些必要的數(shù)據(jù),發(fā)信號(hào)給設(shè)備驅(qū)動(dòng)程序。 用戶空間的 I/O軟件 用戶空間的 I/O軟件 ( 8)設(shè)備驅(qū)動(dòng)程序收到信號(hào)后,確定是哪一個(gè) I/O請(qǐng)求完成了,確定請(qǐng)求的狀態(tài),向內(nèi)核 I/O子系統(tǒng)發(fā)請(qǐng)求完成的信號(hào)。( 9)內(nèi)核傳輸數(shù)據(jù)或返回代碼到用戶進(jìn)程的地址空間,把該用戶進(jìn)程從等待隊(duì)列移動(dòng)到就緒 (ready)隊(duì)列。( 10)當(dāng)調(diào)度進(jìn)程把 CPU分派給該用戶進(jìn)程時(shí), 該用戶進(jìn)程繼續(xù)執(zhí)行。 Linux輸入 /輸出 Linux操作系統(tǒng)把所有的設(shè)備都看成文件,能通過文件操作的界面來操作設(shè)備。 應(yīng)用程序通過設(shè)備文件名來尋訪具體的設(shè)備,而設(shè)備則像普通文件一樣受到文件系統(tǒng)訪問控制權(quán)限的保護(hù)。 應(yīng)用程序 可以通過系統(tǒng)調(diào)用 open()打開設(shè)備文件,建立起與目標(biāo)設(shè)備的連接。打開了代表著目標(biāo)設(shè)備的文件,即建立起與設(shè)備的連接以后,應(yīng)用程序就可以通過 read()、 write()等常規(guī)的文件操作對(duì)目標(biāo)設(shè)備進(jìn)行操作。 從應(yīng)用程序的角度看,設(shè)備文件邏輯上的空間是個(gè)線性空間。從這個(gè)邏輯空間到具體設(shè)備的物理空間的映射是由內(nèi)核提供的,并劃分成文件操作與設(shè)備驅(qū)動(dòng)兩個(gè)層次。 這樣,對(duì)于一個(gè)具體的設(shè)備來說,文件操作和設(shè)備驅(qū)動(dòng)就成為同一事物的兩個(gè)不同層次,而不是互相獨(dú)立或平行的兩個(gè)概念。 Linux輸入 /輸出 在 圖 56中 ,處于應(yīng)用層中的應(yīng)用程序進(jìn)程通過 “ 打開文件號(hào) ” fd與已打開文件的 file結(jié)構(gòu)相聯(lián)系,每個(gè) file結(jié)構(gòu)代表著對(duì)一個(gè)已打開文件操作的上下文。 對(duì)于普通文件,即磁盤文件,文件的邏輯空間在文件系統(tǒng)層內(nèi)按具體文件系統(tǒng)的結(jié)構(gòu)和規(guī)則映射到設(shè)備的線性邏輯空間,然后在設(shè)備驅(qū)動(dòng)層進(jìn)一步從設(shè)備的邏輯空間映射到設(shè)備的物理空間。 這樣,一共經(jīng)歷了 兩層映射 。而對(duì)于設(shè)備文件,則文件的邏輯空間通常直接就等價(jià)于設(shè)備的邏輯空間,所以在文件系統(tǒng)層就不需要有映射。 但是,也有些設(shè)備需要在文件系統(tǒng)層中有一些簡單的映射。從 圖中還可以看出 ,對(duì)同一個(gè)設(shè)備也可以通過不同的文件以不同的方式來操作。 Linux輸入 /輸出進(jìn)程File結(jié)構(gòu) File結(jié)構(gòu) File結(jié)構(gòu)普通文件從普通文件的
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1