版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章設(shè)備管理計(jì)算機(jī)系統(tǒng)中,通常把處理機(jī)和主存儲(chǔ)器之外的部分統(tǒng)稱(chēng)為外圍設(shè)備,簡(jiǎn)稱(chēng)外設(shè)。外設(shè)種類(lèi)繁多,功能各異,涉及:機(jī)、電、光、磁、聲、自動(dòng)控制等多種學(xué)科。操作系統(tǒng)必須提供設(shè)備管理功能,讓用戶(hù)能簡(jiǎn)便、有效地使用各種外設(shè)。設(shè)備管理包括:設(shè)備獨(dú)立性設(shè)備驅(qū)動(dòng)程序計(jì)算機(jī)和外部設(shè)備的數(shù)據(jù)傳送控制方式設(shè)備的分配一些重要技術(shù)如中斷技術(shù)、緩沖技術(shù)、Spooling技術(shù)6.1概述6.1.1外設(shè)的分類(lèi)
1.按設(shè)備的從屬關(guān)系分類(lèi)2.按分配方式分類(lèi)3.按使用特性分類(lèi)4.按信息組織、傳送單位分類(lèi)系統(tǒng)設(shè)備。它是指操作系統(tǒng)生成時(shí),即安裝操作系統(tǒng)時(shí)就納入系統(tǒng)管理范圍的各種標(biāo)準(zhǔn)設(shè)備。用戶(hù)設(shè)備。它是指系統(tǒng)設(shè)備之外的非標(biāo)準(zhǔn)設(shè)備,在安裝操作系統(tǒng)時(shí)沒(méi)有配置,而由用戶(hù)自己安裝配置的設(shè)備。獨(dú)享設(shè)備。這類(lèi)設(shè)備一旦分配給某個(gè)實(shí)體(用戶(hù)、作業(yè)、任務(wù)或進(jìn)程)使用,在沒(méi)被釋放前,其他實(shí)體不得使用。共享設(shè)備。指允許多個(gè)進(jìn)程或作業(yè)同時(shí)使用的設(shè)備。虛擬設(shè)備。通過(guò)一定的輔助存儲(chǔ)器和控制程序,可將一臺(tái)獨(dú)享設(shè)備模擬為共享設(shè)備,這個(gè)具有了新特性的設(shè)備就稱(chēng)為虛擬設(shè)備。存儲(chǔ)設(shè)備。它是計(jì)算機(jī)用來(lái)存儲(chǔ)永久性信息的設(shè)備。輸入/輸出設(shè)備。輸入設(shè)備輸出設(shè)備字符設(shè)備。以字符為單位來(lái)組織、處理信息的設(shè)備。塊設(shè)備。以數(shù)據(jù)塊為單位來(lái)組織、處理信息的設(shè)備。具體應(yīng)用即插即用PnP設(shè)備非即插即用設(shè)備Linux將外部設(shè)備看作文件——設(shè)備文件,它以設(shè)備名作為文件名。應(yīng)用物理設(shè)備前——用mount命令掛裝到目錄樹(shù)上(稱(chēng)為加載)。使用完成后——用umount命令從目錄樹(shù)卸下(稱(chēng)為卸載),才可取走該設(shè)備。要掛裝到作為掛裝點(diǎn)的目錄,系統(tǒng)通常已準(zhǔn)備了一些常用掛裝點(diǎn),如果掛裝點(diǎn)不存在,必需要用mkdir命令建立,然后才可進(jìn)行掛裝。
6.1.2設(shè)備管理的功能1.設(shè)備管理應(yīng)為每一類(lèi)設(shè)備提供相應(yīng)的設(shè)備驅(qū)動(dòng)程序2.提供設(shè)備獨(dú)立性3.對(duì)緩沖區(qū)進(jìn)行管理4.對(duì)Spooling技術(shù)的支持。5.進(jìn)行設(shè)備分配6.提供中斷處理機(jī)制1.提供相應(yīng)的設(shè)備驅(qū)動(dòng)程序選擇打印機(jī)型號(hào)——確定打印機(jī)的驅(qū)動(dòng)程序。圖6.1選定打印機(jī)型號(hào)2.提供設(shè)備獨(dú)立性用戶(hù)使用或編程時(shí),打印機(jī)表現(xiàn)為一個(gè)普通的邏輯名稱(chēng)。系統(tǒng)為了識(shí)別其管理的所有設(shè)備,給每個(gè)設(shè)備一個(gè)唯一的不可更改的識(shí)別號(hào),稱(chēng)為設(shè)備的物理名。通過(guò)邏輯設(shè)備名和物理設(shè)備名,提供設(shè)備獨(dú)立性,這是設(shè)備管理的一項(xiàng)重要任務(wù)。圖6.2邏輯打印機(jī)3.對(duì)緩沖區(qū)進(jìn)行管理為了解決速度不匹配問(wèn)題,大部分外設(shè)都采用設(shè)置緩沖區(qū)的方法。
緩沖區(qū)可設(shè)置在內(nèi)存中,稱(chēng)為“軟件緩沖”;也可讓外設(shè)自帶專(zhuān)用的寄存器,作為硬件緩沖器。例如利用打印機(jī)打印一篇文章,CPU在打印機(jī)就緒后,可把數(shù)據(jù)輸出到緩沖區(qū),打印機(jī)則從緩沖區(qū)取出數(shù)據(jù)打印,就這樣一邊送一邊打,提高CPU的利用率。并且由于一次可以送一批數(shù)據(jù)到緩沖區(qū),因而節(jié)省了CPU的數(shù)據(jù)傳送時(shí)間。4.對(duì)Spooling技術(shù)的支持。Spooling(SimultaneousPeripheralOperationsOn-line)——也稱(chēng)為假脫機(jī)技術(shù)。此技術(shù)在磁盤(pán)上專(zhuān)門(mén)開(kāi)辟一個(gè)區(qū)域,CPU不需等到打印機(jī)處于就緒狀態(tài),就可直接將要打印的所有作業(yè)存放到磁盤(pán)中,排成打印隊(duì)列。合適的時(shí)候由專(zhuān)門(mén)的程序(在Windows中稱(chēng)為后臺(tái)進(jìn)程)把要打印的信息從磁盤(pán)送到打印機(jī),并管理打印機(jī)的打印工作。給人的感覺(jué)好像每個(gè)作業(yè)都有一臺(tái)打印機(jī)。也就是說(shuō),該技術(shù)將一臺(tái)獨(dú)享設(shè)備模擬成了共享設(shè)備。支持Spooling技術(shù)意味著支持虛擬設(shè)備。圖6.4等待打印機(jī)的隊(duì)列5.進(jìn)行設(shè)備分配多個(gè)進(jìn)程或作業(yè)都要求使用某種設(shè)備時(shí),設(shè)備管理根據(jù)一定的算法進(jìn)行設(shè)備分配,對(duì)暫時(shí)不能獲得設(shè)備的,系統(tǒng)將它們排在該設(shè)備請(qǐng)求隊(duì)列中,排隊(duì)順序決定了獲得設(shè)備的次序。而當(dāng)設(shè)備使用完畢,設(shè)備管理要及時(shí)回收。6.提供中斷處理機(jī)制如果打印過(guò)程中出現(xiàn)問(wèn)題(如掉電、缺紙、脫機(jī)等),需要CPU進(jìn)行緊急處理。系統(tǒng)采用了中斷技術(shù)——當(dāng)某個(gè)事件發(fā)生時(shí),系統(tǒng)中止現(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,處理完畢,返回被中斷處繼續(xù)執(zhí)行。當(dāng)出現(xiàn)問(wèn)題時(shí),中斷源立即向CPU發(fā)出一個(gè)中斷信號(hào),系統(tǒng)進(jìn)入中斷處理機(jī)制。6.2設(shè)備標(biāo)識(shí)與設(shè)備驅(qū)動(dòng)程序6.2.1邏輯設(shè)備與物理設(shè)備1.邏輯設(shè)備和物理設(shè)備的含義2.設(shè)備獨(dú)立性3.設(shè)備獨(dú)立性的優(yōu)點(diǎn)1.邏輯設(shè)備和物理設(shè)備的含義邏輯設(shè)備邏輯設(shè)備是對(duì)實(shí)際物理設(shè)備屬性的抽象,它并不限于某個(gè)具體設(shè)備。用戶(hù)在編程時(shí),不用關(guān)心系統(tǒng)具體配置了哪些設(shè)備,也不需要了解各種設(shè)備的物理特性,而只要按照慣例為所用到的設(shè)備起個(gè)邏輯名字,稱(chēng)為邏輯設(shè)備名。物理設(shè)備物理設(shè)備是一個(gè)具體的設(shè)備。系統(tǒng)為了能識(shí)別全部外設(shè),給每臺(tái)外設(shè)分配一個(gè)唯一不變的名字,稱(chēng)為物理設(shè)備名。通過(guò)引入邏輯設(shè)備和物理設(shè)備,可實(shí)現(xiàn)設(shè)備獨(dú)立性。2.設(shè)備獨(dú)立性設(shè)備獨(dú)立性也稱(chēng)為設(shè)備無(wú)關(guān)性,指用戶(hù)編程時(shí)所使用的設(shè)備與實(shí)際使用的設(shè)備無(wú)關(guān),用戶(hù)編程時(shí)使用邏輯設(shè)備名。用戶(hù)程序以邏輯設(shè)備名來(lái)請(qǐng)求使用某類(lèi)設(shè)備時(shí),系統(tǒng)將在該類(lèi)設(shè)備中,根據(jù)設(shè)備的使用情況,將任一臺(tái)合適的物理設(shè)備分配給該程序。如果用戶(hù)程序是以物理設(shè)備名來(lái)請(qǐng)求指定某臺(tái)設(shè)備,假如該設(shè)備有故障或正在被其他進(jìn)程使用,則用戶(hù)程序只能一直等待。采用邏輯設(shè)備名,可以使用戶(hù)程序獨(dú)立于分配給它的某類(lèi)設(shè)備的具體設(shè)備。2.設(shè)備獨(dú)立性使用邏輯設(shè)備名,還能使用戶(hù)程序獨(dú)立于所使用的某類(lèi)設(shè)備。例如,在Linux系統(tǒng)環(huán)境下,系統(tǒng)提供標(biāo)準(zhǔn)輸入/輸出,在用戶(hù)程序中的輸入/輸出都使用這兩個(gè)標(biāo)準(zhǔn)的I/O,實(shí)際運(yùn)行時(shí),可根據(jù)具體情況而定。如果配備打印機(jī),可將輸出信息送到打印機(jī)打?。蝗绻麤](méi)有配備打印機(jī),就把輸出重定向到某個(gè)指定文件,把要打印的信息送到該文件中。
3.設(shè)備獨(dú)立性的優(yōu)點(diǎn)(1)方便用戶(hù)編程。(2)便于程序移植。(3)提高了資源利用率。(4)能適應(yīng)多用戶(hù)多進(jìn)程的需要。
6.2.2實(shí)用系統(tǒng)中的邏輯設(shè)備和物理設(shè)備Linux系統(tǒng)中外部設(shè)備等同文件——設(shè)備文件;這些設(shè)備文件名就是系統(tǒng)規(guī)定的邏輯設(shè)備名;系統(tǒng)的/dev目錄下是各種設(shè)備:(1)以fd開(kāi)頭的文件是軟盤(pán)設(shè)備。
/dev/fd0——第一個(gè)軟盤(pán)驅(qū)動(dòng)器
/dev/fd1——第二個(gè)軟盤(pán)驅(qū)動(dòng)器
/dev/fd1h1440——第一軟驅(qū)中的3.5英寸高密軟盤(pán)。(2)以hd開(kāi)頭的文件是IDE硬盤(pán)設(shè)備。
/dev/hda——第一硬盤(pán)
hda1——第一個(gè)硬盤(pán)/dev/hda的第一個(gè)分區(qū)
hda、hdb、hdc、……——系統(tǒng)中的多個(gè)IDE硬盤(pán)(3)/dev/ttys——串行端口COM1,/dev/cua——調(diào)制解調(diào)器。(4)以lp開(kāi)頭的文件是并行端口設(shè)備。/dev/lp0——LPT1。以tty開(kāi)頭的文件是系統(tǒng)的虛擬終端以pty開(kāi)頭的文件是偽終端,用telnet遠(yuǎn)程登錄時(shí)用到/dev/console——控制臺(tái),即直接與系統(tǒng)相連的顯示器和鍵盤(pán)。Windows中的設(shè)備圖6.6設(shè)備管理器
6.2.3設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序是驅(qū)動(dòng)物理設(shè)備直接進(jìn)行各種操作的軟件,它可看作I/O系統(tǒng)和物理設(shè)備的接口,所有進(jìn)程對(duì)于設(shè)備的請(qǐng)求都要通過(guò)設(shè)備驅(qū)動(dòng)程序來(lái)完成。
1.設(shè)備控制器2.設(shè)備驅(qū)動(dòng)程序的引入3.設(shè)備驅(qū)動(dòng)程序的處理過(guò)程4.實(shí)用系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序1.設(shè)備控制器外設(shè)機(jī)械部件電子部件獨(dú)立出來(lái)設(shè)備控制器設(shè)備只有在設(shè)備控制器的控制下才能運(yùn)行,且一個(gè)控制器可以控制幾臺(tái)同類(lèi)設(shè)備。設(shè)備控制器CPU設(shè)備控制寄存器、狀態(tài)寄存器、數(shù)據(jù)寄存器、地址譯碼器等接收和識(shí)別CPU發(fā)來(lái)的命令
實(shí)現(xiàn)控制器與CPU之間、控制器和外設(shè)之間的數(shù)據(jù)交換
記錄設(shè)備的狀態(tài)(如設(shè)備就緒、設(shè)備忙、操作錯(cuò)誤等)供CPU了解
用于識(shí)別每個(gè)設(shè)備的地址
2.設(shè)備驅(qū)動(dòng)程序的引入將用戶(hù)命令中的邏輯設(shè)備名轉(zhuǎn)換為物理設(shè)備名,系統(tǒng)只是完成了第一步工作,至于要具體操縱這臺(tái)物理設(shè)備,就復(fù)雜多了。操作系統(tǒng)設(shè)計(jì)者把與物理設(shè)備直接有關(guān)的軟件部分獨(dú)立出來(lái),構(gòu)成設(shè)備驅(qū)動(dòng)程序系列,一般由設(shè)備商和軟硬件開(kāi)發(fā)商提供的針對(duì)某一種具體設(shè)備的驅(qū)動(dòng)程序組成。系統(tǒng)和用戶(hù)可根據(jù)需要,靈活配置物理設(shè)備,選擇相應(yīng)的驅(qū)動(dòng)程序裝載。
3.設(shè)備驅(qū)動(dòng)程序的處理過(guò)程(1)將抽象要求轉(zhuǎn)換為具體要求(控制器中寄存器內(nèi)容)。(2)檢查I/O請(qǐng)求的合法性。(3)檢查設(shè)備狀態(tài)。讀狀態(tài)寄存器內(nèi)容,看設(shè)備忙/閑狀態(tài)。(4)傳送必要的參數(shù)。(5)啟動(dòng)I/O設(shè)備。向設(shè)備控制器中的命令寄存器傳送控制命令,將外設(shè)啟動(dòng),然后可由設(shè)備控制器來(lái)控制外設(shè)進(jìn)行基本I/O操作。不同類(lèi)型的外設(shè),驅(qū)動(dòng)程序是不一樣的。4.實(shí)用系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序控制面板→管理工具→計(jì)算機(jī)管理→設(shè)備管理器→指定設(shè)備→屬性→驅(qū)動(dòng)程序→驅(qū)動(dòng)程序詳細(xì)清單圖6.7設(shè)備驅(qū)動(dòng)程序詳細(xì)資料圖6.8Windows設(shè)備及其的驅(qū)動(dòng)程序4.實(shí)用系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序Linux核心的設(shè)備驅(qū)動(dòng)程序本質(zhì)上是特權(quán)的、駐留內(nèi)存的低級(jí)的硬件控制例程的共享庫(kù)。Linux支持三類(lèi)的硬件設(shè)備:字符、塊和網(wǎng)絡(luò)。字符設(shè)備直接讀寫(xiě),沒(méi)有緩沖區(qū),例如系統(tǒng)的串行端口/dev/cua0和/dev/cua1。塊設(shè)備只能按照一個(gè)塊(一般是512字節(jié)或者1024字節(jié))的倍數(shù)進(jìn)行讀寫(xiě)。塊設(shè)備通過(guò)buffercache訪(fǎng)問(wèn),可以隨機(jī)存取。大多數(shù)的設(shè)備驅(qū)動(dòng)程序可以在需要的時(shí)候作為核心模塊加載,在不再需要的時(shí)候卸載。每一類(lèi)的設(shè)備驅(qū)動(dòng)程序:字符、塊和網(wǎng)絡(luò),都提供了通用的接口供核心在需要請(qǐng)求它們的服務(wù)的時(shí)候使用。6.3輸入/輸出控制方式6.3.1程序控制輸入/輸出方式6.3.2中斷輸入/輸出方式6.3.3直接存儲(chǔ)器訪(fǎng)問(wèn)方式6.3.4通道方式由誰(shuí)來(lái)做輸入/輸出的工作?CPU(程序)?DMA?通道?6.3.1程序控制輸入/輸出方式程序控制輸入/輸出方式又稱(chēng)為狀態(tài)驅(qū)動(dòng)輸入/輸出方式或應(yīng)答輸入/輸出方式——它采用程序查詢(xún)的方式直接參與數(shù)據(jù)的輸入/輸出。(注意:程序就是CPU)程序控制輸入/輸出方式——以鍵盤(pán)為例1、CPU向鍵盤(pán)的控制器發(fā)一條輸入命令,啟動(dòng)鍵盤(pán)進(jìn)行輸入操作,并將狀態(tài)寄存器的”忙/閑位”置1,表示忙。2、然后CPU運(yùn)行程序不斷測(cè)試狀態(tài)寄存器的完成位,看鍵盤(pán)是否完成了輸入。直到鍵盤(pán)已將數(shù)據(jù)輸入到了鍵盤(pán)控制器的數(shù)據(jù)寄存器中,狀態(tài)寄存器的完成位變?yōu)?時(shí),CPU才停止測(cè)試。3、CPU取走數(shù)據(jù)寄存器中的輸入數(shù)據(jù)。目前IDE接口硬盤(pán)仍在使用這種方式,稱(chēng)為PIO(ProgrammingInput/Output)模式。問(wèn)題:CPU等待每一個(gè)操作完成的時(shí)候會(huì)花費(fèi)大量時(shí)間“忙于什么也不做”(busydoingnothing)——CPU大部分時(shí)間都處于檢查和等待狀態(tài),整個(gè)計(jì)算系統(tǒng)的效率十分低下。6.3.2中斷輸入/輸出方式
CPU請(qǐng)求設(shè)備傳輸后不等待,轉(zhuǎn)去做其他更有用的事情,當(dāng)設(shè)備完成請(qǐng)求的時(shí)候向CPU發(fā)設(shè)備中斷。(系統(tǒng)中同一時(shí)刻可能有許多設(shè)備的請(qǐng)求在同時(shí)發(fā)生。)所謂中斷,就是指當(dāng)某個(gè)事件發(fā)生時(shí),向系統(tǒng)發(fā)出一個(gè)中斷信號(hào),系統(tǒng)于是中止現(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行相應(yīng)的中斷處理程序,完畢后返回?cái)帱c(diǎn)繼續(xù)執(zhí)行。需要在CPU和每一個(gè)設(shè)備控制器之間增加一條中斷請(qǐng)求線(xiàn),并在設(shè)備控制器的控制寄存器中增加一個(gè)中斷允許位。中斷輸入/輸出方式——以鍵盤(pán)輸入為例(1)開(kāi)中斷。CPU把啟動(dòng)位和中斷允許位為1的控制字寫(xiě)入鍵盤(pán)控制狀態(tài)寄存器中,啟動(dòng)鍵盤(pán)。(當(dāng)中斷允許位為1時(shí),中斷程序可以被調(diào)用。)(2)進(jìn)程等待鍵盤(pán)輸入完成(進(jìn)入等待隊(duì)列),由進(jìn)程調(diào)度程序調(diào)度其他就緒進(jìn)程使用CPU。(3)鍵盤(pán)啟動(dòng)后,當(dāng)數(shù)據(jù)寄存器裝滿(mǎn)后,鍵盤(pán)控制器通過(guò)中斷請(qǐng)求線(xiàn)向CPU發(fā)出中斷信號(hào)。(4)CPU暫停正在進(jìn)行的工作,轉(zhuǎn)向執(zhí)行中斷處理程序。(取出數(shù)據(jù)寄存器中的輸入數(shù)據(jù)送到內(nèi)存特定單元,并將等待輸入完成的進(jìn)程喚醒。)(5)中斷處理程序完畢,CPU返回?cái)帱c(diǎn)繼續(xù)執(zhí)行。(6)以后某個(gè)時(shí)刻,進(jìn)程調(diào)度程序選中正處于就緒狀態(tài)的那個(gè)進(jìn)程,該進(jìn)程從特定內(nèi)存單元中取出所需的數(shù)據(jù)繼續(xù)工作。圖6.9中斷輸入/輸出方式
中斷輸入/輸出方式優(yōu)點(diǎn):CPU不需等待數(shù)據(jù)傳輸完成,I/O設(shè)備與CPU并行工作,CPU的利用率因此提高。缺點(diǎn):CPU在響應(yīng)中斷后,還需要時(shí)間來(lái)執(zhí)行中斷服務(wù)程序。如果數(shù)據(jù)量大,需要多次執(zhí)行中斷程序,CPU的效率仍然不高。
6.3.3直接存儲(chǔ)器訪(fǎng)問(wèn)方式
DMA(DirectMemoryAccess)方式:在外部設(shè)備和主存之間建立了直接數(shù)據(jù)通路,即外設(shè)和主存之間可直接讀寫(xiě)數(shù)據(jù),且數(shù)據(jù)傳送的基本單位是數(shù)據(jù)塊。整塊數(shù)據(jù)的傳輸在一個(gè)稱(chēng)為DMA控制器的控制下完成。DMA數(shù)據(jù)傳輸期間不需CPU干預(yù),僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開(kāi)始或結(jié)束時(shí),才需CPU處理。
圖6.10DMA控制方式圖6.11DMA數(shù)據(jù)輸入處理過(guò)程使用DMA的時(shí)候設(shè)備驅(qū)動(dòng)程序必須小心。1、所有的DMA控制器都不了解虛擬內(nèi)存,它只能訪(fǎng)問(wèn)系統(tǒng)中的物理內(nèi)存。2、DMA控制器無(wú)法訪(fǎng)問(wèn)全部的物理內(nèi)存。DMA的地址寄存器的位數(shù)決定了它能訪(fǎng)問(wèn)的內(nèi)存地址。DMA方式缺點(diǎn):(1)外設(shè)數(shù)量眾多,配置DMA控制器,硬件的成本過(guò)大。(2)每一臺(tái)外設(shè)的DMA都需要CPU的I/O指令初始化,浪費(fèi)CPU時(shí)間。(3)由于DMA控制器實(shí)際上是使用竊取CPU工作周期的方法進(jìn)行工作的,它工作時(shí),CPU將被掛起。如果眾多外設(shè)都采用DMA方式工作,接連不斷的竊取周期,則會(huì)使CPU長(zhǎng)時(shí)間被掛起,從而降低了CPU的效率。DMA與中斷輸入/輸出方式進(jìn)行比較
(1)誰(shuí)的中斷次數(shù)多?(2)由誰(shuí)完成數(shù)據(jù)傳輸?(3)工作機(jī)制?軟件?硬件?適用范圍?(4)DMA與中斷是否矛盾?
6.3.4通道方式
6.3.4通道方式1.通道的概念通道是一個(gè)獨(dú)立于CPU的專(zhuān)管輸入/輸出控制的處理機(jī),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。通道有自己的一套簡(jiǎn)單的指令系統(tǒng),稱(chēng)為通道指令。每條通道指令規(guī)定了設(shè)備的一種操作,通道指令序列便是通道程序,通道執(zhí)行通道程序來(lái)完成規(guī)定動(dòng)作。1.通道的概念通道處理機(jī)寄存器部分控制部分?jǐn)?shù)據(jù)寄存器主存地址寄存器傳輸字節(jié)寄存器通道命令寄存器通道狀態(tài)寄存器分時(shí)控制地址分配數(shù)據(jù)傳送等通道靠執(zhí)行通道程序軟件完成數(shù)據(jù)傳輸,通道控制器的功能比DMA控制器更強(qiáng)大,它能夠承擔(dān)外設(shè)的大部分工作。
2.通道的種類(lèi)以字節(jié)為傳輸單位,可以分時(shí)地執(zhí)行多個(gè)通道程序。這是一種簡(jiǎn)單的共享通道,主要為多臺(tái)低速或中速的字符設(shè)備服務(wù)。它用開(kāi)關(guān)來(lái)控制對(duì)高速外設(shè)的選擇,在一段時(shí)間內(nèi)單獨(dú)為一臺(tái)外圍設(shè)備服務(wù),直到該設(shè)備的數(shù)據(jù)傳輸工作全部結(jié)束。然后通道再選擇另一臺(tái)外設(shè)為其提供服務(wù)。它分時(shí)地為多臺(tái)外圍設(shè)備服務(wù),每個(gè)時(shí)間片傳送一個(gè)數(shù)據(jù)塊。可以同時(shí)連接多臺(tái)高速存儲(chǔ)設(shè)備,因此,它能夠充分發(fā)揮高速通道的數(shù)據(jù)傳輸能力。3.通道工作過(guò)程CPU根據(jù)進(jìn)程的I/O請(qǐng)求,形成有關(guān)通道程序,然后執(zhí)行I/O指令啟動(dòng)通道。通道處理機(jī)開(kāi)始運(yùn)行CPU存放在主存中的通道程序,獨(dú)立負(fù)責(zé)外設(shè)和主存之間的數(shù)據(jù)傳送。當(dāng)整個(gè)I/O過(guò)程結(jié)束,才向CPU發(fā)出中斷請(qǐng)求。CPU響應(yīng)中斷,進(jìn)行關(guān)閉通道、記錄相關(guān)數(shù)據(jù)等工作。采用通道方式,CPU基本上擺脫了I/O傳輸工作,大大增強(qiáng)了CPU和外設(shè)的并行處理能力,有效地提高了整個(gè)系統(tǒng)的資源利用率。4.通道和DMA控制器的區(qū)別(1)DMA控制器和通道是硬件工作還是軟件工作?(2)連接外設(shè)的類(lèi)型限制?(3)和CPU的溝通方式?CPU的介入程度?對(duì)外設(shè)的控制?6.3.5Windows中的數(shù)據(jù)傳輸控制方式(1)端口 外設(shè)都是通過(guò)接口和系統(tǒng)相連的,接口中有數(shù)據(jù)寄存器、狀態(tài)寄存器、命令寄存器等,每個(gè)寄存器被分配一個(gè)稱(chēng)為I/O端口的地址編碼加以區(qū)分。故一個(gè)外設(shè)常有多個(gè)I/O端口地址,計(jì)算機(jī)通過(guò)不同的I/O端口來(lái)選擇外設(shè),并通過(guò)端口來(lái)和外設(shè)進(jìn)行通信。圖6.13鍵盤(pán)使用的端口地址(2)中斷向量 當(dāng)設(shè)備準(zhǔn)備接受或發(fā)送信息時(shí),可以用來(lái)發(fā)送信號(hào)以獲得處理器注意的硬件線(xiàn)路。每條線(xiàn)路用一個(gè)中斷向量IRQ來(lái)標(biāo)志。每個(gè)設(shè)備都必須有唯一的IRQ線(xiàn)路。圖6.14IRQ及其對(duì)應(yīng)的設(shè)備(3)DMA DMA是不涉及處理器的內(nèi)存訪(fǎng)問(wèn)。經(jīng)常用于內(nèi)存和外圍設(shè)備(如磁盤(pán)驅(qū)動(dòng)器)之間的直接數(shù)據(jù)傳輸。在PC機(jī)中,DMA控制器通常集成到大規(guī)模IC芯片中,一個(gè)DMA控制器只有四個(gè)獨(dú)立的DMA通道,為了使用更多的DMA通道,可由兩個(gè)DMA控制器組成組聯(lián)方式,將第二個(gè)DMA控制器連到第一個(gè)DMA控制器的第四個(gè)通道,因此一共有七個(gè)DMA通道可供使用。
圖6.15DMA通道6.3.5Windows中的數(shù)據(jù)傳輸控制方式一個(gè)設(shè)備要能正常工作,就必需為它分配合適的I/O端口地址、IRQ、DMA通道等資源。當(dāng)然,對(duì)于不使用DMA方式的設(shè)備,只需I/O和IRQ即可。
不同設(shè)備如果分配的I/O、IRQ、DMA資源有重復(fù),必然會(huì)發(fā)生資源沖突,輕者設(shè)備不能正常工作,重者導(dǎo)致系統(tǒng)崩潰。圖6.16沖突與共享6.4設(shè)備分配
由于外設(shè)、設(shè)備控制器、通道等資源有限,對(duì)多個(gè)請(qǐng)求使用設(shè)備的進(jìn)程,設(shè)備管理應(yīng)能合理、有效地進(jìn)行設(shè)備的分配。
圖6.17設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)就象進(jìn)程控制塊PCB、作業(yè)控制塊JCB一樣,系統(tǒng)為每個(gè)設(shè)備建立一個(gè)設(shè)備控制塊DCB,主要用來(lái)記錄本設(shè)備的各種情況。記錄控制器的情況。記錄通道的情況。整個(gè)系統(tǒng)有一張系統(tǒng)設(shè)備表SDT,存放了系統(tǒng)的所有設(shè)備,每個(gè)設(shè)備占一個(gè)表項(xiàng),內(nèi)容有設(shè)備標(biāo)識(shí)、設(shè)備類(lèi)型、設(shè)備DCB指針、還可包含設(shè)備驅(qū)動(dòng)程序入口等內(nèi)容。系統(tǒng)通過(guò)這些數(shù)據(jù)結(jié)構(gòu)對(duì)各種設(shè)備進(jìn)行記錄,再配合適當(dāng)?shù)姆峙洳呗院退惴?,就能?shí)施有效的設(shè)備分配。只有當(dāng)一個(gè)進(jìn)程經(jīng)過(guò)系統(tǒng)的設(shè)備分配,獲得了通道、控制器和所需設(shè)備后,才具備了進(jìn)行I/O操作的物理?xiàng)l件。
6.4.2設(shè)備分配思想設(shè)備分配的原則:充分提高設(shè)備的利用率;在不導(dǎo)致死鎖的情況下盡量滿(mǎn)足用戶(hù)的要求。設(shè)備分配的功能:接受用戶(hù)提出的邏輯設(shè)備分配的要求,把它轉(zhuǎn)換為對(duì)物理設(shè)備的分配。
1.設(shè)備分配方式如果將獨(dú)享設(shè)備虛擬為共享設(shè)備,破壞產(chǎn)生死鎖的互斥條件,那么死鎖就不會(huì)產(chǎn)生了。
靜態(tài)分配動(dòng)態(tài)分配在進(jìn)程剛建立就把其需要的設(shè)備全部分配給它,直到整個(gè)進(jìn)程運(yùn)行后被撤銷(xiāo)才釋放這些設(shè)備。靜態(tài)分配的優(yōu)點(diǎn)是不會(huì)產(chǎn)生死鎖。常用于單用戶(hù)系統(tǒng)。當(dāng)進(jìn)程運(yùn)行過(guò)程中提出對(duì)設(shè)備的請(qǐng)求,系統(tǒng)為這個(gè)進(jìn)程分配所需的設(shè)備,一旦該進(jìn)程使用完這個(gè)設(shè)備,立刻釋放出來(lái)給別的進(jìn)程。動(dòng)態(tài)分配使設(shè)備的利用率得到很大提高,但這種方式如果采取的分配算法不當(dāng),則有可能會(huì)導(dǎo)致死鎖。2.獨(dú)享設(shè)備調(diào)度算法(1)先來(lái)先服務(wù)(2)優(yōu)先級(jí)高者先服務(wù)當(dāng)有多個(gè)進(jìn)程對(duì)同一臺(tái)設(shè)備提出分配請(qǐng)求時(shí),根據(jù)進(jìn)程對(duì)某設(shè)備提出請(qǐng)求的時(shí)間順序,將這些進(jìn)程控制塊排成一個(gè)設(shè)備請(qǐng)求隊(duì)列,處于隊(duì)首的進(jìn)程最先獲得使用權(quán)。請(qǐng)求設(shè)備的進(jìn)程按優(yōu)先級(jí)排入設(shè)備請(qǐng)求隊(duì)列,在優(yōu)先級(jí)相同的情況下,再按時(shí)間順序排列,設(shè)備總是分配給隊(duì)首具有最高優(yōu)先級(jí)的進(jìn)程使用。
3.共享設(shè)備調(diào)度算法
共享設(shè)備的典型代表為磁盤(pán),完成磁盤(pán)某一個(gè)物理塊的訪(fǎng)問(wèn)要經(jīng)過(guò)三個(gè)時(shí)間段:尋道時(shí)間Ts旋轉(zhuǎn)延遲Tw讀寫(xiě)時(shí)間Trw尋道時(shí)間Ts是磁頭從當(dāng)前磁道移動(dòng)到目標(biāo)磁道所需的時(shí)間;
旋轉(zhuǎn)延遲Tw是當(dāng)磁頭停留在目標(biāo)磁道后,目標(biāo)物理塊從當(dāng)前位置旋轉(zhuǎn)到磁頭位置的時(shí)間;
讀寫(xiě)時(shí)間Trw是目標(biāo)物理塊內(nèi)容與內(nèi)存中對(duì)應(yīng)區(qū)交換的時(shí)間。
磁盤(pán)調(diào)度的原則是公平和高吞吐量,衡量指標(biāo)有:訪(fǎng)問(wèn)時(shí)間T:T=Ts+Tw+Trw=Ts+Tw平均訪(fǎng)問(wèn)時(shí)間Ta:Ta=Tsa+Twa+Trwa=Tsa+Twa3.共享設(shè)備調(diào)度算法
(1)先來(lái)先服務(wù) (FirstComeFirstServe)(2)最短尋道時(shí)間優(yōu)先 (ShortestServiceTimeFirst)(3)電梯算法(1)先來(lái)先服務(wù)FCFS將申請(qǐng)磁盤(pán)服務(wù)的進(jìn)程按先后順序排隊(duì),每次調(diào)度選擇位于隊(duì)首的進(jìn)程運(yùn)行。例:假定當(dāng)前磁頭處在第6道,等待服務(wù)的進(jìn)程有7個(gè),它們請(qǐng)求的磁道先后順序是:8、1、24、2、32、5、18。求所有進(jìn)程運(yùn)行后磁頭一共移動(dòng)的磁道數(shù)。 解:移動(dòng)的磁道數(shù)計(jì)算如下: 2+7+23+22+30+27+13=124公平,但吞吐量不高!(2)最短尋道時(shí)間優(yōu)先SSTF算法選擇離當(dāng)前磁頭位置最近的目標(biāo)物理塊優(yōu)先訪(fǎng)問(wèn),以保證最短的尋道時(shí)間。例:假定當(dāng)前磁頭處在第6道,等待服務(wù)的進(jìn)程有7個(gè),它們請(qǐng)求的磁道先后順序是:8、1、24、2、32、5、18。求所有進(jìn)程運(yùn)行后磁頭一共移動(dòng)的磁道數(shù)。 解:采用SSTF算法后的調(diào)度序列變?yōu)椋?/p>
8、5、2、1、18、24、32
移動(dòng)的磁道數(shù)計(jì)算如下:
2+3+3+1+17+6+8=40優(yōu)點(diǎn):降低了系統(tǒng)的平均尋道時(shí)間,提高了系統(tǒng)吞吐量;缺點(diǎn):磁盤(pán)內(nèi)外邊緣的磁道訪(fǎng)問(wèn)頻率降低,有失公平性。(3)電梯算法磁頭向一個(gè)方向移動(dòng)的過(guò)程中,選擇離磁頭最近的目標(biāo)物理塊訪(fǎng)問(wèn),直到?jīng)]有要訪(fǎng)問(wèn)的物理塊,然后磁頭變換移動(dòng)方向,以同樣的方式選擇訪(fǎng)問(wèn)磁盤(pán)的進(jìn)程。例:假定當(dāng)前磁頭處在第6道,等待服務(wù)的進(jìn)程有7個(gè),它們請(qǐng)求的磁道先后順序是:8、1、24、2、32、5、18。求所有進(jìn)程運(yùn)行后磁頭一共移動(dòng)的磁道數(shù)(假定磁頭的初始方向是由低磁道向高磁道)。解:采用電梯算法后的調(diào)度序列變?yōu)椋?、18、24、32、5、2、1移動(dòng)的磁道數(shù):2+10+6+8+27+3+1=57電梯算法兼顧了公平性和高吞吐量,目前較多采用電梯調(diào)度算法。4.設(shè)備
分配
程序如何對(duì)應(yīng)邏輯設(shè)備和物理設(shè)備?進(jìn)程是以物理設(shè)備名提出I/O請(qǐng)求的。而事實(shí)上進(jìn)程應(yīng)采用邏輯設(shè)備名來(lái)提出設(shè)備請(qǐng)求,以保證設(shè)備獨(dú)立性。系統(tǒng)建立邏輯設(shè)備表LUT(LogicalUnitTable),來(lái)對(duì)應(yīng)邏輯設(shè)備名和物理設(shè)備名的關(guān)系。在多用戶(hù)系統(tǒng)中,每個(gè)用戶(hù)進(jìn)程PCB中有一張LUT,當(dāng)進(jìn)程使用邏輯設(shè)備名請(qǐng)求I/O操作時(shí),系統(tǒng)通過(guò)查找LUT,即可找到對(duì)應(yīng)的物理設(shè)備。6.4.3Spooling技術(shù) Spooling又稱(chēng)假脫機(jī)技術(shù),現(xiàn)代操作系統(tǒng)都支持該技術(shù),它主要實(shí)現(xiàn)將獨(dú)享設(shè)備虛擬為共享設(shè)備。Spooling技術(shù)在大容量外存的支持下,由預(yù)輸入程序和預(yù)輸出程序來(lái)進(jìn)行數(shù)據(jù)傳輸。
圖6.19Spooling系統(tǒng)(1)在磁盤(pán)上開(kāi)辟兩個(gè)空間,分別稱(chēng)為“輸入井”和“輸出井”。
(2)預(yù)輸入進(jìn)程將輸入設(shè)備的數(shù)據(jù)寫(xiě)到磁盤(pán)輸入井上。
(3)當(dāng)用戶(hù)進(jìn)程需要輸入數(shù)據(jù)時(shí),直接從輸入井讀入內(nèi)存。
(4)用戶(hù)進(jìn)程將要輸出的數(shù)據(jù)送到磁盤(pán)輸出井上。
(5)預(yù)輸出進(jìn)程從輸出井中取出數(shù)據(jù),送給輸出設(shè)備進(jìn)行輸出。
當(dāng)用戶(hù)進(jìn)程需要輸入設(shè)備時(shí),可直接到共享設(shè)備磁盤(pán)輸入井中去取數(shù)據(jù);當(dāng)用戶(hù)進(jìn)程要輸出數(shù)據(jù)時(shí),將輸出數(shù)據(jù)放入輸出井即可。
由于輸入井/輸出井可以共享,于是獨(dú)享的輸入/輸出設(shè)備被模擬成可共享的設(shè)備。這種被模擬成的共享設(shè)備稱(chēng)為虛擬設(shè)備。
2.實(shí)用系統(tǒng)中的Spooling技術(shù)
在Windows中使用打印機(jī),假脫機(jī)方式是系統(tǒng)的默認(rèn)選項(xiàng),前面已進(jìn)行過(guò)介紹。Linux為每臺(tái)打印機(jī)都在磁盤(pán)上定義了一個(gè)輸出緩沖區(qū),即輸出井,要打印的作業(yè)以文件的形式存放到輸出緩沖區(qū),若有多個(gè)文件,就排成隊(duì)列的形式,即打印隊(duì)列。預(yù)輸出程序(Linux中稱(chēng)為打印機(jī)守護(hù)程序)定期掃描打印緩沖區(qū),將打印隊(duì)列中的文件按先進(jìn)先出依次送入打印機(jī),完成實(shí)際的打印工作。如果要用網(wǎng)絡(luò)的共享打印機(jī)進(jìn)行遠(yuǎn)程打印,則先將要打印的作業(yè)存放到本機(jī)的打印緩沖區(qū),然后由打印機(jī)守護(hù)程序把打印作業(yè)通過(guò)網(wǎng)絡(luò)傳輸?shù)街付ǖ拇蛴C(jī)中。
Linux文件系統(tǒng)中/usr/bin目錄下有五個(gè)有關(guān)打印的程序,分別為:
Lpd Lpr Lpq Lpc lprmlpd守護(hù)程序可以說(shuō)是打印機(jī)的靈魂,所有的打印作業(yè)都是由它來(lái)進(jìn)行處理的。
Lpr為提交打印作業(yè)命令,將文件放到打印緩沖區(qū)。
lpq命令就是顯示打印緩沖區(qū)中所有的作業(yè)及作業(yè)號(hào)清單。
lprm命令用于從打印緩沖區(qū)中刪除由lpq命令指定的作業(yè)。
lpc命令的功能非常強(qiáng)大,它是打印系統(tǒng)的控制程序,使用該命令,能檢查打印隊(duì)列及守護(hù)進(jìn)程的狀態(tài)。如果是root用戶(hù),甚至能啟動(dòng)和停止打印機(jī)的假脫機(jī)狀態(tài),使打印機(jī)不能工作以及重新安排打印隊(duì)列中作業(yè)的順序。
打印緩沖區(qū)到底哪里?打印緩沖區(qū)就是在磁盤(pán)上建立的一個(gè)目錄,打印隊(duì)列信息就存放在該目錄下。Linux系統(tǒng)采用的方法是設(shè)多個(gè)打印緩沖區(qū)目錄,一臺(tái)打印機(jī)對(duì)應(yīng)一個(gè)打印緩沖區(qū)目錄。所有的打印緩沖區(qū)目錄集中到一個(gè)主打印緩沖區(qū)目錄下。假如/usr/spool/lpd作為主打印緩沖區(qū)目錄,則每個(gè)單獨(dú)的打印機(jī)都在該目錄下有與這臺(tái)打印機(jī)同名的目錄,如名為printer1的打印機(jī),它的打印緩沖區(qū)目錄就是/usr/spool/lpd/print1。6.5設(shè)備管理涉及到的常用技術(shù)
設(shè)備管理是建立在各種針對(duì)性硬件機(jī)制基礎(chǔ)上的,需要硬件技術(shù)的配合。兩種硬件機(jī)制: 中斷技術(shù) 緩沖技術(shù)6.5.1中斷技術(shù)
在人機(jī)聯(lián)系、故障處理、實(shí)時(shí)處理、程序調(diào)試與監(jiān)測(cè)、任務(wù)分配等方面都需用到中斷技術(shù);在設(shè)備管理中,沒(méi)有中斷技術(shù)就不可能實(shí)現(xiàn)設(shè)備與主機(jī)、設(shè)備與設(shè)備、設(shè)備與用戶(hù)、設(shè)備與程序的并行。
1.中斷及中斷源的概念中斷:指某事件發(fā)生時(shí),CPU終止現(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,處理完畢返回?cái)帱c(diǎn)繼續(xù)執(zhí)行。引起中斷發(fā)生的事件就稱(chēng)為中斷源。中斷源向CPU發(fā)出的請(qǐng)求中斷處理信號(hào)稱(chēng)為中斷請(qǐng)求。CPU收到中斷請(qǐng)求后,中斷正在運(yùn)行的程序并轉(zhuǎn)向相應(yīng)的事件處理程序稱(chēng)為中斷響應(yīng)。相應(yīng)的事件處理程序稱(chēng)為中斷服務(wù)程序。執(zhí)行中斷服務(wù)程序的過(guò)程稱(chēng)為中斷處理。1.中斷及中斷源的概念常見(jiàn)中斷源類(lèi)型(1)外設(shè)引起的中斷。(2)CPU引起的中斷。(3)存儲(chǔ)器引起的中斷。(4)控制器引起的中斷。(5)各種總線(xiàn)引起的中斷。(6)實(shí)時(shí)時(shí)鐘的定時(shí)中斷。(7)實(shí)時(shí)控制引起的中斷。(8)故障引起的中斷。(9)為調(diào)試程序而設(shè)置的斷點(diǎn)。可屏蔽中斷不可屏蔽中斷2.中斷的分類(lèi)中斷分類(lèi)硬中斷(外中斷)內(nèi)中段軟中斷來(lái)自于處理機(jī)及內(nèi)存外部的中斷,都稱(chēng)為硬中斷或外中斷。例如,輸入/輸出中斷,操作員對(duì)機(jī)器進(jìn)行干預(yù)的中斷,各種定時(shí)器引起的時(shí)鐘中斷,調(diào)試程序中設(shè)置斷點(diǎn)引起的調(diào)試中斷等。在處理機(jī)和內(nèi)存內(nèi)部產(chǎn)生的中斷稱(chēng)為內(nèi)中段,也稱(chēng)為陷入或異常。例如,非法指令、數(shù)據(jù)格式錯(cuò)誤、主存保護(hù)錯(cuò)誤、地址越界錯(cuò)誤、各種運(yùn)算溢出錯(cuò)誤、除數(shù)為零錯(cuò)誤、數(shù)據(jù)校驗(yàn)錯(cuò)、進(jìn)程用戶(hù)態(tài)向系統(tǒng)態(tài)轉(zhuǎn)換等。由程序中執(zhí)行了中斷指令引起的中斷,稱(chēng)為軟中斷。UNIX系統(tǒng)也提供了軟中斷的處理功能,該中斷又叫信號(hào)處理機(jī)構(gòu),它是UNIX系統(tǒng)提供的一種進(jìn)程通信機(jī)構(gòu),利用它,進(jìn)程之間可相互通信。3.中斷優(yōu)先級(jí)當(dāng)系統(tǒng)中同時(shí)存在若干個(gè)中斷請(qǐng)求時(shí),CPU按它們的優(yōu)先級(jí)從高到低進(jìn)行處理。當(dāng)CPU響應(yīng)一個(gè)中斷源的請(qǐng)求,在進(jìn)行中斷處理時(shí),如果又有新的中斷源發(fā)出中斷請(qǐng)求,CPU是否響應(yīng)該中斷請(qǐng)求,則取決于中斷源的優(yōu)先級(jí)。中斷優(yōu)先級(jí)的確定主要由下列因素來(lái)決定:(1)中斷源的緊迫性。(2)設(shè)備的工作速度。(3)數(shù)據(jù)恢復(fù)的難易程度。4.中斷處理過(guò)程
6.5.2緩沖技術(shù)1.緩沖技術(shù)的引入有哪些使用緩沖技術(shù)的情況?(討論)2.緩沖的實(shí)現(xiàn)方法(1)硬件緩沖(2)軟件緩沖硬件緩沖采用專(zhuān)用硬件緩沖器,一般由外設(shè)自帶的專(zhuān)用寄存器構(gòu)成。硬件緩沖器的大小是衡量設(shè)備性能的一個(gè)指標(biāo)。但硬件緩沖器價(jià)格較昂貴。在內(nèi)存中專(zhuān)門(mén)開(kāi)辟若干單元作為緩沖區(qū)。系統(tǒng)通常采用這種方法。6.5.2緩沖技術(shù)3.緩沖的種類(lèi) 根據(jù)緩沖區(qū)設(shè)置個(gè)數(shù)的多少,可以分為: 單緩沖 雙緩沖 多緩沖 緩沖池。(1)單緩沖假如發(fā)送者和接收者速度不匹配,將會(huì)浪費(fèi)大量的等待時(shí)間,因此,通常不采用單緩沖。
(2)雙緩沖當(dāng)發(fā)送者和接收者的速度相差很大時(shí),雙緩沖還是不能解決兩者并行工作問(wèn)題。雙緩沖在實(shí)際系統(tǒng)中采用得很少。(3)環(huán)形緩沖裝入數(shù)據(jù):將輸入數(shù)據(jù)送入EMPTY指向的緩沖區(qū),填滿(mǎn)后,讓EMPTY指向下一個(gè)空緩沖區(qū)。每次申請(qǐng)一個(gè)空緩沖區(qū)時(shí),要判斷EMPTY是否與FULL相等,若相等,表示系統(tǒng)中已沒(méi)有空緩沖區(qū),輸入進(jìn)程需要等待。提取數(shù)據(jù):直接到FULL所指緩沖區(qū)中取,然后讓FULL指向下一個(gè)滿(mǎn)緩沖區(qū)。同樣需判斷FULL是否和EMPTY相等,若相等,表示系統(tǒng)已無(wú)數(shù)據(jù)可取,輸出進(jìn)程等待。環(huán)形緩沖一般作為設(shè)備的專(zhuān)用資源,有兩個(gè)缺點(diǎn):①如果系統(tǒng)的設(shè)備較多,就要占用大量的緩沖區(qū),增加內(nèi)存開(kāi)銷(xiāo)。②緩沖區(qū)利用率不高,可能會(huì)出現(xiàn)某個(gè)設(shè)備的緩沖區(qū)不夠用,而其他設(shè)備有多個(gè)空緩沖區(qū)。(4)緩沖池
緩沖池由多個(gè)大小相同的緩沖區(qū)組成,緩沖池中的緩沖區(qū)被系統(tǒng)中所有進(jìn)程共享使用,由管理程序統(tǒng)一對(duì)緩沖池進(jìn)行管理。為便于管理,系統(tǒng)將相同類(lèi)型的緩沖區(qū)鏈成一個(gè)隊(duì)列,緩沖池中共有三種隊(duì)列。為便于管理,系統(tǒng)將相同類(lèi)型的緩沖區(qū)鏈成一個(gè)隊(duì)列,緩沖池中共有三種隊(duì)列。這三種隊(duì)列各有指向其首緩沖區(qū)的隊(duì)首指針和指向尾緩沖區(qū)的隊(duì)尾指針。對(duì)緩沖區(qū)進(jìn)行讀、寫(xiě)操作時(shí)。從隊(duì)列中取下的緩沖區(qū)稱(chēng)為工作緩沖區(qū),緩沖池中有四種工作緩沖區(qū):緩沖池的工作過(guò)程(輸入)①②③④輸出過(guò)程?CPU需要磁盤(pán)數(shù)據(jù)時(shí),先到高速緩沖區(qū)中讀數(shù)據(jù),若數(shù)據(jù)不在高速緩沖區(qū)中,則啟動(dòng)磁盤(pán)I/O,并將從磁盤(pán)讀取的數(shù)據(jù)存放到高速緩沖區(qū)中。要往磁盤(pán)上寫(xiě)數(shù)據(jù)時(shí),CPU也是先往高速緩沖區(qū)中寫(xiě),以防隨后還要訪(fǎng)問(wèn)這些數(shù)據(jù),等到將來(lái)不再需要時(shí)才真正將數(shù)據(jù)寫(xiě)回到磁盤(pán)上。Linux系統(tǒng)緩沖池塊設(shè)備緩沖池字符設(shè)備緩沖池4.緩沖技術(shù)的應(yīng)用由高速緩沖區(qū)組成,緩沖區(qū)以磁盤(pán)物理塊大小為單位。字符緩沖區(qū)的大小以字節(jié)為單位。6.6.1Windows的設(shè)備管理
1.Windows設(shè)備管理的特點(diǎn)2.Windows的注冊(cè)表1.Windows設(shè)備管理的特點(diǎn)(1)對(duì)即插即用功能的支持。系統(tǒng)將自動(dòng)為新硬件分配不發(fā)生沖突的I/O、IRQ、DMA等資源,并為其安裝合適的設(shè)備驅(qū)動(dòng)程序。(2)Windows具有動(dòng)態(tài)設(shè)備驅(qū)動(dòng)程序機(jī)制,支持動(dòng)態(tài)加載設(shè)備驅(qū)動(dòng)程序。支持使用USB接口等設(shè)備的熱插拔技術(shù)。(3)Windows采用了緩沖技術(shù)。Windows還利用Spooling技術(shù),使打印機(jī)能實(shí)現(xiàn)后臺(tái)打印。(4)在Windows中,用戶(hù)可通過(guò)控制面板調(diào)整系統(tǒng)設(shè)置。2.Windows的注冊(cè)表無(wú)論對(duì)硬件還是軟件的所有管理都可利用注冊(cè)表來(lái)進(jìn)行。注冊(cè)表是Windows中的核心數(shù)據(jù)庫(kù)。該注冊(cè)表包含計(jì)算機(jī)中每個(gè)用戶(hù)的配置文件、有關(guān)系統(tǒng)硬件的信息、安裝的程序及屬性設(shè)置。Windows在其運(yùn)行中不斷引用這些信息。注冊(cè)表由5個(gè)樹(shù)狀結(jié)構(gòu)的子樹(shù)組成每個(gè)子樹(shù)又可包括二級(jí)項(xiàng)、二級(jí)子樹(shù)下是三級(jí)項(xiàng)……,構(gòu)成樹(shù)狀層次結(jié)構(gòu)。右邊窗格中則是所選項(xiàng)下的值項(xiàng),包含名稱(chēng)與數(shù)據(jù)。HKEY_CURRENT_USER,包含當(dāng)前登錄用戶(hù)的配置信息的根目錄。用戶(hù)文件夾、屏幕顏色和“控制面板”設(shè)置存儲(chǔ)在此處。該信息被稱(chēng)為用戶(hù)配置文件。HKEY_USERS,包含計(jì)算機(jī)上所有用戶(hù)的配置文件的根目錄。HKEY_CURRENT_USER是HKEY_USERS的子項(xiàng)。HKEY_LOCAL_MACHINE,包含針對(duì)該計(jì)算機(jī)的配置信息。在系統(tǒng)監(jiān)視器上所看到的系統(tǒng)資源使用情況,實(shí)際上就是存放在HKEY_LOCAL_MACHINE主鍵中。HKEY_CLASSES_ROOT,是HKEY_LOCAL_MACHINE\Software的子項(xiàng)。此處存儲(chǔ)的信息可以確保當(dāng)使用Windows資源管理器打開(kāi)文件時(shí),將打開(kāi)正確的程序。HKEY_CURRENT_CONFIG,包含本地計(jì)算機(jī)在系統(tǒng)啟動(dòng)時(shí)所用的硬件配置文件信息。注冊(cè)表包含了上千個(gè)鍵,每個(gè)鍵對(duì)應(yīng)著系統(tǒng)的不同信息,我們可通過(guò)直接修改鍵值來(lái)更改整個(gè)系統(tǒng)的設(shè)置??梢哉f(shuō)注冊(cè)表將操作系統(tǒng)和軟硬件緊密結(jié)合起來(lái),它包含了操作系統(tǒng)的設(shè)備管理等多種功能。6.6.2Linux的設(shè)備管理(1)設(shè)備文件設(shè)備文件是Linux系統(tǒng)很重要的一個(gè)特色。任何設(shè)備都必需通過(guò)掛裝點(diǎn)掛裝到目錄樹(shù)上才能被訪(fǎng)問(wèn)。(2)Linux支持一定的即插即用功能,但沒(méi)Windows那么完善。(3)Linux的設(shè)備驅(qū)動(dòng)程序是作為系統(tǒng)內(nèi)核的一部分運(yùn)行的,它的執(zhí)行效率會(huì)從根本上影響系統(tǒng)的整體性能。Linux的設(shè)備驅(qū)動(dòng)程序具有動(dòng)態(tài)性、可裝載性,在需要時(shí)可作為內(nèi)核模塊裝入,不需要時(shí)卸載即可。(4)Linux采用了緩沖技術(shù)來(lái)改進(jìn)塊設(shè)備的數(shù)據(jù)傳輸速度和效率,讀、寫(xiě)塊設(shè)備主要和高速緩存打交道。Linux還采用Spooling技術(shù)提高了打印機(jī)的工作效率。(5)Linux是具有設(shè)備獨(dú)立性的操作系統(tǒng),它的內(nèi)核具有高度適應(yīng)能力,設(shè)備獨(dú)立性的關(guān)鍵在于內(nèi)核的適應(yīng)能力。其他操作系統(tǒng)只允許一定數(shù)量或一定種類(lèi)的外部設(shè)備連接。而設(shè)備獨(dú)立性的操作系統(tǒng)能夠容納任意種類(lèi)及任意數(shù)量的設(shè)備。另外,由于用戶(hù)可以免費(fèi)得到Linux的內(nèi)核源代碼,因此,用戶(hù)可以修改內(nèi)核源代碼,以便適應(yīng)新增加的外部設(shè)備。6.7本章小結(jié)由于外設(shè)的多樣性和復(fù)雜性,設(shè)備管理是操作系統(tǒng)最為繁雜的一個(gè)部分。為了方便用戶(hù)使用外設(shè),系統(tǒng)通過(guò)引入邏輯設(shè)備名和物理設(shè)備名,實(shí)現(xiàn)了設(shè)備獨(dú)立性,并且根據(jù)一定的算法和策略對(duì)設(shè)備進(jìn)行合理分配。在設(shè)備管理中,設(shè)備驅(qū)動(dòng)程序起了重要的作用。CPU對(duì)I/O設(shè)備的輸入/輸出控制方式有四種,發(fā)展過(guò)程是盡量減少CPU對(duì)外設(shè)的干預(yù)。設(shè)備管理中還引入了中斷、緩沖、Spooling等重要技術(shù)。Windowsxp和Linux的設(shè)備管理功能不僅都很強(qiáng)大,而且還各具特色。本章結(jié)束,可記得做作業(yè)喲!第七章操作系統(tǒng)的整體設(shè)計(jì)第七章操作系統(tǒng)的整體設(shè)計(jì)操作系統(tǒng)的整體設(shè)計(jì)經(jīng)歷了系統(tǒng)開(kāi)發(fā)和程序設(shè)計(jì)的各個(gè)階段,它是伴隨著系統(tǒng)工程和程序設(shè)計(jì)方法的發(fā)展而成長(zhǎng)的。本章的目的是更全面、更深入的了解操作系統(tǒng)的整體設(shè)計(jì)。
操作系統(tǒng)的各種模型分布式操作系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)Windows的網(wǎng)絡(luò)操作系統(tǒng)Linux操作系統(tǒng)7.1操作系統(tǒng)的各種模型由于操作系統(tǒng)是程序的集合,因此,操作系統(tǒng)的模型必然要決定程序之間的相互關(guān)系。
根據(jù)程序之間的調(diào)用關(guān)系可以將操作系統(tǒng)分為:網(wǎng)絡(luò)模型層次模型根據(jù)程序作用范圍及包裝手段可將操作系統(tǒng)分為:面向過(guò)程的模型面向?qū)ο蟮哪P?.1.1網(wǎng)狀結(jié)構(gòu)與層次結(jié)構(gòu)
1.??炷K模塊化的方法模塊的獨(dú)立性高內(nèi)聚低耦合將整個(gè)操作系統(tǒng)根據(jù)設(shè)計(jì)所要求的子功能劃分成單獨(dú)命名、獨(dú)立編址的程序部分,這些程序部分被稱(chēng)為模塊。采用模塊化的方法可以使設(shè)計(jì)者更清晰的了解整個(gè)系統(tǒng)的結(jié)構(gòu),并且可以采用分而治之的方法來(lái)完成每一個(gè)程序段的設(shè)計(jì)。所謂獨(dú)立性是指每個(gè)模塊只涉及操作系統(tǒng)所要求的某一個(gè)或某幾個(gè)具體的子功能,并且有唯一的入口和出口,模塊與模塊之間的接口簡(jiǎn)單明了。在模塊內(nèi)部,各個(gè)功能部分的聯(lián)系代表模塊的內(nèi)聚性,聯(lián)系越緊密,內(nèi)聚程度越高。而在模塊之間,相互交流信息與控制的程度代表耦合性,模塊間的聯(lián)系越高,耦合程度越高。模塊之間的調(diào)用關(guān)系可以有不同的組織方式,最典型的有網(wǎng)狀結(jié)構(gòu)和層次結(jié)構(gòu)。2.網(wǎng)狀結(jié)構(gòu)如果任意兩個(gè)模塊之間可以相互調(diào)用,并且系統(tǒng)沒(méi)有明確的上級(jí)模塊和下級(jí)模塊的區(qū)別,該系統(tǒng)的結(jié)構(gòu)稱(chēng)為網(wǎng)狀結(jié)構(gòu)。7.1.1網(wǎng)狀結(jié)構(gòu)與層次結(jié)構(gòu)
系統(tǒng)服務(wù)代表操作系統(tǒng)所提供的面向用戶(hù)的功能和界面。中間的模塊代表各種操作系統(tǒng)的子功能。各個(gè)子功能之間根據(jù)需要可以形成相互的調(diào)用關(guān)系,既可以橫向調(diào)用,也可以上下調(diào)用。網(wǎng)狀結(jié)構(gòu)的好處是:可以很輕松地從一個(gè)子功能轉(zhuǎn)向另一個(gè)子功能,這給系統(tǒng)的運(yùn)行帶來(lái)了靈活性。
如果對(duì)網(wǎng)狀結(jié)構(gòu)不加限制,有可能形成循環(huán)調(diào)用的情況,安全的隱患隨時(shí)可能導(dǎo)致系統(tǒng)的崩潰。
3.層次結(jié)構(gòu)依據(jù)操作系統(tǒng)各子功能與計(jì)算機(jī)系統(tǒng)不同種類(lèi)的資源之間的相互關(guān)系,將操作系統(tǒng)程序模塊劃歸于不同的層次,層次之間形成單向調(diào)用關(guān)系。7.1.1網(wǎng)狀結(jié)構(gòu)與層次結(jié)構(gòu)
系統(tǒng)服務(wù)處于最上層,它通過(guò)調(diào)用下層的作業(yè)管理來(lái)實(shí)現(xiàn)對(duì)用戶(hù)的交互和控制。當(dāng)需要使用信息資源時(shí),由作業(yè)管理調(diào)用文件系統(tǒng)來(lái)實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)與流動(dòng);文件存儲(chǔ)與流動(dòng)所涉及的存儲(chǔ)介質(zhì)的使用需調(diào)用內(nèi)存管理和I/O設(shè)備管理模塊;上層各個(gè)模塊的實(shí)現(xiàn)又必然是不同進(jìn)程的實(shí)現(xiàn),因此,需要調(diào)用處理機(jī)調(diào)度模塊。處理機(jī)調(diào)度處于系統(tǒng)的底層,它只能被上層的各個(gè)模塊調(diào)用而不能調(diào)用上層模塊。調(diào)用只能朝一個(gè)方向進(jìn)行,因此不會(huì)產(chǎn)生循環(huán)調(diào)用的情況。如果按層次對(duì)模塊賦予對(duì)應(yīng)的權(quán)限,就很容易實(shí)現(xiàn)對(duì)資源的保護(hù)。Windows和Linux都采用了層次結(jié)構(gòu)進(jìn)行設(shè)計(jì)。
某些操作系統(tǒng)的設(shè)計(jì)者經(jīng)過(guò)權(quán)衡以后,在同層模塊之間使用少量的網(wǎng)狀結(jié)構(gòu)。比如UNIX系統(tǒng)的有些底層模塊之間可以相互調(diào)用。7.1.2面向過(guò)程與面向?qū)ο?/p>
1.面向過(guò)程的操作系統(tǒng)
早期的操作系統(tǒng)都是采用的面向過(guò)程的設(shè)計(jì)方法。在面向過(guò)程的操作系統(tǒng)中,要查看資源的使用狀況非常容易,只需要找到代表該資源的數(shù)據(jù)結(jié)構(gòu)就可以對(duì)資源的情況一目了然。如果想實(shí)現(xiàn)對(duì)某個(gè)資源的新的動(dòng)作,只需要針對(duì)該數(shù)據(jù)結(jié)構(gòu)再編制一段程序就可以完成了。
什么是面向過(guò)程的程序設(shè)計(jì)?問(wèn)題:只要任何一個(gè)程序操作發(fā)生失誤,對(duì)應(yīng)的數(shù)據(jù)就可能出錯(cuò),隨著程序之間的相互調(diào)用不斷擴(kuò)大,最后擴(kuò)展到整個(gè)系統(tǒng),導(dǎo)致整個(gè)系統(tǒng)錯(cuò)誤的發(fā)生。另外,大量的全局變量使系統(tǒng)安全性受到威脅。2.面向?qū)ο蟮牟僮飨到y(tǒng)
(1)對(duì)象(2)消息(3)類(lèi)(4)繼承7.1.2面向過(guò)程與面向?qū)ο?/p>
讓我們來(lái)回憶一下過(guò)去學(xué)過(guò)的內(nèi)容?。?)對(duì)象2.面向?qū)ο蟮牟僮飨到y(tǒng)對(duì)象是一組屬性和一組針對(duì)該屬性的操作。屬性和操作在對(duì)象內(nèi)部相互作用,對(duì)象的狀態(tài)通過(guò)屬性的值來(lái)體現(xiàn),每一次對(duì)操作的調(diào)用都可能改變對(duì)象的狀態(tài)。而在對(duì)象外部,如果不經(jīng)特許無(wú)法了解對(duì)象的內(nèi)部結(jié)構(gòu),只能通過(guò)對(duì)象所提供的外部接口來(lái)獲知對(duì)象的狀態(tài)。(2)消息2.面向?qū)ο蟮牟僮飨到y(tǒng)消息是對(duì)象之間的通信單元。當(dāng)一個(gè)對(duì)象接收來(lái)自外部的消息時(shí),可根據(jù)消息中指定的操作與傳遞的參數(shù)來(lái)對(duì)對(duì)象中的屬性進(jìn)行操作,從而改變對(duì)象的屬性。由用戶(hù)U向文件B發(fā)送消息,從而啟動(dòng)文件B的打開(kāi)操作。消息發(fā)送的主體也可以是任意對(duì)象,接收消息的對(duì)象必須含有消息所對(duì)應(yīng)的操作,否則消息發(fā)送失敗。
(3)類(lèi)2.面向?qū)ο蟮牟僮飨到y(tǒng)類(lèi)是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對(duì)象的集合,因此,它是對(duì)對(duì)象的抽象。類(lèi)中同樣定義了一組屬性和針對(duì)該屬性的一組操作。一般情況下類(lèi)中的屬性沒(méi)有具體的值來(lái)代表,而只是一個(gè)數(shù)據(jù)結(jié)構(gòu)框架。類(lèi)的實(shí)例被稱(chēng)為對(duì)象,因此,對(duì)象是類(lèi)的實(shí)現(xiàn)。(4)繼承2.面向?qū)ο蟮牟僮飨到y(tǒng)在某一個(gè)既存類(lèi)的基礎(chǔ)上經(jīng)過(guò)添加新的屬性或操作生成一個(gè)新類(lèi),新類(lèi)直接繼承既存類(lèi)的屬性和操作,因此被稱(chēng)為對(duì)既存類(lèi)的繼承。使用類(lèi)與類(lèi)之間的繼承特性,可以極大地簡(jiǎn)化對(duì)屬性和操作的設(shè)計(jì)工作量。同時(shí)一個(gè)新類(lèi)并不會(huì)對(duì)既存類(lèi)產(chǎn)生影響,因此,操作系統(tǒng)的擴(kuò)展將不會(huì)影響原有系統(tǒng)的功能。2.面向?qū)ο蟮牟僮飨到y(tǒng)
(5)面向?qū)ο蟛僮飨到y(tǒng)的設(shè)計(jì)方法設(shè)計(jì)操作系統(tǒng)將經(jīng)過(guò)如下幾個(gè)步驟:分析設(shè)計(jì)類(lèi)的設(shè)計(jì)與實(shí)現(xiàn)對(duì)類(lèi)進(jìn)行實(shí)例化系統(tǒng)組裝與測(cè)試維護(hù)7.1.2面向過(guò)程與面向?qū)ο?/p>
分析所要設(shè)計(jì)的操作系統(tǒng)的類(lèi)型、應(yīng)用范圍和要達(dá)到的系統(tǒng)目標(biāo)等,確定了操作系統(tǒng)的邏輯模型。
進(jìn)行系統(tǒng)結(jié)構(gòu)設(shè)計(jì),根據(jù)資源的分類(lèi)將系統(tǒng)分層,確定每層要完成的任務(wù),確定對(duì)類(lèi)進(jìn)行描述所依據(jù)的模型。對(duì)類(lèi)進(jìn)行定義與設(shè)計(jì),包括類(lèi)的設(shè)計(jì)、復(fù)用、繼承,確定類(lèi)與類(lèi)之間要傳送的消息格式與時(shí)機(jī)。它主要是依據(jù)不同計(jì)算機(jī)的硬件資源的規(guī)格、型號(hào)以及其他參數(shù)將類(lèi)實(shí)例化為對(duì)象,由這些對(duì)象來(lái)代表具體的資源。以類(lèi)和對(duì)象為部件按操作系統(tǒng)的設(shè)計(jì)要求組裝完整的系統(tǒng),并根據(jù)預(yù)先設(shè)計(jì)好的測(cè)試流程進(jìn)行系統(tǒng)測(cè)試,測(cè)試通過(guò)以后操作系統(tǒng)完全生成。在操作系統(tǒng)的運(yùn)行過(guò)程中針對(duì)發(fā)現(xiàn)問(wèn)題進(jìn)行修正、補(bǔ)丁、擴(kuò)展等。維護(hù)往往只針對(duì)指定的類(lèi)或者對(duì)象,因此涉及范圍很小。7.2分布式操作系統(tǒng)計(jì)算機(jī)的發(fā)展并不局限于稱(chēng)為集中式系統(tǒng)的單處理機(jī)和單存儲(chǔ)器的形式。為了達(dá)到更大程度的并行,系統(tǒng)可能使用多個(gè)處理機(jī)甚至多臺(tái)主機(jī)。因此,我們必須了解分布式系統(tǒng)。7.2分布式操作系統(tǒng)分布式系統(tǒng)定義分布式系統(tǒng)是由多個(gè)物理上分布的處理機(jī)或計(jì)算機(jī)經(jīng)過(guò)連接構(gòu)成的計(jì)算機(jī)系統(tǒng),這些組成部件可以合作完成一個(gè)共同的任務(wù),以透明的方式在用戶(hù)面前呈現(xiàn)出一個(gè)整體形象。分布式操作系統(tǒng)是建立于分布式系統(tǒng)基礎(chǔ)之上的,對(duì)所有分布式資源進(jìn)行管理和控制的操作系統(tǒng)。由于增加了分布特性,操作系統(tǒng)需要增加進(jìn)程間的數(shù)據(jù)交換、全局性的保護(hù)機(jī)制、各個(gè)物理位置上的數(shù)據(jù)一致性、任務(wù)分布與協(xié)調(diào)等功能,以實(shí)現(xiàn)資源共享、開(kāi)放性、并發(fā)性、容錯(cuò)性和透明性。7.2分布式操作系統(tǒng)分布式操作系統(tǒng)的設(shè)計(jì)目標(biāo)1.資源共享2.開(kāi)放性3.并發(fā)性4.可靠性5.數(shù)據(jù)一致性6.透明性分布式系統(tǒng)的資源共享指的是對(duì)分布式資源的共享。分布式操作系統(tǒng)需要解決如下問(wèn)題:采用何種管理手段來(lái)記錄分布于不同地理位置上的資源?當(dāng)多進(jìn)程同時(shí)需要對(duì)同類(lèi)資源使用時(shí),由誰(shuí)及采用何種調(diào)度策略來(lái)對(duì)進(jìn)程與資源進(jìn)行連接?如何實(shí)現(xiàn)遠(yuǎn)程資源與用戶(hù)的交互?目前討論得比較多的有兩種模型:客戶(hù)機(jī)╱服務(wù)器模型和面向?qū)ο竽P?。由于分布式系統(tǒng)是通過(guò)對(duì)不同地理位置上的計(jì)算機(jī)的連接來(lái)構(gòu)成的,它應(yīng)該能夠允許連接數(shù)量的變化、軟件功能的增減、服務(wù)分布的變化、節(jié)點(diǎn)之間的溝通等,而不導(dǎo)致系統(tǒng)功能的削弱或破壞。如果能夠?qū)崿F(xiàn)上述要求,則稱(chēng)該分布式系統(tǒng)是開(kāi)放的。要實(shí)現(xiàn)開(kāi)放系統(tǒng)必須有標(biāo)準(zhǔn)的數(shù)據(jù)通信格式、可移植的系統(tǒng)軟件、統(tǒng)一的用戶(hù)界面。在分布式系統(tǒng)中,存在著許多進(jìn)程,這些進(jìn)程既存在物理上的并行,也存在邏輯上的并行;在節(jié)點(diǎn)與節(jié)點(diǎn)之間又存在大量的數(shù)據(jù)并發(fā)流動(dòng)。這一切對(duì)操作系統(tǒng)的并發(fā)控制能力提出了要求,要盡量減少并發(fā)行為之間可能發(fā)生的沖突,保證資源的安全使用,實(shí)現(xiàn)各進(jìn)程之間的協(xié)調(diào)運(yùn)作。相對(duì)于傳統(tǒng)的計(jì)算機(jī)系統(tǒng),分布式系統(tǒng)具有較高的可靠性。硬件的可靠性可以利用相同部件的相互替代來(lái)保證,數(shù)據(jù)的可靠性可以通過(guò)一定程度的冗余與備份來(lái)實(shí)現(xiàn)。另外,對(duì)于整個(gè)系統(tǒng)的容錯(cuò)能力,需要操作系統(tǒng)具有錯(cuò)誤檢測(cè)和恢復(fù)功能。相同的數(shù)據(jù)可能分布于不同的節(jié)點(diǎn)上,保證數(shù)據(jù)一致性的辦法通常是保證事務(wù)處理的原子性,即在事務(wù)處理過(guò)程中如果發(fā)生中斷,則取消該事務(wù)的處理,并讓系統(tǒng)恢復(fù)到處理之前的狀態(tài)。原子性避免了事務(wù)在處理過(guò)程中產(chǎn)生的錯(cuò)誤。另外,對(duì)分布于不同位置的相同數(shù)據(jù)定期刷新也可以保證一定程度上的數(shù)據(jù)一致性。透明性指用戶(hù)在使用分布式系統(tǒng)時(shí),不需要了解系統(tǒng)的資源、進(jìn)程、動(dòng)作、服務(wù)等任何數(shù)據(jù)與行為所處的位置。與集中式操作系統(tǒng)相比,分布式系統(tǒng)集中了各部分資源的優(yōu)勢(shì),因此,運(yùn)行速度更快、系統(tǒng)處理能力更強(qiáng)、資源共享范圍更廣、更易于進(jìn)行功能擴(kuò)充并且有更高的可靠性。分布式系統(tǒng)管理復(fù)雜、系統(tǒng)安全保密實(shí)現(xiàn)困難、軟件太少等都對(duì)分布式系統(tǒng)的發(fā)展與應(yīng)用有影響。
7.3網(wǎng)絡(luò)操作系統(tǒng)什么是網(wǎng)絡(luò)網(wǎng)絡(luò)的結(jié)構(gòu)網(wǎng)絡(luò)操作系統(tǒng)7.3.1什么是網(wǎng)絡(luò)
計(jì)算機(jī)網(wǎng)絡(luò)是按照網(wǎng)絡(luò)協(xié)議通信,以共享資源為目的,將地理上分散且自主的計(jì)算機(jī)互相連接的集合。網(wǎng)絡(luò)的構(gòu)成包含三個(gè)要素網(wǎng)絡(luò)的主要功能計(jì)算機(jī)網(wǎng)絡(luò)主要分為三類(lèi)
網(wǎng)絡(luò)的物理架構(gòu) 通信協(xié)議 一系列獨(dú)立的計(jì)算機(jī)(1)在計(jì)算機(jī)與計(jì)算機(jī)之間進(jìn)行通信或數(shù)據(jù)傳輸。(2)實(shí)現(xiàn)對(duì)數(shù)據(jù)、軟件和硬件資源的共享。(3)提高計(jì)算機(jī)的可靠性和可用性。(4)便于進(jìn)行分布式處理。
局域網(wǎng)廣域網(wǎng)城域網(wǎng)7.3.2網(wǎng)絡(luò)的結(jié)構(gòu)
1.網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)網(wǎng)絡(luò)在物理上表現(xiàn)為通信子網(wǎng)對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)的連接,其中通信子網(wǎng)的結(jié)構(gòu)稱(chēng)為網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。星形結(jié)構(gòu)一般是通過(guò)一個(gè)中央交換機(jī)實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)各節(jié)點(diǎn)的連接,所有的數(shù)據(jù)通信都必須經(jīng)過(guò)交換機(jī)的控制與轉(zhuǎn)接來(lái)實(shí)現(xiàn)。總線(xiàn)形結(jié)構(gòu)中的所有節(jié)點(diǎn)都連接到一條公用的數(shù)據(jù)通路上(稱(chēng)為總線(xiàn)),接點(diǎn)之間的數(shù)據(jù)通信靠各節(jié)點(diǎn)對(duì)總線(xiàn)信息的分辨與獲取來(lái)實(shí)現(xiàn)。環(huán)形結(jié)構(gòu)是將各節(jié)點(diǎn)連接成環(huán),通過(guò)節(jié)點(diǎn)爭(zhēng)取環(huán)路使用權(quán)來(lái)完成信息通信的。目前使用較多的還有樹(shù)形結(jié)構(gòu),它往往采用星形的連接方式與總線(xiàn)形的通信手段來(lái)實(shí)現(xiàn)通信。7.3.2網(wǎng)絡(luò)的結(jié)構(gòu)2.網(wǎng)絡(luò)體系結(jié)構(gòu)之一——OSI參考模型
物理層提供為建立、維護(hù)和拆除物理鏈路所需的機(jī)械的、電氣的、功能的和規(guī)程的特性;提供有關(guān)在傳輸介質(zhì)上傳輸二進(jìn)制位流及物理鏈路故障檢測(cè)指示。
數(shù)據(jù)鏈路層為網(wǎng)絡(luò)層實(shí)體提供點(diǎn)到點(diǎn)無(wú)差錯(cuò)幀傳輸功能,并進(jìn)行流量控制及鏈路管理。
網(wǎng)絡(luò)層接受來(lái)自數(shù)據(jù)鏈路層的服務(wù),并為傳輸層建立、保持及釋放連接和數(shù)據(jù)傳送提供數(shù)據(jù)交換、流量控制、擁擠控制、差錯(cuò)控制及恢復(fù)、路由選擇等功能。傳輸層為會(huì)話(huà)層實(shí)體提供透明的、可靠的數(shù)據(jù)傳輸服務(wù),保證端到端的數(shù)據(jù)完整性;按本層需要選擇網(wǎng)絡(luò)層能提供的服務(wù);提供建立、維護(hù)和拆除傳輸連接功能。會(huì)話(huà)層提供面向用戶(hù)的連接服務(wù),對(duì)不同系統(tǒng)會(huì)話(huà)層實(shí)體提供組織和同步所必需的手段,以便對(duì)數(shù)據(jù)的傳送提供控制和管理。表示層為應(yīng)用層進(jìn)程提供能解釋所交換信息含義的一組服務(wù),如代碼轉(zhuǎn)換、格式轉(zhuǎn)換、文本壓縮、文本加密與解密等。應(yīng)用層為OSI進(jìn)程提供服務(wù),如文件傳送、電子郵件、EDI等,保證網(wǎng)絡(luò)的完整透明性。7.3.3網(wǎng)絡(luò)操作系統(tǒng)
網(wǎng)絡(luò)操作系統(tǒng)是針對(duì)網(wǎng)絡(luò)環(huán)境設(shè)計(jì)的、具有OSI上層功能的、能同時(shí)對(duì)網(wǎng)絡(luò)服務(wù)器及工作站進(jìn)行管理的并實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)之間通信功能的操作系統(tǒng)。因?yàn)榫W(wǎng)絡(luò)的目的是實(shí)現(xiàn)資源共享與數(shù)據(jù)通信,在文件共享和進(jìn)程通信方面有許多工作要做。
7.3.3網(wǎng)絡(luò)操作系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)必須具有如下功能:(1)用戶(hù)管理功能。(2)系統(tǒng)容錯(cuò)措施。(3)服務(wù)連接維護(hù)和數(shù)據(jù)訪(fǎng)問(wèn)同步。(4)文件、目錄服務(wù),除基本文件及目錄管理外,還包括文件傳輸協(xié)議、遠(yuǎn)程通信等。(5)網(wǎng)絡(luò)計(jì)費(fèi)、安全與維護(hù)。(6)提供開(kāi)放的軟件開(kāi)發(fā)環(huán)境。7.3.3網(wǎng)絡(luò)操作系統(tǒng)
分布式OS網(wǎng)絡(luò)OS表現(xiàn)形式功能強(qiáng)大的單機(jī)系統(tǒng)
若干分立的計(jì)算機(jī)及其連接
操作系統(tǒng)部件上運(yùn)行相同的操作系統(tǒng)各計(jì)算機(jī)可運(yùn)行獨(dú)立的操作系統(tǒng)通信進(jìn)程之間傳遞消息來(lái)實(shí)現(xiàn)通信采用文件共享的形式文件組織文件有統(tǒng)一的組織與形式允許文件的多樣化7.4Windows的網(wǎng)絡(luò)操作系統(tǒng)Windows系列逐漸分化為三類(lèi)產(chǎn)品:以Windows9x/Me為代表的是面向家庭計(jì)算機(jī)用戶(hù)的操作系統(tǒng),其最新的版本是WindowsXPHomeEdition;以WindowsNTWorksation/2000Professional為代表的是面向商業(yè)辦公的操作系統(tǒng),其最新的版本是WindowsXPProfessional;以WindowsNTServer/2000Server為代表的是面向高端應(yīng)用的操作系統(tǒng),其最新版本是Windows2003Server。
7.4Windows的網(wǎng)絡(luò)操作系統(tǒng)網(wǎng)絡(luò)構(gòu)成Windows的結(jié)構(gòu)Windows的管理職能WindowsServer的安全與監(jiān)視7.4.1網(wǎng)絡(luò)構(gòu)成
常見(jiàn)的Windows網(wǎng)絡(luò)構(gòu)造
7.4.2Windows的結(jié)構(gòu)
Windows操作系統(tǒng)結(jié)構(gòu)
劃分成用戶(hù)模式和核心模式兩大部分
用戶(hù)模式中有:環(huán)境子系統(tǒng)集成子系統(tǒng)每個(gè)環(huán)境子系統(tǒng)代表一個(gè)用戶(hù)態(tài)服務(wù)器
每個(gè)集成子系統(tǒng)是完成操作系統(tǒng)功能的服務(wù)器
核心模式被稱(chēng)為執(zhí)行體對(duì)象(資源)管理器,擁有內(nèi)核對(duì)象,這些對(duì)象具有獲得創(chuàng)建應(yīng)用程序所需要的核心服務(wù)的手段;安全引用監(jiān)視器,為系統(tǒng)資源提供一致的安全檢查和實(shí)施;進(jìn)程管理器,管理線(xiàn)程和進(jìn)程的壽命,承擔(dān)安排執(zhí)行時(shí)間的責(zé)任;虛擬內(nèi)存管理器(VMM),為每個(gè)進(jìn)程提供統(tǒng)一的、私有的地址空間;本地過(guò)程調(diào)用工具,向同一計(jì)算機(jī)上的客戶(hù)和服務(wù)器提供簡(jiǎn)單的消息傳送手段;I╱O管理器,為所有的進(jìn)程提供訪(fǎng)問(wèn)硬件驅(qū)動(dòng)程序、文件系統(tǒng)和網(wǎng)絡(luò)的方法;窗口管理器,創(chuàng)建用戶(hù)熟悉的界面并為進(jìn)程提供訪(fǎng)問(wèn)圖形設(shè)備接口的方法。微內(nèi)核和硬件抽象層采用了層次操作系統(tǒng)模型,提供了線(xiàn)程調(diào)度、中斷、異常調(diào)度及多處理機(jī)同步。7.4.3Windows的管理職能
WindowsServer對(duì)網(wǎng)絡(luò)的管理是通過(guò)活動(dòng)目錄來(lái)進(jìn)行的?;顒?dòng)目錄是一種目錄服務(wù),它存儲(chǔ)有關(guān)網(wǎng)絡(luò)對(duì)象的信息,這些對(duì)象是用戶(hù)、域、組織單元、樹(shù)和森林,網(wǎng)絡(luò)上的所有可用資源信息都被集成于這些對(duì)象之中,利于管理員和用戶(hù)方便地查找和使用。域是對(duì)計(jì)算機(jī)及用戶(hù)的一種組織,任何用戶(hù)只要在域中有一個(gè)帳戶(hù),就擁有了網(wǎng)絡(luò)資源的使用權(quán)利。一個(gè)域作為一個(gè)完整的目錄,域之間能夠通過(guò)信任關(guān)系建立起樹(shù)狀連接,使單一帳戶(hù)可享用該樹(shù)狀結(jié)構(gòu)中的任何信息?;顒?dòng)目錄服務(wù)把域又詳細(xì)劃分成組織單元,組織單元是一個(gè)邏輯單位,它是域中一些用戶(hù)和組、文件與打印機(jī)等資源對(duì)象的集合。
7.4.3Windows的管理職能
活動(dòng)目錄完全采用了Internet標(biāo)準(zhǔn)協(xié)議,進(jìn)行網(wǎng)絡(luò)登錄時(shí),可用“用戶(hù)名@域名”的用戶(hù)帳號(hào)。Windows活動(dòng)目錄把DNS作為其定位服務(wù),因此是直接面向Internet的。域中有許多平等的域控制器,Windows任何一個(gè)域控制器上的目錄庫(kù)的變更都會(huì)自動(dòng)復(fù)制到其他域控制器上的副本中。7.4.3Windows的管理職能
域安全策略7.4.3Windows的管理職能
用戶(hù)和計(jì)算機(jī)帳戶(hù)管理7.4.3Windows的管理職能
活動(dòng)目錄的特性(1)信息安全性(2)基于策略的管理(3)擴(kuò)展性(4)可調(diào)整性(5)信息復(fù)制(6)與
DNS集成(7)與其他目錄服務(wù)的內(nèi)部操作(8)靈活的查詢(xún)
安全性與活動(dòng)目錄完全集成在一起。不僅可以針對(duì)目錄中的每個(gè)對(duì)象定義訪(fǎng)問(wèn)控制,還可對(duì)其每種屬性進(jìn)行操作。活動(dòng)目錄的目錄服務(wù)包括數(shù)據(jù)存儲(chǔ)以及邏輯、分層結(jié)構(gòu)。作為邏輯結(jié)構(gòu),它為策略應(yīng)用程序提供上下文分層結(jié)構(gòu)。作為目錄,它存儲(chǔ)指定給特定上下文的策略(稱(chēng)為組策略)。活動(dòng)目錄是可擴(kuò)展的,這意味著管理員可以將對(duì)象的新類(lèi)添加到規(guī)劃中,而且還可以將新屬性添加到已現(xiàn)有的對(duì)象類(lèi)中?;顒?dòng)目錄可包括一個(gè)或多個(gè)域,每個(gè)又都帶有一個(gè)或多個(gè)域控制器,這使得可調(diào)整目錄以便滿(mǎn)足任何網(wǎng)絡(luò)的要求。多域可組合成域目錄樹(shù)或林。活動(dòng)目錄使用多主復(fù)制。目錄存儲(chǔ)在初始域控制器中,其內(nèi)容可復(fù)制到域、域目錄樹(shù)或林的每個(gè)域中。對(duì)目錄數(shù)據(jù)所做的更改將復(fù)制到所有域控制器中?;顒?dòng)目錄使用域名解析系統(tǒng)DNS(DomainNameSystem)。
DNS是一個(gè)Internet的標(biāo)準(zhǔn)服務(wù),它可以很容易地將可讀主機(jī)名稱(chēng)翻譯成數(shù)字的IP地址。這可以在TCP/IP網(wǎng)絡(luò)上啟用與計(jì)算機(jī)和用戶(hù)的標(biāo)識(shí)和連接。
由于活動(dòng)目錄是基于工業(yè)標(biāo)準(zhǔn)的目錄訪(fǎng)問(wèn)協(xié)議,它可以與使用這些協(xié)議的其他目錄服務(wù)實(shí)現(xiàn)內(nèi)部操作。用戶(hù)和管理員可在搜索功能中指定網(wǎng)絡(luò)鄰居、活動(dòng)目錄用戶(hù)和計(jì)算機(jī)來(lái)快速查找網(wǎng)絡(luò)上的對(duì)象,使用對(duì)象屬性??赏ㄟ^(guò)使用活動(dòng)目錄生成的全局目錄優(yōu)化查找信息。
7.4.4WindowsServer的安全與監(jiān)視
WindowsServer提供了許多安全機(jī)制,如:備份事件查看性能監(jiān)視系統(tǒng)監(jiān)視網(wǎng)絡(luò)監(jiān)視等
7.5Linux操作系統(tǒng)Linux體系結(jié)構(gòu)Linux模塊化加載核心數(shù)據(jù)結(jié)構(gòu)設(shè)備驅(qū)動(dòng)文件系統(tǒng)
Linux特性
7.5.1Linux體系結(jié)構(gòu)
內(nèi)核是系統(tǒng)的心臟,是運(yùn)行程序和管理計(jì)算機(jī)硬件的核心程序。它接受shell傳來(lái)的系統(tǒng)調(diào)用命令并把命令送給內(nèi)核去執(zhí)行。Shell是系統(tǒng)的用戶(hù)界面,提供了用戶(hù)與內(nèi)核進(jìn)行交互操作的一種接口。它接收用戶(hù)輸入的命令并把它送入內(nèi)核去執(zhí)行。實(shí)際上Shell是一個(gè)命令解釋器,它解釋由用戶(hù)輸入的命令并且把它們送到內(nèi)核。Shell有自己的編程語(yǔ)言,用這種編程語(yǔ)言編寫(xiě)的Shell程序與其他應(yīng)用程序具有同樣的效果。內(nèi)核、Shell和文件結(jié)構(gòu)一起形成了基本的操作系統(tǒng)結(jié)構(gòu)。標(biāo)準(zhǔn)的Linux系統(tǒng)都有一套叫做實(shí)用工具的程序,它們是專(zhuān)門(mén)的程序,例如編輯器、執(zhí)行標(biāo)準(zhǔn)的計(jì)算操作等。用戶(hù)也可以產(chǎn)生自己的工具。7.5.2Linux模塊化加載
Linux的核心(Kernel)可以認(rèn)為是一個(gè)單一的巨大的程序,核心的功能組件可以訪(fǎng)問(wèn)它的所
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安信息職業(yè)大學(xué)《創(chuàng)新創(chuàng)業(yè)學(xué)通論》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版企業(yè)股權(quán)收益權(quán)轉(zhuǎn)讓居間協(xié)議書(shū)模板3篇
- 2024鐵路電氣化工程安全施工協(xié)議及質(zhì)量監(jiān)控3篇
- 二零二五年度物業(yè)管理服務(wù)合同:視頻監(jiān)控系統(tǒng)維護(hù)與升級(jí)
- 2024版廣告設(shè)計(jì)與推廣合同
- 濰坊理工學(xué)院《半導(dǎo)體元件》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版物流服務(wù)合同認(rèn)定條件與服務(wù)內(nèi)容規(guī)定
- 2024版石油買(mǎi)賣(mài)合同
- 四川文化傳媒職業(yè)學(xué)院《招貼設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版廣西勞動(dòng)合同
- 工作證明模板下載免費(fèi)
- 顛茄流浸膏實(shí)驗(yàn)方案及總結(jié)
- 投標(biāo)人情況表
- GB/T 34241-2017卷式聚酰胺復(fù)合反滲透膜元件
- GB/T 12494-1990食品機(jī)械專(zhuān)用白油
- 運(yùn)輸供應(yīng)商年度評(píng)價(jià)表
- 北京語(yǔ)言大學(xué)保衛(wèi)處管理崗位工作人員招考聘用【共500題附答案解析】模擬試卷
- 肺癌的診治指南課件
- 人教版七年級(jí)下冊(cè)數(shù)學(xué)全冊(cè)完整版課件
- 商場(chǎng)裝修改造施工組織設(shè)計(jì)
- 統(tǒng)編版一年級(jí)語(yǔ)文上冊(cè) 第5單元教材解讀 PPT
評(píng)論
0/150
提交評(píng)論