華東理工815操作系統(tǒng)第19講_第1頁(yè)
華東理工815操作系統(tǒng)第19講_第2頁(yè)
華東理工815操作系統(tǒng)第19講_第3頁(yè)
華東理工815操作系統(tǒng)第19講_第4頁(yè)
華東理工815操作系統(tǒng)第19講_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、緩沖池:將系統(tǒng)內(nèi)所有的緩沖區(qū)統(tǒng)一管理起來(lái),就形成了能用于輸入/輸出的緩沖池。緩沖池通常由若干大小相同的緩沖區(qū)組成,是系統(tǒng)的公用資源,任何進(jìn)程都可以申請(qǐng)使用緩沖池中的各個(gè)緩沖區(qū)。2、緩沖池的組成(數(shù)據(jù)結(jié)構(gòu))

三個(gè)隊(duì)列:空緩沖隊(duì)列emq、裝滿輸入數(shù)據(jù)隊(duì)列inq、裝滿輸出數(shù)據(jù)隊(duì)列outq

四個(gè)工作緩沖區(qū):收容輸入數(shù)據(jù)的緩沖區(qū)、提取輸入數(shù)據(jù)的緩沖區(qū)、收容輸出數(shù)據(jù)的緩沖區(qū)、提取輸出數(shù)據(jù)的緩沖區(qū)緩沖池(1)3、Getbuf過(guò)程和Putbuf過(guò)程ProcedureGetbuf(type)beginwait(rs(type));wait(ms(type));B(number):=Takebuf(type);signal(ms(type));end緩沖池(2)ProcedurePutbuf(type)beginwait(ms(type));Addbuf(type,number);signal(ms(type));signal(rs(type));end注:Takebuf(type)—用于從type所指的隊(duì)列的隊(duì)首摘下一緩沖區(qū)Addbuf(type,number)—用于將由number所指示的緩沖區(qū)B掛在type隊(duì)列上4、操作系統(tǒng)對(duì)緩沖池的管理--工作方式hinsinsouthout用戶程序緩沖池提取輸入收容輸出提取輸出收容輸入緩沖池的工作方式輸入進(jìn)程需要輸入數(shù)據(jù)時(shí):輸入設(shè)備收容輸入緩沖區(qū)-getbuf(emq)1)從空緩沖隊(duì)列的隊(duì)首取一空緩沖區(qū)用作收容輸入緩沖區(qū)2)輸入設(shè)備將數(shù)據(jù)輸入收容輸入緩沖區(qū)并裝滿3)將此緩沖區(qū)掛到裝滿輸入數(shù)據(jù)隊(duì)列隊(duì)尾。計(jì)算進(jìn)程需要輸入數(shù)據(jù)時(shí):提取輸入緩沖區(qū)CPU-getbuf(inq)1)從裝滿輸入數(shù)據(jù)隊(duì)列隊(duì)首取一滿緩沖區(qū)用作提取輸入緩沖區(qū)2)CPU從提取輸入緩沖區(qū)中取出數(shù)據(jù)至用完3)將空緩沖區(qū)掛到空緩沖隊(duì)列隊(duì)尾。4、操作系統(tǒng)對(duì)緩沖池的管理--工作方式計(jì)算進(jìn)程需要輸出數(shù)據(jù)時(shí):CPU收容輸出緩沖區(qū)-getbuf(emq)

1)從空緩沖隊(duì)列隊(duì)首取一空緩沖區(qū)用作收容輸出緩沖區(qū)2)CPU將數(shù)據(jù)輸入其中并裝滿3)將收容輸出緩沖區(qū)掛到裝滿輸出數(shù)據(jù)隊(duì)列隊(duì)尾。輸出進(jìn)程需要輸出數(shù)據(jù)時(shí):提取輸出緩沖區(qū)輸出設(shè)備-getbuf(outq)

1)從裝滿輸出數(shù)據(jù)隊(duì)列隊(duì)首取一滿緩沖區(qū)用作提取輸出緩沖區(qū)2)輸出設(shè)備從中取出數(shù)據(jù)至用完3)將空緩沖區(qū)掛到空緩沖隊(duì)列隊(duì)尾4、操作系統(tǒng)對(duì)緩沖池的管理--工作方式5.4I/O軟件●I/O軟件的設(shè)計(jì)目標(biāo)和原則●中斷處理程序●設(shè)備驅(qū)動(dòng)程序●設(shè)備獨(dú)立性軟件●用戶層的I/O軟件5.4.1I/O軟件的設(shè)計(jì)目標(biāo)和原則總體設(shè)計(jì)目標(biāo)高效性確保I/O設(shè)備和CPU并行執(zhí)行,提高資源利用率通用性提供簡(jiǎn)單抽象、清晰統(tǒng)一的接口,采用統(tǒng)一標(biāo)準(zhǔn)的方法,來(lái)管理所有的設(shè)備和所需的I/O操作采用層次結(jié)構(gòu)的I/O軟件低層軟件實(shí)現(xiàn)與硬件相關(guān)的操作,屏蔽硬件的具體細(xì)節(jié)高層軟件向用戶提供一個(gè)簡(jiǎn)潔、友好、規(guī)范的接口5.4.1I/O軟件的設(shè)計(jì)目標(biāo)和原則I/O軟件應(yīng)達(dá)到以下幾個(gè)目標(biāo)與具體設(shè)備無(wú)關(guān)屏蔽設(shè)備的具體細(xì)節(jié),向高層提供抽象的邏輯設(shè)備,并完成邏輯設(shè)備和具體物理設(shè)備的映射統(tǒng)一命名所有軟件都以邏輯名稱訪問(wèn)設(shè)備,與具體設(shè)備無(wú)關(guān)5.4.1I/O軟件的設(shè)計(jì)目標(biāo)和原則I/O軟件應(yīng)達(dá)到以下幾個(gè)目標(biāo)(續(xù))對(duì)錯(cuò)誤的處理盡可能在接近硬件的層面處理錯(cuò)誤緩沖技術(shù)設(shè)備的分配和釋放I/O控制方式合理選擇I/O控制方式,例打印機(jī)(中斷驅(qū)動(dòng))、磁盤(DMA控制方式)5.4.1I/O軟件的設(shè)計(jì)目標(biāo)和原則層次式結(jié)構(gòu)的I/O軟件(四個(gè)層次)用戶層軟件實(shí)現(xiàn)與用戶交互的接口,用戶可直接調(diào)用在用戶層提供的、與I/O操作有關(guān)的庫(kù)函數(shù),對(duì)設(shè)備操作設(shè)備獨(dú)立性軟件負(fù)責(zé)實(shí)現(xiàn)與設(shè)備驅(qū)動(dòng)器的統(tǒng)一接口、設(shè)備命名、設(shè)備保護(hù)以及設(shè)備的分配與釋放,提供存儲(chǔ)空間5.4.1I/O軟件的設(shè)計(jì)目標(biāo)和原則層次式結(jié)構(gòu)的I/O軟件(四個(gè)層次)(續(xù))設(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)的中斷處理程序進(jìn)行處理,處理完后再恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)后返回到被中斷進(jìn)程5.4.2中斷處理程序中斷處理層的主要工作進(jìn)行進(jìn)程上下文的切換對(duì)處理中斷信號(hào)源進(jìn)行測(cè)試讀取設(shè)備狀態(tài)修改進(jìn)程狀態(tài)中斷處理程序的處理過(guò)程喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程保護(hù)被中斷進(jìn)程的CPU環(huán)境分析中斷原因,轉(zhuǎn)入相應(yīng)的設(shè)備處理程序進(jìn)行中斷處理恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)5.4.3設(shè)備驅(qū)動(dòng)程序是I/O進(jìn)程與設(shè)備控制器之間的通信程序,常以進(jìn)程的形式存在,主要任務(wù)接收上層軟件發(fā)來(lái)的抽象I/O要求轉(zhuǎn)換為具體要求后,發(fā)送給設(shè)備控制器,啟動(dòng)設(shè)備去執(zhí)行將由設(shè)備控制器發(fā)來(lái)的信號(hào)傳送給上層軟件修改進(jìn)程狀態(tài)設(shè)備驅(qū)動(dòng)程序的功能設(shè)備處理方式設(shè)備驅(qū)動(dòng)程序的特點(diǎn)設(shè)備驅(qū)動(dòng)程序的處理過(guò)程設(shè)備驅(qū)動(dòng)程序的功能將接收到的抽象要求轉(zhuǎn)換為具體要求。檢查用戶I/O請(qǐng)求的合法性,I/O設(shè)備狀態(tài),傳參數(shù),設(shè)置設(shè)備的工作方式。按處理機(jī)的I/O請(qǐng)求去啟動(dòng)指定的設(shè)備進(jìn)行I/O操作及時(shí)響應(yīng)由控制器或通道發(fā)來(lái)的中斷請(qǐng)求,并進(jìn)行相應(yīng)處理按I/O請(qǐng)求構(gòu)成相應(yīng)通道程序。設(shè)備處理方式為每一類設(shè)備設(shè)置一進(jìn)程,專門執(zhí)行其I/O操作。在整個(gè)系統(tǒng)中設(shè)置一個(gè)進(jìn)程,執(zhí)行所有的I/O操作。不設(shè)置專門的設(shè)備處理進(jìn)程,而為各類設(shè)備設(shè)置相應(yīng)的設(shè)備驅(qū)動(dòng)程序。設(shè)備驅(qū)動(dòng)程序的特點(diǎn)是請(qǐng)求I/O的進(jìn)程與設(shè)備控制器之間的一個(gè)通信程序。與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān)與I/O設(shè)備所采用的I/O控制方式緊密相關(guān)與硬件緊密相關(guān),因而其中一部分程序必須用匯編語(yǔ)言編寫。驅(qū)動(dòng)程序應(yīng)允許可重入驅(qū)動(dòng)程序不允許系統(tǒng)調(diào)用,但可以允許對(duì)某些內(nèi)核過(guò)程的調(diào)用設(shè)備驅(qū)動(dòng)程序的的處理過(guò)程將接收到的抽象要求轉(zhuǎn)換為具體要求。檢查用戶I/O請(qǐng)求的合法性讀出和檢查I/O設(shè)備狀態(tài)傳送必要參數(shù)設(shè)置設(shè)備的工作方式。按處理機(jī)的I/O請(qǐng)求去啟動(dòng)指定的設(shè)備進(jìn)行I/O操作5.4.4設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性概念(設(shè)備無(wú)關(guān)性)設(shè)備獨(dú)立性的實(shí)現(xiàn)邏輯設(shè)備(應(yīng)用程序)和物理設(shè)備(執(zhí)行)設(shè)備分配時(shí)的靈活性易于實(shí)現(xiàn)I/O重定向設(shè)備獨(dú)立性軟件執(zhí)行所有設(shè)備的公有操作向用戶層(文件層)軟件提供統(tǒng)一的接口邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)邏輯設(shè)備表LUT(LogicalUnitTable)LUT設(shè)置問(wèn)題(圖5-19)整個(gè)系統(tǒng)設(shè)置一張LUT;每個(gè)用戶設(shè)一張LUT用于單用戶系統(tǒng)用于多用戶系統(tǒng)設(shè)備獨(dú)立性相關(guān)概念設(shè)備獨(dú)立性概念(設(shè)備無(wú)關(guān)性)為提高OS的可適應(yīng)性和可擴(kuò)展性,而將應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。I/O重定向指用于I/O操作的設(shè)備可以更換,即重定向,而不必改變應(yīng)用程序。所有設(shè)備的公有操作獨(dú)立設(shè)備的分配與回收;將邏輯設(shè)備名映射為物理設(shè)備名;對(duì)設(shè)備進(jìn)行保護(hù)(禁止直接訪問(wèn));緩沖管理;差錯(cuò)控制。邏輯設(shè)備表LUT(LogicalUnitTable)(a)(b)5.4.5用戶層的I/O軟件大部分I/O軟件都在操作系統(tǒng)內(nèi)部,仍有一小部分在用戶層與用戶程序鏈接在一起的庫(kù)函數(shù)完全運(yùn)行在內(nèi)核之外的一些程序(如Spooling系統(tǒng))用戶層軟件設(shè)備獨(dú)立性軟件設(shè)備驅(qū)動(dòng)程序中斷處理程序硬件I/O請(qǐng)求I/O應(yīng)答執(zhí)行I/O操作產(chǎn)生I/O請(qǐng)求、格式化I/O、Spooling映射,保護(hù),分塊,緩沖,分配設(shè)置設(shè)備寄存器,檢查寄存器狀態(tài)I/O系統(tǒng)的層次及功能5.5設(shè)備分配●設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)●設(shè)備分配的策略/應(yīng)考慮的因素●獨(dú)占設(shè)備的分配程序●SPOOLING技術(shù)5.5.1設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表DCT(DeviceControlTable)控制器控制表COCT(COntrollerControlTable)通道控制表CHCT(CHannelControlTable)系統(tǒng)設(shè)備表SDT(SystemDeviceTable)DCT表目1……表目i……設(shè)備類型設(shè)備標(biāo)識(shí)符DCT指針獲得設(shè)備的進(jìn)程……控制器標(biāo)識(shí)符控制器狀態(tài):忙/閑CHCT指針控制器等待隊(duì)列指針……通道標(biāo)識(shí)符通道狀態(tài):忙/閑通道等待隊(duì)列指針……SDTCOCTCHCT設(shè)備類型設(shè)備標(biāo)識(shí)符設(shè)備狀態(tài):忙/閑COCT指針設(shè)備等待隊(duì)列指針……5.5.2設(shè)備分配策略/應(yīng)考慮的因素1、設(shè)備的使用性質(zhì)/固有屬性(獨(dú)享設(shè)備、共享設(shè)備、虛擬設(shè)備)2、設(shè)備分配算法

(先請(qǐng)求先服務(wù)、優(yōu)先級(jí)高者優(yōu)先)3、設(shè)備分配的安全性(防止進(jìn)程死鎖)設(shè)備分配算法先請(qǐng)求先服務(wù)

當(dāng)有多進(jìn)程對(duì)同一設(shè)備提出I/O請(qǐng)求時(shí),系統(tǒng)根據(jù)這些進(jìn)程發(fā)出請(qǐng)求的先后次序?qū)⑺鼈兣懦梢粋€(gè)設(shè)備請(qǐng)求隊(duì)列,設(shè)備分配程序總是把設(shè)備分配給隊(duì)首的進(jìn)程。優(yōu)先級(jí)高者優(yōu)先

按照進(jìn)程優(yōu)先級(jí)的高低進(jìn)行分配。即當(dāng)多進(jìn)程對(duì)同一設(shè)備提出I/O請(qǐng)求時(shí),誰(shuí)優(yōu)先級(jí)高,就將設(shè)備分配給誰(shuí)。若優(yōu)先級(jí)相同,則按先請(qǐng)求先服務(wù)進(jìn)行分配。5.5.3獨(dú)占設(shè)備的分配程序基本的設(shè)備分配程序分配設(shè)備分配控制器分配通道問(wèn)題(“瓶頸”)進(jìn)程以物理設(shè)備名來(lái)提出I/O請(qǐng)求采用的是單通路的I/O系統(tǒng)結(jié)構(gòu)設(shè)備分配程序的改進(jìn)增加設(shè)備的獨(dú)立性(進(jìn)程以邏輯設(shè)備名來(lái)提出I/O請(qǐng)求)考慮多通路情況分配設(shè)備物理設(shè)備名在SDT找DCT設(shè)備狀態(tài)忙進(jìn)程插入設(shè)備等待隊(duì)列按算法計(jì)算本次分配的安全性安全分配設(shè)備進(jìn)程插入設(shè)備等待隊(duì)列返回yNNY分配控制器物理設(shè)備分配在DCT找COCT控制器狀態(tài)忙進(jìn)程插入控制器等待隊(duì)列分配控制器返回YN分配通道控制器分配在COCT找CHCT通道狀態(tài)忙進(jìn)程插入通道等待隊(duì)列分配通道返回YNSPOOLING技術(shù)(SimultaneausPeriphernalOperationsOn-Line)脫機(jī)輸入、輸出技術(shù)

為了緩和CPU的高速性與I/O設(shè)備的低速性間矛盾而引入,該技術(shù)在外圍控制機(jī)的控制下實(shí)現(xiàn)低速的I/O設(shè)備與高速的磁盤之間進(jìn)行數(shù)據(jù)傳送。SPOOLING技術(shù)SPOOLING系統(tǒng)的組成SPOOLING系統(tǒng)的特點(diǎn)提高了I/O速度將獨(dú)占設(shè)備改造為共享設(shè)備實(shí)現(xiàn)了虛擬設(shè)備功能SPOOLING技術(shù)(SimultaneausPeriphernalOperatingOn-Line)SPOOLING技術(shù)在多道程序下,用一道程序來(lái)模擬輸入時(shí)的外圍控制機(jī)功能,將低速I/O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上;再用另一道程序來(lái)模擬輸出時(shí)的外圍控制機(jī)功能,將數(shù)據(jù)從磁盤傳送到低速的輸出設(shè)備上。從而可在主機(jī)的直接控制下,實(shí)現(xiàn)脫機(jī)輸入、輸出功能,進(jìn)而實(shí)現(xiàn)外圍操作與CPU對(duì)數(shù)據(jù)的處理同時(shí)進(jìn)行,這種在聯(lián)機(jī)情況下實(shí)現(xiàn)的同時(shí)外圍操作稱為SPOOLING技術(shù),是對(duì)脫機(jī)輸入、輸出工作的模擬,是操作系統(tǒng)中采用的一項(xiàng)將獨(dú)占設(shè)備改造成為共享設(shè)備的技術(shù)。SPOOLING系統(tǒng)的組成(1)輸入進(jìn)程SPi輸出進(jìn)程SPo輸入緩沖區(qū)輸出緩沖區(qū)輸入設(shè)備輸出設(shè)備輸入井輸出井外存內(nèi)存組成1、輸入井、輸出井2、輸入緩沖區(qū)、輸出緩沖區(qū)3、輸入進(jìn)程、輸出進(jìn)程4、請(qǐng)求打印隊(duì)列SPOOLING系統(tǒng)的組成(2)SPOOLing技術(shù)是對(duì)脫機(jī)輸入輸出的模擬,必須有多道程序功能的操作系統(tǒng)和磁盤存儲(chǔ)技術(shù)的支持輸出井和輸入井:在磁盤上開辟的兩個(gè)大的存儲(chǔ)空間,模擬脫機(jī)輸入/輸出時(shí)的磁盤設(shè)備,暫存數(shù)據(jù)。輸入緩沖區(qū)和輸出緩沖區(qū):為了緩和CPU和磁盤之間速度不匹配的矛盾,在內(nèi)存中開辟了兩個(gè)緩沖區(qū)。輸入緩沖區(qū)用于暫存由輸入設(shè)備送來(lái)的數(shù)據(jù),以后再傳送到輸入井;輸出緩沖區(qū)用于暫存從輸出井送來(lái)的數(shù)據(jù),以后再傳送給輸出設(shè)備。輸入進(jìn)程SPi和輸出進(jìn)程SPo:兩個(gè)進(jìn)程來(lái)模擬脫機(jī)I/O時(shí)的外圍控制機(jī)SPOOLING技術(shù)在操作系統(tǒng)中,引入虛擬設(shè)備的原因

引入虛擬設(shè)備是為了克服獨(dú)占設(shè)備速度較慢、降低設(shè)備資源利用率的缺點(diǎn),從而提高設(shè)備的利用率。虛擬設(shè)備

是指通過(guò)虛擬技術(shù)將一臺(tái)獨(dú)占設(shè)備變換為若干臺(tái)邏輯設(shè)備,供若干個(gè)用戶進(jìn)程使用,通常把這種經(jīng)過(guò)虛擬技術(shù)處理后的設(shè)備稱為虛擬設(shè)備。SPOOLING技術(shù)舉例:共享打印機(jī)-SPOOLing技術(shù)的典型實(shí)例打印機(jī)屬于獨(dú)占設(shè)備。用SPOOLing技術(shù)轉(zhuǎn)換為共享設(shè)備,提高設(shè)備的利用效率。用戶請(qǐng)求打印后: 1.由輸出進(jìn)程SPo在輸出井中為之申請(qǐng)一個(gè)空閑磁盤塊區(qū),

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論