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

正文內(nèi)容

[教育學(xué)]第5章設(shè)備管理(編輯修改稿)

2025-02-17 13:14 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 f(in,number)則從輸入緩沖隊(duì)列中取出一個(gè)裝滿輸入數(shù)據(jù)的緩沖區(qū) number作為輸入緩沖區(qū) sin,當(dāng) CPU從中提取完所需數(shù)據(jù)之后,系統(tǒng)調(diào)用過程put_buf(em, sin)將該緩沖區(qū)釋放和插入空白緩沖隊(duì)列 em中。 OS I/O 軟 件 I/O軟件的設(shè)計(jì)目標(biāo)和原則 從系統(tǒng)的觀點(diǎn)出發(fā),采用多種技術(shù)和措施,解決由于外部設(shè)備與 CPU速度不匹配所引起的問題,提高主機(jī)和外設(shè)的并行工作能力,提高系統(tǒng)效率,成為操作系統(tǒng)的一個(gè)重要目標(biāo)。 具體而言 , I/O軟件應(yīng)達(dá)到下面的幾個(gè)目標(biāo): OS 1) 與具體設(shè)備無關(guān) 對(duì)于 I/O系統(tǒng)中許多種類不同的設(shè)備,作為程序員,只需要知道如何使用這些資源來完成所需要的操作,而無需了解設(shè)備的有關(guān)具體實(shí)現(xiàn)細(xì)節(jié)。例如,應(yīng)用程序訪問文件時(shí),不必去考慮被訪問的是硬盤、軟盤還是 CDROM;對(duì)于管理軟件,也無需因?yàn)?I/O設(shè)備變化,而重新編寫涉及設(shè)備管理的程序。 為了提高 OS的可移植性和易適應(yīng)性, I/O軟件應(yīng)負(fù)責(zé)屏蔽設(shè)備的具體細(xì)節(jié),向高層軟件提供抽象的邏輯設(shè)備,并完成邏輯設(shè)備與具體物理設(shè)備的映射。 OS 2) 統(tǒng)一命名 要實(shí)現(xiàn)上述的設(shè)備無關(guān)性,其中一項(xiàng)重要的工作就是如何給 I/O設(shè)備命名。不同的操作系統(tǒng)有不同的命名規(guī)則,一般而言,是在系統(tǒng)中對(duì)各類設(shè)備采取預(yù)先設(shè)計(jì)的、統(tǒng)一的邏輯名稱進(jìn)行命名,所有軟件都以邏輯名稱訪問設(shè)備。這種統(tǒng)一命名與具體設(shè)備無關(guān),換言之,同一個(gè)邏輯設(shè)備的名稱,在不同的情況下可能對(duì)應(yīng)于不同的物理設(shè)備。 OS 3) 對(duì)錯(cuò)誤的處理 一般而言,錯(cuò)誤多數(shù)是與設(shè)備緊密相關(guān)的,因此對(duì)于錯(cuò)誤的處理,應(yīng)該盡可能在接近硬件的層面處理,在低層軟件能夠解決的錯(cuò)誤就不讓高層軟件感知,只有低層軟件解決不了的錯(cuò)誤才通知高層軟件解決。許多情況下,錯(cuò)誤恢復(fù)可以在低層得到解決,而高層軟件不需要知道。 OS 4) 緩沖技術(shù) 由于 CPU與設(shè)備之間的速度差異,無論是塊設(shè)備還是字符設(shè)備,都需要使用緩沖技術(shù)。對(duì)于不同類型的設(shè)備,其緩沖區(qū) (塊 )的大小是不一樣的,塊設(shè)備的緩沖是以數(shù)據(jù)塊為單位的,而字符設(shè)備的緩沖則以字節(jié)為單位。就是同類型的設(shè)備,其緩沖區(qū) (塊 )的大小也是存在差異的,如不同的磁盤,其扇區(qū)的大小有可能不同。因此, I/O軟件應(yīng)能屏蔽這種差異,向高層軟件提供統(tǒng)一大小的數(shù)據(jù)塊或字符單元,使得高層軟件能夠只與邏輯塊大小一致的抽象設(shè)備進(jìn)行交互。 OS 5) 設(shè)備的分配和釋放 對(duì)于系統(tǒng)中的共享設(shè)備,如磁盤等,可以同時(shí)為多個(gè)用戶服務(wù)。對(duì)于這樣的設(shè)備,應(yīng)該允許多個(gè)進(jìn)程同時(shí)對(duì)其提出 I/O請(qǐng)求。但對(duì)于獨(dú)占設(shè)備,如鍵盤和打印機(jī)等,在某一段時(shí)間只能供一個(gè)用戶使用,對(duì)其分配和釋放的不當(dāng),將引起混亂,甚至死鎖。對(duì)于獨(dú)占設(shè)備和共享設(shè)備帶來的許多問題, I/O軟件必須能夠同時(shí)進(jìn)行妥善的解決。 OS 6) I/O控制方式 針對(duì)具有不同傳輸速率的設(shè)備,綜合系統(tǒng)效率和系統(tǒng)代價(jià)等因素,合理選擇 I/O控制方式,如像打印機(jī)等低速設(shè)備應(yīng)采用中斷驅(qū)動(dòng)方式,而對(duì)磁盤等高速設(shè)備則采用 DMA控制方式等,以提高系統(tǒng)的利用率。為方便用戶, I/O軟件也應(yīng)屏蔽這種差異,向高層軟件提供統(tǒng)一的操作接口。 OS 在層次式結(jié)構(gòu)的 I/O軟件中 , 只要層次間的接口不變 ,對(duì)每個(gè)層次中的軟件進(jìn)行的修改都不會(huì)引起其下層或高層代碼的變更 , 僅最低層才會(huì)涉及到硬件的具體特性 。 通常把I/O 軟件組織成四個(gè)層次: (1) 用戶層軟件:實(shí)現(xiàn)與用戶交互的接口,用戶可直接調(diào)用在用戶層提供的、與 I/O操作有關(guān)的庫(kù)函數(shù),對(duì)設(shè)備進(jìn)行操作。 目前在 I/O軟件中已普遍采用了層次式結(jié)構(gòu), 將系統(tǒng)中的設(shè)備操作和管理軟件分為若干個(gè)層次,每一層都利用其下層提供的服務(wù),完成輸入、輸出功能中的某些子功能,并屏蔽這些功能實(shí)現(xiàn)的細(xì)節(jié),向高層提供服務(wù)。 OS (2) 設(shè)備獨(dú)立性軟件:負(fù)責(zé)實(shí)現(xiàn)與設(shè)備驅(qū)動(dòng)器的統(tǒng)一接口 、 設(shè)備命名 、 設(shè)備的保護(hù)以及設(shè)備的分配與釋放等 , 同時(shí)為設(shè)備管理和數(shù)據(jù)傳送提供必要的存儲(chǔ)空間 。 (3) 設(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)程序 。 (4) 中斷處理程序:用于保存被中斷進(jìn)程的 CPU環(huán)境,轉(zhuǎn)入相應(yīng)的中斷處理程序進(jìn)行處理,處理完后再恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)后返回到被中斷進(jìn)程。 OS 圖 516 I/O系統(tǒng)的層次及功能 用戶層軟件設(shè)備獨(dú)立性軟件設(shè)備驅(qū)動(dòng)程序中斷處理程序硬件I / O 應(yīng)答產(chǎn)生 I / O 請(qǐng)求、格式化 I / O 、 S po ol i ng映射、保護(hù)、分塊、緩沖、分配設(shè)置設(shè)備寄存器,檢查寄存器狀態(tài)執(zhí)行 I / O 操作OS 中斷處理程序 P179*5個(gè)步驟 1. 喚醒被阻塞的驅(qū)動(dòng) (程序 )進(jìn)程 當(dāng)中斷處理程序開始執(zhí)行時(shí),首先去喚醒處于阻塞狀態(tài)的驅(qū)動(dòng) (程序 )進(jìn)程。如果是采用了信號(hào)量機(jī)制,則可通過執(zhí)行 signal操作,將處于阻塞狀態(tài)的驅(qū)動(dòng) (程序 )進(jìn)程喚醒;在采用信號(hào)機(jī)制時(shí),將發(fā)送一信號(hào)給阻塞進(jìn)程。 OS 2. 保護(hù)被中斷進(jìn)程的 CPU環(huán)境 通常由硬件自動(dòng)將 處理機(jī)狀態(tài)字 PSW和程序計(jì)數(shù)器 (PC)中的內(nèi)容,保存在中斷保留區(qū) (棧 )中 ,然后把被中斷進(jìn)程的CPU現(xiàn)場(chǎng)信息 (即包括所有的 CPU寄存器,如通用寄存器、段寄存器等內(nèi)容 )都?jí)喝胫袛鄺V?,因?yàn)樵谥袛嗵幚頃r(shí)可能會(huì)用到這些寄存器。 OS 3. 轉(zhuǎn)入相應(yīng)的設(shè)備處理程序 由處理機(jī)對(duì)各個(gè)中斷源進(jìn)行測(cè)試,以確定引起本次中斷的 I/O設(shè)備,并發(fā)送一應(yīng)答信號(hào)給發(fā)出中斷請(qǐng)求的進(jìn)程,使之消除該中斷請(qǐng)求信號(hào),然后將相應(yīng)的設(shè)備中斷處理程序的入口地址裝入到程序計(jì)數(shù)器中,使處理機(jī)轉(zhuǎn)向中斷處理程序。 OS 4. 中斷處理 對(duì)于不同的設(shè)備,有不同的中斷處理程序。該程序首先從設(shè)備控制器中讀出設(shè)備狀態(tài),以判別本次中斷是正常完成中斷,還是異常結(jié)束中斷。若是前者,中斷程序便進(jìn)行結(jié)束處理;若還有命令,可再向控制器發(fā)送新的命令,進(jìn)行新一輪的數(shù)據(jù)傳送。若是異常結(jié)束中斷,則根據(jù)發(fā)生異常的原因做相應(yīng)的處理。 OS 5. 恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng) 當(dāng)中斷處理完成以后,便可將保存在中斷棧中的被中斷進(jìn)程的現(xiàn)場(chǎng)信息取出,并裝入到相應(yīng)的寄存器中 ,其中包括該程序下一次要執(zhí)行的指令的地址 N+處理機(jī)狀態(tài)字 PSW,以及各通用寄存器和段寄存器的內(nèi)容。這樣,當(dāng)處理機(jī)再執(zhí)行本程序時(shí),便從 N+1處開始,最終返回到被中斷的程序。 OS I/O操作完成后 , 驅(qū)動(dòng)程序必須檢查本次 I/O操作中是否發(fā)生了錯(cuò)誤 , 并向上層軟件報(bào)告 , 最終向調(diào)用者報(bào)告本次 I/O的執(zhí)行情況 。 除了上述的第 4步外 , 其它各步驟對(duì)所有 I/O設(shè)備都是相同的 , 因而對(duì)于某種操作系統(tǒng) , 例如 UNIX系統(tǒng) , 是把這些共同的部分集中起來 , 形成 中斷總控程序 。 每當(dāng)要進(jìn)行中斷處理時(shí) , 都要首先進(jìn)入中斷總控程序 。 而對(duì)于第 4步 ,則對(duì)不同設(shè)備須采用不同的設(shè)備中斷處理程序繼續(xù)執(zhí)行 。 圖518示出了中斷處理流程 。 OS 圖 518 中斷處理流程 喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程對(duì)被中斷進(jìn)程的C P U環(huán)境進(jìn)行保護(hù)分析中斷原因,轉(zhuǎn)入相應(yīng)的中斷處理程序終端中斷處理程序打印機(jī)中斷處理程序磁盤中斷處理程序?恢復(fù)被中斷進(jìn)程的 C P U現(xiàn)場(chǎng)?返回被中斷的進(jìn)程,繼續(xù)執(zhí)行中斷請(qǐng)求信號(hào)OS 設(shè)備驅(qū)動(dòng)程序 設(shè)備驅(qū)動(dòng)程序通常又稱為設(shè)備處理程序,它是 I/O進(jìn)程與設(shè)備控制器之間的通信程序,又由于它常以進(jìn)程的形式存在,故以后就簡(jiǎn)稱之為設(shè)備驅(qū)動(dòng)進(jìn)程。 其主要任務(wù)是接收上層軟件發(fā)來的抽象 I/O要求,如 read或 write命令,在把它轉(zhuǎn)換為具體要求后,發(fā)送給設(shè)備控制器,啟動(dòng)設(shè)備去執(zhí)行;此外,它也將由設(shè)備控制器發(fā)來的信號(hào)傳送給上層軟件。 OS 1. 設(shè)備驅(qū)動(dòng)程序的功能 (5個(gè) ) 為了實(shí)現(xiàn) I/O進(jìn)程與設(shè)備控制器之間的通信 , 設(shè)備驅(qū)動(dòng)程序應(yīng)具有以下功能: (1) 接收由設(shè)備獨(dú)立性軟件發(fā)來的命令和參數(shù) , 并將命令中的抽象要求轉(zhuǎn)換為具體要求 , 例如 , 將磁盤塊號(hào)轉(zhuǎn)換為磁盤的盤面 、 磁道號(hào)及扇區(qū)號(hào) 。 (2) 檢查用戶 I/O請(qǐng)求的合法性 , 了解 I/O設(shè)備的狀態(tài) , 傳遞有關(guān)參數(shù) , 設(shè)置設(shè)備的工作方式 。 (3) 發(fā)出 I/O命令。如果設(shè)備空閑,便立即啟動(dòng) I/O設(shè)備去完成指定的 I/O操作;如果設(shè)備處于忙碌狀態(tài),則將請(qǐng)求者的請(qǐng)求塊掛在設(shè)備隊(duì)列上等待。 OS (4) 及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請(qǐng)求 , 并根據(jù)其中斷類型調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理 。 (5) 對(duì)于設(shè)置有通道的計(jì)算機(jī)系統(tǒng),驅(qū)動(dòng)程序還應(yīng)能夠根據(jù)用戶的 I/O請(qǐng)求,自動(dòng)地構(gòu)成通道程序。 OS 2. 設(shè)備處理方式 (1) 為每一類設(shè)備設(shè)置一個(gè)進(jìn)程 , 專門用于執(zhí)行這類設(shè)備的 I/O操作 。 比如 , 為所有的交互式終端設(shè)置一個(gè)交互式終端進(jìn)程;又如 , 為同一類型的打印機(jī)設(shè)置一個(gè)打印進(jìn)程 。 (2) 在整個(gè)系統(tǒng)中設(shè)置一個(gè) I/O進(jìn)程 , 專門用于執(zhí)行系統(tǒng)中所有各類設(shè)備的 I/O操作 。 也可以設(shè)置一個(gè)輸入進(jìn)程和一個(gè)輸出進(jìn)程 , 分別處理系統(tǒng)中所有各類設(shè)備的輸入或輸出操作 。 (3) 不設(shè)置專門的設(shè)備處理進(jìn)程,而只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備處理程序 (模塊 ),供用戶進(jìn)程或系統(tǒng)進(jìn)程調(diào)用。 OS 3. 設(shè)備驅(qū)動(dòng)程序的特點(diǎn) 設(shè)備驅(qū)動(dòng)程序?qū)儆诘图?jí)的系統(tǒng)例程 , 它與一般的應(yīng)用程序及系統(tǒng)程序之間有下述明顯差異 : (1) 驅(qū)動(dòng)程序主要是指在請(qǐng)求 I/O的進(jìn)程與設(shè)備控制器之間的一個(gè)通信和轉(zhuǎn)換程序。它將進(jìn)程的 I/O請(qǐng)求經(jīng)過轉(zhuǎn)換后,傳送給控制器;又把控制器中所記錄的設(shè)備狀態(tài)和 I/O操作完成情況及時(shí)地反映給請(qǐng)求 I/O的進(jìn)程。 OS (2) 驅(qū)動(dòng)程序與設(shè)備控制器和 I/O設(shè)備的硬件特性緊密相關(guān) , 因而對(duì)不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序 。 例如 ,可以為相同的多個(gè)終端設(shè)置一個(gè)終端驅(qū)動(dòng)程序 , 但有時(shí)即使是同一類型的設(shè)備 , 由于其生產(chǎn)廠家不同 , 它們也可能并不完全兼容 , 此時(shí)也須為它們配置不同的驅(qū)動(dòng)程序 。 (3) 驅(qū)動(dòng)程序與 I/O設(shè)備所采用的 I/O控制方式緊密相關(guān)。常用的 I/O控制方式是中斷驅(qū)動(dòng)和 DMA方式,這兩種方式的驅(qū)動(dòng)程序明顯不同,因?yàn)楹笳邞?yīng)按數(shù)組方式啟動(dòng)設(shè)備及進(jìn)行中斷處理。 OS (4) 由于驅(qū)動(dòng)程序與硬件緊密相關(guān) , 因而其中的一部分必須用匯編語言書寫 。 目前有很多驅(qū)動(dòng)程序的基本部分 , 已經(jīng)固化在 ROM中 。 (5) 驅(qū)動(dòng)程序應(yīng)允許可重入 。 一個(gè)正在運(yùn)行的驅(qū)動(dòng)程序常會(huì)在一次調(diào)用完成前被再次調(diào)用 。 例如 , 網(wǎng)絡(luò)驅(qū)動(dòng)程序正在處理一個(gè)到來的數(shù)據(jù)包時(shí) , 另一個(gè)數(shù)據(jù)包可能到達(dá) 。 (6) 驅(qū)動(dòng)程序不允許系統(tǒng)調(diào)用。但是為了滿足其與內(nèi)核其它部分的交互,可以允許對(duì)某些內(nèi)核過程的調(diào)用,如通過調(diào)用內(nèi)核過程來分配和釋放內(nèi)存頁(yè)面作為緩沖區(qū),以及調(diào)用其它過程來管理 MMU定時(shí)器、 DMA控制器、中斷控制器等。 OS 4. 設(shè)備驅(qū)動(dòng)程序的處理過程 不同類型的設(shè)備應(yīng)有不同的設(shè)備驅(qū)動(dòng)程序 , 但大體上它們都可以分成兩部分 , 其中 , 除了要有能夠驅(qū)動(dòng) I/O設(shè)備工作的驅(qū)動(dòng)程序外 , 還需要有設(shè)備中斷處理程序 , 以處理 I/O完成后的工作 。 設(shè)備驅(qū)動(dòng)程序的主要任務(wù)是啟動(dòng)指定設(shè)備。但在啟動(dòng)之前,還必須完成必要的準(zhǔn)備工作,如檢測(cè)設(shè)備狀態(tài)是否為“ 忙 ” 等。在完成所有的準(zhǔn)備工作后,才最后向設(shè)備控制器發(fā)送一條啟動(dòng)命令。 OS 設(shè)備驅(qū)動(dòng)程序的處理過程 (P183) 1) 將抽象要求轉(zhuǎn)換為具體要求 2) 檢查 I/O請(qǐng)求的合法性 3) 讀出和檢查設(shè)備的狀態(tài) 4) 傳送必要的參數(shù) 5) 工作方式的設(shè)置 6) 啟動(dòng) I/O設(shè)備 OS 設(shè)備獨(dú)立性軟件 1. 設(shè)備獨(dú)立性的概念 基本含義 : 應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。為了實(shí)現(xiàn)設(shè)備獨(dú)立性而引入了邏輯設(shè)備和物理設(shè)備這兩個(gè)概念。在應(yīng)用程序中,使用邏輯設(shè)備名稱來請(qǐng)求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時(shí),還必須使用物理設(shè)備名稱。 兩方面的好處: 1) 設(shè)備分配時(shí)的靈活性 2) 易于實(shí)現(xiàn) I/O重定向 OS 2. 設(shè)備獨(dú)立性軟件 驅(qū)動(dòng)程序是一個(gè)與硬件 (或設(shè)備 )緊密相關(guān)的軟件。為了實(shí)現(xiàn)設(shè)備獨(dú)立性,必須再在驅(qū)動(dòng)程序之上設(shè)置一層軟件,稱為設(shè)備獨(dú)立性軟件。 主要功能可分為以下兩個(gè)方面:
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1