




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第二章操作系統(tǒng)的硬件環(huán)境討論操作系統(tǒng)對運行硬件環(huán)境的要求了解OS設(shè)計者所面對的硬件操作系統(tǒng)運行的硬件環(huán)境組成中央處理器〔CPU〕存儲系統(tǒng)中斷機制I/O系統(tǒng)時鐘以及時鐘隊列緩沖技術(shù)總線概述任何系統(tǒng)軟件都是硬件功能的延伸操作系統(tǒng)直接依賴于硬件條件OS的硬件環(huán)境以較分散的形式同各種管理相結(jié)合實現(xiàn)操作系統(tǒng)時必須理解的計算機根本結(jié)構(gòu)操作系統(tǒng)管理的重要資源簡單的個人計算機中的部件MonitorBus一、中央處理器〔CPU〕專門設(shè)計了一系列根本機制:-具有特權(quán)級別的處理器狀態(tài),能在不同特權(quán)級運行的各種特權(quán)指令-硬件機制使得OS可以和普通程序隔離實現(xiàn)保護和控制1、CPU的構(gòu)成與根本工作方式處理器由運算器、控制器、一系列的存放器以及高速緩存構(gòu)成運算器實現(xiàn)指令中的算術(shù)和邏輯運算,是計算機計算的核心控制器負責(zé)控制程序運行的流程,包括取指令、維護CPU狀態(tài)、CPU與內(nèi)存的交互等等存放器是指令在CPU內(nèi)部作處理的過程中暫存數(shù)據(jù)、地址以及指令信息的存儲設(shè)備在計算機的存儲系統(tǒng)中它具有最快的訪問速度高速緩存處于CPU和物理內(nèi)存之間一般由控制器中的內(nèi)存管理單元〔MMU:MemoryManagementUnit〕管理訪問速度快于內(nèi)存,低于存放器利用程序局部性原理使得高速指令處理和低速內(nèi)存訪問得以匹配,從而提高CPU的效率處理器中的存放器存放器提供了一定的存儲能力速度比主存快得多造價高,容量一般都很小兩類存放器:用戶可見存放器,高級語言編譯器通過算法分配并使用之,以減少程序訪問主存次數(shù)控制和狀態(tài)存放器,用于控制處理器的操作由OS的特權(quán)代碼使用,以控制其它程序的執(zhí)行用戶可見存放器機器語言直接引用包括數(shù)據(jù)存放器、地址存放器以及條件碼存放器數(shù)據(jù)存放器〔dataregister〕又稱通用存放器主要用于各種算術(shù)邏輯指令和訪存指令地址存放器〔addressregister〕用于存儲數(shù)據(jù)及指令的物理地址、線性地址或者有效地址,用于某種特定方式的尋址。如indexregister、segmentpointer、stackpointer條件碼存放器保存CPU操作結(jié)果的各種標記位如算術(shù)運算產(chǎn)生的溢出、符號等等控制和狀態(tài)存放器用于控制處理器的操作大局部對于用戶是不可見的一局部可以在某種特權(quán)模式〔由OS使用〕下訪問常見的控制和狀態(tài)存放器:程序計數(shù)器〔PC:ProgramCounter〕,記錄將要取出的指令的地址指令存放器〔IR:InstructionRegister〕,包含最近取出的指令程序狀態(tài)字〔PSW:ProgramStatusWord〕,記錄處理器的運行模式信息等等指令執(zhí)行的根本過程〔1〕兩個步驟:先從存儲器中每次讀取一條指令然后執(zhí)行這條指令一個單條指令處理過程稱為一個指令周期程序的執(zhí)行是由不斷取指和執(zhí)行的指令周期組成僅當關(guān)機、出錯或有停機相關(guān)指令時,程序才停止每個指令周期開始時,依據(jù)在程序計數(shù)器中的指令地址從存儲器中取一條指令在取指完成后根據(jù)指令類別自動將程序計數(shù)器的值變成下條指令的地址,自增1取到的指令放在指令存放器中處理器解釋并執(zhí)行所要求的動作指令執(zhí)行的根本過程〔2〕5類指令訪問存儲器指令:處理器和存儲器間數(shù)據(jù)傳送I/O指令:處理器和I/O模塊間數(shù)據(jù)傳送和命令發(fā)送算術(shù)邏輯指令〔數(shù)據(jù)處理指令〕:執(zhí)行數(shù)據(jù)算術(shù)和邏輯操作控制轉(zhuǎn)移指令:指定一個新的指令的執(zhí)行起點處理器控制指令:修改處理器狀態(tài),改變處理器工作方式2、特權(quán)指令和非特權(quán)指令特權(quán)指令:只能由操作系統(tǒng)使用的指令使用多道程序設(shè)計技術(shù)的計算機指令系統(tǒng)必須要區(qū)分為特權(quán)指令和非特權(quán)指令特權(quán)指令一般引起處理器狀態(tài)的切換處理器通過特殊的機制將處理器狀態(tài)切換到操作系統(tǒng)運行的特權(quán)狀態(tài)〔管態(tài)〕然后將處理權(quán)移交給操作系統(tǒng)中的一段特殊代碼,這一個過程稱為陷入?CPU如何知道當前運行的是操作系統(tǒng)還是一般應(yīng)用軟件?有賴于處理器狀態(tài)的標識3、處理器的狀態(tài)根據(jù)運行程序?qū)Y源和機器指令的使用權(quán)限將處理器設(shè)置為不同狀態(tài)多數(shù)系統(tǒng)將處理器工作狀態(tài)劃分為管態(tài)和目態(tài)管態(tài):操作系統(tǒng)管理程序運行的狀態(tài),較高的特權(quán)級別,又稱為特權(quán)態(tài)〔特態(tài)〕、系統(tǒng)態(tài)目態(tài):用戶程序運行時的狀態(tài),較低的特權(quán)級別,又稱為普通態(tài)〔普態(tài)〕、用戶態(tài)有些系統(tǒng)將處理器狀態(tài)劃分核心狀態(tài),管理狀態(tài)和用戶程序狀態(tài)〔目標狀態(tài)〕三種實例:x86系列處理器〔1〕386、486、Pentium系列都支持4個處理器特權(quán)級別〔特權(quán)環(huán):R0、R1、R2和R3〕從R0到R3特權(quán)能力依次降低R0相當于雙狀態(tài)系統(tǒng)的管態(tài)R3相當于目態(tài)R1和R2那么介于兩者之間,它們能夠運行的指令集合具有包含關(guān)系:各個級別有保護性檢查〔地址校驗、I/O限制〕特權(quán)級別之間的轉(zhuǎn)換方式不盡相同四個級別運行不同類別的程序:R0-運行操作系統(tǒng)核心代碼R1-運行關(guān)鍵設(shè)備驅(qū)動程序和I/O處理例程R2-運行其它受保護共享代碼,如語言系統(tǒng)運行環(huán)境R3-運行各種用戶程序現(xiàn)有基于x86處理器的操作系統(tǒng),多數(shù)UNIX、Linux以及Windows系列大都只用了R0和R3兩個特權(quán)級別實例:x86系列處理器〔2〕管態(tài)和目態(tài)的差異處理器處于管態(tài)時:全部指令〔包括特權(quán)指令〕可以執(zhí)行可使用所有資源并具有改變處理器狀態(tài)的能力處理器處于目態(tài)時:只有非特權(quán)指令能執(zhí)行特權(quán)級別不同,可運行指令集合也不同特權(quán)級別越高,可以運行指令集合越大高特權(quán)級別對應(yīng)的可運行指令集合包含低特權(quán)級的4、程序狀態(tài)字PSW在PSW中專門設(shè)置一位,根據(jù)運行程序使用指令的權(quán)限而設(shè)置,PSW(ProgramStatusWord):CPU的工作狀態(tài)碼——指明管態(tài)還是目態(tài),用來說明當前在CPU上執(zhí)行的是操作系統(tǒng)還是一般用戶,從而決定其是否可以使用特權(quán)指令或擁有其它的特殊權(quán)力條件碼——反映指令執(zhí)行后的結(jié)果特征中斷屏蔽碼——指出是否允許中斷例:微處理器M68000的程序狀態(tài)字條件位:C:進位標志位 V:溢出標志位Z:結(jié)果為零標志位 N:結(jié)果為負標志位I0–I2:三位中斷屏蔽位S:CPU狀態(tài)標志位,為1處于管態(tài),為0處于目態(tài)T:陷阱〔Trap〕中斷指示位為1,在下一條指令執(zhí)行后引起自陷中斷CPU狀態(tài)的轉(zhuǎn)換目態(tài)--管態(tài)其轉(zhuǎn)換的唯一途徑是通過中斷管態(tài)--目態(tài)可用設(shè)置PSW(修改程序狀態(tài)字)可實現(xiàn)二、存儲系統(tǒng)支持OS運行硬件環(huán)境的一個重要方面:作業(yè)必須把它的程序和數(shù)據(jù)存放在內(nèi)存中才能運行多道程系統(tǒng)中,假設(shè)干個程序和相關(guān)的數(shù)據(jù)要放入主存儲器操作系統(tǒng)要管理、保護程序和數(shù)據(jù),使它們不至于受到破壞操作系統(tǒng)本身也要存放在主存儲器中并運行
1、存儲器的類型兩類存儲器:讀寫型的存儲器只讀型的存儲器讀寫型的存儲器可把數(shù)據(jù)存入其中任一地址單元,并可在以后的任何時候把數(shù)據(jù)讀出,或者重新存入新的數(shù)據(jù)的一種存儲器常被稱為隨機訪問存儲器〔RAM:RandomAccessMemory〕RAM主要用作存放隨機存取的程序的數(shù)據(jù)只讀型的存儲器:只能從其中讀取數(shù)據(jù),但不能隨意用普通方法寫入數(shù)據(jù)〔寫入數(shù)據(jù)只能用特殊方法〕稱為只讀存儲器〔ROM:Read-OnlyMemory〕變型:PROM和EPROMPROM:一種可編程只讀存儲器,使用特殊PROM寫入器寫入數(shù)據(jù)EPROM:用特殊的紫外線光照射此芯片,以“擦去〞信息,恢復(fù)原來狀態(tài),然后使用特殊EPROM寫入器寫入數(shù)據(jù)在微機中,一些常駐內(nèi)存的模塊以微程序形式固化在ROM中如:PCBIOS和CBASIC解釋程序被固化于ROM中2、存儲器的層次結(jié)構(gòu)存儲系統(tǒng)設(shè)計三個問題:容量、速度和本錢容量:需求無止境速度:能匹配處理器的速度本錢問題:本錢和其它部件相比應(yīng)在適宜范圍之內(nèi)容量、速度和本錢三個目標不可能同時到達最優(yōu),要作權(quán)衡存取速度快,每比特價格高容量大,每比特價格越低,同時存取速度也越慢解決方案:采用層次化的存儲體系結(jié)構(gòu)當沿著層次下降時每比特的價格將下降,容量將增大速度將變慢,處理器的訪問頻率也將下降層次化的存儲體系結(jié)構(gòu)存儲訪問局部性原理提高存儲系統(tǒng)效能關(guān)鍵點:程序存儲訪問局部性原理程序執(zhí)行時,有很多的循環(huán)和子程序調(diào)用,一旦進入這樣的程序段,就會重復(fù)存取相同的指令集合對數(shù)據(jù)存取也有局部性,在較短的時間內(nèi),穩(wěn)定地保持在一個存儲器的局部區(qū)域處理器主要和存儲器的局部打交道在經(jīng)過一段時間以后,使用的代碼和數(shù)據(jù)集合會改變設(shè)計多級存儲的體系結(jié)構(gòu)原那么:級別較低存儲器比率小于級別較高存儲器比率假設(shè)兩級存儲器: 第I級包含1KB,存取時間為0.1μs 第II級包含1MB,存取時間為1μs存取I級中的內(nèi)容,直接存取存取II級,首先被轉(zhuǎn)移到I級,然后再存取假設(shè)確定內(nèi)容所在位置時間可以忽略假設(shè)在I級存儲器中發(fā)現(xiàn)存取對象的概率是95%,那么平均訪問時間為:結(jié)果非常接近I級存儲的存取時間T1:I級存儲器的存取時間T2:II級存儲器的存取時間一個簡單二級存儲系統(tǒng)的性能3、存儲分塊存儲最小單位:“二進位〞,包含信息為0或1最小編址單位:字節(jié),一個字節(jié)包含八個二進位主流個人電腦主存:128MB~512MB之間輔助存儲器:在20GB~70GB工作站、效勞器主存:512MB~4GB之間硬盤容量:數(shù)百GB為簡化分配和管理,存儲器分成塊,稱一個物理頁〔Page〕塊的大?。?12B、1K、4K、8K4、存儲保護設(shè)施對主存中的信息加以嚴格的保護,使操作系統(tǒng)及其它程序不被破壞,是其正確運行的根本條件之一多用戶,多任務(wù)操作系統(tǒng):OS給每個運行進程分配一個存儲區(qū)域問題:多個程序同時在同一臺機器上運行怎樣才能互不侵犯?保護的硬件支持為了保證軟件程序只影響程序的內(nèi)部硬件可提供如下功能:界地址存放器〔界限存放器〕存儲鍵地址轉(zhuǎn)換界地址存放器〔界限存放器〕界地址存放器被廣泛使用的一種存儲保護技術(shù)機制比較簡單,易于實現(xiàn)實現(xiàn)方法:在CPU中設(shè)置一對下限存放器和上限存放器存放用戶作業(yè)在主存中的下限和上限地址也可將一個存放器作為基址存放器,另一存放器作為限長存放器〔指示存儲區(qū)長度〕每當CPU要訪問主存,硬件自動將被訪問的主存地址與界限存放器的內(nèi)容進行比較,以判斷是否越界如果未越界,那么按此地址訪問主存,否那么將產(chǎn)生程序中斷——越界中斷〔存儲保護中斷〕界地址存放器存儲保護技術(shù)存儲鍵每個存儲塊有一個由二進位組成的存儲保護鍵一用戶作業(yè)被允許進入主存,OS分給它一個唯一的存儲鍵號并將分配給該作業(yè)各存儲塊存儲鍵也置成同樣鍵號當OS挑選該作業(yè)運行時,OS將它的存儲鍵號放入程序狀態(tài)字PSW存儲鍵〔“鑰匙〞〕域中每當CPU訪問主存時,都將該主存塊的存儲鍵與PSW中的“鑰匙〞進行比較如果相匹配,那么允許訪問,否那么,拒絕并報警地址轉(zhuǎn)換同時有多個程序在內(nèi)存程序在內(nèi)存的位置不是固定的而是隨機的CPUTranslationBox(MMU)虛擬地址物理地址物理空間數(shù)據(jù)讀或?qū)憽膊恍柁D(zhuǎn)換〕現(xiàn)代體系結(jié)構(gòu)中的地址轉(zhuǎn)換codedataheapstack程序2虛地址空間data2stack1code1heap1code2stack2data1heap2OScodeOSdataOSheap&stacks程序1虛地址空間codedataheapstack內(nèi)存地址轉(zhuǎn)換三、中斷技術(shù)中斷對于操作系統(tǒng)的重要性就像機器中的驅(qū)動齒輪一樣所以有人把操作系統(tǒng)稱為是由“中斷驅(qū)動〞或者“〔中斷〕事件驅(qū)動〞中斷機制
中斷機制是操作系統(tǒng)得以正常工作的最重要的手段它使得OS可以捕獲普通程序發(fā)出的系統(tǒng)功能調(diào)用及時處理設(shè)備的中斷請求防止用戶程序中破壞性的活動等等什么是中斷?指CPU對系統(tǒng)中或系統(tǒng)外發(fā)生異步事件的響應(yīng)異步事件是指無一定時序關(guān)系的隨機發(fā)生事件如外部設(shè)備完成數(shù)據(jù)傳輸,實時設(shè)備出現(xiàn)異常等“中斷〞名稱源于:當異步事件發(fā)生后,打斷了對當前程序的執(zhí)行而轉(zhuǎn)去處理該異步事件直到處理完了后,再轉(zhuǎn)回原程序中斷點繼續(xù)執(zhí)行1、中斷的概念中斷定義CPU對系統(tǒng)發(fā)生的某個事件作出的一種反響CPU暫停正在執(zhí)行的程序,保存現(xiàn)場后自動轉(zhuǎn)去執(zhí)行相應(yīng)事件的處理程序,處理完成后返回斷點,繼續(xù)執(zhí)行被打斷的程序從用戶角度看中斷引入中斷的目的解決主機與外設(shè)的并行工作問題提高可靠性實現(xiàn)多機聯(lián)系實現(xiàn)實時控制特點:1)中斷隨機的2)中斷是可恢復(fù)的3)中斷是自動處理的中斷源:引起中斷發(fā)生的事件中斷存放器:記錄中斷中斷字:中斷存放器的內(nèi)容系統(tǒng)堆棧:
在內(nèi)存開辟的一塊區(qū)域,用于臨時保存現(xiàn)場中斷系統(tǒng)的概念中斷類型〔1〕強迫性中斷正在運行的程序所不期望的,由于某種硬件故障或外部請求引起的自愿性中斷用戶在程序中有意識安排的中斷,是由于用戶在編制程序時因為要求操作系統(tǒng)提供效勞,有意使用“訪管〞指令或系統(tǒng)調(diào)用,使中斷發(fā)生中斷類型〔2〕強迫性中斷輸入/輸出(I/O)中斷:主要來自外部設(shè)備通道程序性中斷:運行程序中本身的中斷(如溢出,缺頁中斷,缺段中斷,地址越界)時鐘中斷控制臺中斷硬件故障中斷類型〔3〕自愿性中斷執(zhí)行I/O,創(chuàng)立進程,分配內(nèi)存信號量操作,發(fā)送/接收消息微機中的中斷1.可屏蔽中斷〔IO中斷〕2.不可屏蔽中斷〔機器內(nèi)部故障、掉電中斷〕3.程序錯誤中斷〔溢出、除法錯等中斷〕4.軟件中斷〔Trap指令或中斷指令I(lǐng)NT〕IBM370中的中斷1.機器故障中斷:如電源故障,機器電路檢驗錯等2.輸入輸出中斷:輸入輸出設(shè)備和通道數(shù)據(jù)傳輸狀態(tài)〕3.外部中斷:時鐘中斷,操作員控制臺中斷,多機系統(tǒng)中其它機器的通信要求中斷,各種外設(shè)或傳感器發(fā)來的實時中斷等4.程序中斷:程序中的問題引起的中斷,如錯誤地使用指令或數(shù)據(jù)、溢出等問題,存儲保護等5.訪管中斷:訪管指令或陷阱指令〔Trap指令〕中的操作數(shù)規(guī)定了要求效勞的類型。每當CPU執(zhí)行訪管指令或陷阱指令時,即引起中斷并調(diào)用操作系統(tǒng)相應(yīng)的功能模塊為其效勞2、中斷系統(tǒng)中斷系統(tǒng)的兩大組成局部:硬件中斷裝置和軟件中斷處理程序中斷系統(tǒng)的硬件中斷裝置-中斷系統(tǒng)的機制局部負責(zé)捕獲中斷源發(fā)出的中斷請求,以一定方式響應(yīng)中斷源,然后將處理器控制權(quán)交給特定的中斷處理程序軟件中斷處理程序-中斷系統(tǒng)的策略局部負責(zé)區(qū)分中斷類型并做出相應(yīng)的操作中斷裝置的根本功能提供識別中斷源的方法提供查詢中斷狀態(tài)的方法,通常使用一個存放器存儲有關(guān)中斷的狀態(tài)信息,稱為中斷字提供中斷現(xiàn)場保護的能力提供中斷處理程序?qū)ぶ纺芰?,找到恰當?shù)闹袛嗵幚沓绦蚓哂蓄A(yù)定義的系統(tǒng)控制棧和中斷處理程序入口地址映射表〔中斷向量表)等數(shù)據(jù)結(jié)構(gòu)和它們在主存中的位置,以輔助OS定制中斷處理策略和中斷調(diào)度機制3、中斷邏輯與中斷存放器〔1〕如何接受和響應(yīng)中斷源的中斷請求,因機器而異如,在PC中:有可屏蔽的中斷請求INTR:主要是輸入輸出設(shè)備的I/O中斷,通過建立在PSW中的中斷屏蔽位加以屏蔽,即使再有I/O中斷,處理器也不響應(yīng)不可屏蔽的中斷請求:屬于機器故障中斷,包括內(nèi)存奇偶校驗錯以及掉電等中斷源程序中的問題所引起的中斷〔如溢出、除法錯都可以引起中斷〕和軟件中斷等由于可能有很多中斷源請求同時發(fā)生由中斷邏輯按中斷優(yōu)先級加以判定響應(yīng)哪個中斷請求中斷存放器:有的計算機中,為了區(qū)分和不喪失中斷信號對應(yīng)每個中斷源分別用一固定觸發(fā)器存放中斷信號規(guī)定值為1時,表示有中斷信號,為0時表示無這些觸發(fā)器的全體稱為中斷存放器每個觸發(fā)器稱為一個中斷位所以中斷存放器是由假設(shè)干個中斷位組成中斷邏輯與中斷存放器〔2〕處理器如何發(fā)現(xiàn)中斷信號?處理器的控制部件中設(shè)一個能檢測中斷的機構(gòu)稱為中斷掃描機構(gòu)在每條指令執(zhí)行周期的最后時刻掃描中斷存放器,詢問是否有中斷信號假設(shè)無中斷信號,繼續(xù)執(zhí)行下一條指令假設(shè)有中斷,中斷硬件將該中斷觸發(fā)器內(nèi)容按規(guī)定編碼送入PSW的相應(yīng)位,稱為中斷碼中斷邏輯與中斷存放器〔3〕4、多級中斷和中斷屏蔽多級中斷:多數(shù)微型處理器有著多級中斷系統(tǒng),可以有多根中斷請求線〔級〕從不同設(shè)備連接到中斷邏輯如M68000有七級,PDP11有11級具有相同特性和優(yōu)先級的設(shè)備可連到同一中斷級上中斷優(yōu)先級:在多級中斷系統(tǒng)中,可能同時有多個中斷請求,CPU接受中斷優(yōu)先級為最高的那個中斷忽略其中斷優(yōu)先級較低的那些中斷5、中斷響應(yīng)
CPU如何響應(yīng)中斷,兩個問題:
CPU何時響應(yīng)中斷?通常在CPU執(zhí)行了一條指令以后,更確切地,在指令周期最后時刻接受中斷請求,或此時掃描中斷存放器如何知道提出中斷請求的設(shè)備或中斷源?因為只有知道中斷源或中斷設(shè)備,才能調(diào)用相應(yīng)的中斷處理程序開始取下一條指令執(zhí)行指令檢查指令處理中斷停止取周期執(zhí)行周期中斷周期不允許中斷允許中斷用軟件指令去查詢各設(shè)備接口這種方法比較費時多數(shù)微型機對此問題的解決方法:使用一種“向量中斷〞的硬件設(shè)施“向量中斷〞:當CPU接受某中斷請求時,該設(shè)備接口給處理器發(fā)送具有唯一性的“中斷向量〞,以標識該設(shè)備“中斷向量〞在各計算機上實現(xiàn)方法差異比較大兩種解決方法
中斷向量表在有的機器中:將主存最低位128個字保存作為中斷向量表,每個中斷向量占兩個字中斷請求的設(shè)備接口為了標識自己,向處理器發(fā)送一個該設(shè)備在中斷向量表中表目的地址指針中斷優(yōu)先級在一些機器中,中斷優(yōu)先級按中斷類型劃分:以機器故障中斷的優(yōu)先級最高程序中斷和訪問管理程序中斷次之外部中斷更次之輸入輸出的優(yōu)先級最低中斷屏蔽在CPU上運行的程序,有時由于種種原因,不希望其在執(zhí)行過程中被別的事件所中斷,稱為中斷屏蔽在PSW中設(shè)置中斷屏蔽碼以屏蔽某些指定的中斷類型如果其PSW的中斷禁止位建立后,那么屏蔽中斷〔不包括不可屏蔽的那些中斷〕如果PSW中的中斷禁止位未建立那么可以接受其中斷優(yōu)先級高于運行程序中斷優(yōu)先級的那些中斷各設(shè)備接口中也有中斷禁止位,以禁止該設(shè)備的中斷6、中斷處理〔1〕簡單的中斷處理-典型的處理過程:〔1〕設(shè)備給處理器發(fā)一個中斷信號〔2〕處理器處理完當前指令后響應(yīng)中斷,延遲非常短〔要求處理器沒有關(guān)閉中斷〕〔3〕處理器處理完當前指令后檢測到中斷,判斷出中斷來源并向發(fā)送中斷的設(shè)備發(fā)送了確認中斷信號,確認信號使得該設(shè)備將中斷信號恢復(fù)到一般狀態(tài)〔4〕處理器開始為軟件處理中斷做準備:保存中斷點的程序執(zhí)行上下文環(huán)境,這通常包括程序狀態(tài)字PSW,程序計數(shù)器PC中的下一條指令位置,一些存放器的值,它們通常保存在系統(tǒng)控制棧中,處理器狀態(tài)被切換到管態(tài)〔5〕處理器根據(jù)中斷源查詢中斷向量表,獲得與該中斷相聯(lián)系的處理程序入口地址,并將PC置成該地址,處理器開始一個新的指令周期,控制轉(zhuǎn)移到中斷處理程序〔6〕中斷處理程序開始工作,包括檢查I/O相關(guān)的狀態(tài)信息,操縱I/O設(shè)備或者在設(shè)備和主存之間傳送數(shù)據(jù)等等〔7〕中斷處理結(jié)束時,處理器檢測到中斷返回指令,被中斷程序的上下文環(huán)境從系統(tǒng)堆棧中被恢復(fù)處理器狀態(tài)恢復(fù)成原來的狀態(tài)?!?〕PSW和PC被恢復(fù)成中斷前的值,處理器開始一個新的指令周期,中斷處理結(jié)束中斷處理〔2〕簡單的中斷處理過程多個中斷的處理〔1〕假設(shè)中斷處理過程中又發(fā)生中斷,引起多中斷處理問題兩種策略方法:第一種:處理一個中斷時禁止中斷,對任何新中斷置之不理,在這期間發(fā)生的中斷將保持掛起狀態(tài)當再次允許中斷時,新中斷信號被處理器檢測到軟件實現(xiàn)方法:在任何中斷處理前使用禁止中斷指令在處理結(jié)束后開放中斷指令所有中斷嚴格按照發(fā)生順序處理不考慮中斷緊急程度,無法到達較嚴格時間要求多中斷處理第一種策略方法第二種:中斷按照優(yōu)先度分級允許優(yōu)先級高中斷打斷優(yōu)先級低的中斷處理過程這樣中斷優(yōu)先級技術(shù)將引起中斷處理的嵌套只要適宜地定義中斷的優(yōu)先級別方法一的弊端大都可以克服多個中斷的處理〔2〕多中斷處理第二種策略方法典型的中斷處理〔1〕:I/O中斷由I/O設(shè)備的控制器或者通道發(fā)出兩類I/O中斷:I/O操作正常結(jié)束如果要繼續(xù)I/O操作,需要在準備好以后重新啟動I/O,假設(shè)請求I/O程序正處于等待I/O狀態(tài),那么應(yīng)將其喚醒I/O異常需要重新執(zhí)行失敗的I/O操作重試次數(shù)有上限,次數(shù)過大,系統(tǒng)將判定硬件故障系統(tǒng)多道能力的重要推動力量,時鐘中斷處理程序通常做與系統(tǒng)運轉(zhuǎn)、管理和維護相關(guān)的工作,包括:維護軟件時鐘:系統(tǒng)有假設(shè)干個軟件時鐘,控制定時任務(wù)以及進程的處理器時間配額,時鐘中斷需要維護、定時更新這些軟件時鐘處理器時間調(diào)度:維護當前進程時間片軟件時鐘,并在當前進程時間片到時以后運行調(diào)度程序選擇下一個被調(diào)度的進程控制系統(tǒng)定時任務(wù):通過軟件時鐘和調(diào)度程序定時激活一些系統(tǒng)任務(wù),如監(jiān)測死鎖、系統(tǒng)記帳、系統(tǒng)審計等實時處理典型的中斷處理〔2〕:時鐘中斷典型的中斷處理〔3〕:硬件故障中斷硬件故障中斷處理程序一般需要做的工作:保存現(xiàn)場,使用一定警告手段,提供些輔助診斷信息在高可靠系統(tǒng)中,中斷處理程序還要評估系統(tǒng)可用性,盡可能恢復(fù)系統(tǒng)如Windows2000/XP,關(guān)鍵硬件發(fā)生故障時,如顯示卡損壞,出現(xiàn)系統(tǒng)藍屏,系統(tǒng)實際上進入相應(yīng)故障處理程序,發(fā)現(xiàn)故障不可恢復(fù),那么在屏幕上打印出發(fā)生故障時程序位置,并開始進行內(nèi)存轉(zhuǎn)儲〔將一定范圍的內(nèi)存內(nèi)容寫上磁盤,是系統(tǒng)故障時的全系統(tǒng)“快照〞〕,備日后故障診斷程序指令出錯、指令越權(quán)或者指令尋址越界而引發(fā)兩類處理方法:只能由操作系統(tǒng)的相關(guān)擴展功能模塊完成多為程序試圖作不能做的操作引起的系統(tǒng)保護如訪問合法的、但不在內(nèi)存虛地址內(nèi),引發(fā)頁故障頁故障一般會引發(fā)OS虛存模塊作一個頁面換入可由程序自己完成,如一些算術(shù)運算錯誤不同程序可有不同處理方法,所以很多OS提供由用戶自己處理這類中斷的“綠色通道〞系統(tǒng)調(diào)試中斷〔斷點中斷、單步跟蹤〕也可被用戶程序處理,用以支持各種程序調(diào)試典型的中斷處理(4):程序性中斷典型的中斷處理(5):系統(tǒng)效勞請求〔自愿性中斷〕系統(tǒng)效勞請求由處理器專用指令〔訪管指令〕激發(fā)如x86處理器提供int指令,用來激發(fā)軟件中斷其他不少處理器那么提供系統(tǒng)調(diào)用指令syscall執(zhí)行專用指令的結(jié)果是系統(tǒng)被切換到管態(tài),并且轉(zhuǎn)移到一段專門OS程序處開始執(zhí)行指令格式通常是指令名加請求效勞識別號〔中斷號〕OS利用處理器提供的這種接口建立系統(tǒng)效勞體系處理器一般不負責(zé)定義系統(tǒng)調(diào)用所傳遞的參數(shù)格式DOS:21h號中斷的系統(tǒng)效勞功能以及參數(shù)列表現(xiàn)代操作系統(tǒng)一般不提供直接使用系統(tǒng)調(diào)用指令的接口,通常做法:提供一套方便、實用的應(yīng)用程序函數(shù)庫〔應(yīng)用程序設(shè)計接口API〕從應(yīng)用層面重新封裝系統(tǒng)調(diào)用屏蔽復(fù)雜的系統(tǒng)調(diào)用傳參問題高級語言接口,有助于快速開發(fā)有的系統(tǒng)在更高層面提供系統(tǒng)程序設(shè)計模板庫和類庫如Windows2000/XP提供封裝系統(tǒng)用Win32API和高層編程機制MFC以及ATLLinux提供封裝系統(tǒng)調(diào)用、符合POSIX標準API和C運行庫典型的中斷處理(6):系統(tǒng)效勞請求實例設(shè)備控制器或其他系統(tǒng)硬件發(fā)出中斷處理器完成當前指令的執(zhí)行處理器接受中斷處理器將PSW和PC推入系統(tǒng)堆棧處理器根據(jù)中斷類型讀入新的PC值中斷系統(tǒng)硬件完成的工作保存進程狀態(tài)的其余信息進程中斷恢復(fù)進程狀態(tài)信息從系統(tǒng)堆?;謴?fù)原PSW和PC中斷系統(tǒng)軟件完成的工作強迫性中斷事件自愿性中斷事件保存現(xiàn)場信息保存現(xiàn)場信息取出中斷碼取出訪管號分析中斷原因分析何種系統(tǒng)調(diào)用轉(zhuǎn)相應(yīng)處理程序是否中斷嵌套由系統(tǒng)恢復(fù)現(xiàn)場由系統(tǒng)恢復(fù)現(xiàn)場轉(zhuǎn)低級調(diào)度程序返回上層中斷返回目態(tài)程序需要切換進程TFFT四、I/O技術(shù)I/O控制使用下面幾種技術(shù):程序控制中斷驅(qū)動直接存儲器存取〔DMA〕通道1、程序控制I/O技術(shù)由處理器提供I/O相關(guān)指令來實現(xiàn)I/O處理單元處理請求并設(shè)置I/O狀態(tài)存放器相關(guān)位不中斷處理器,也不給處理器警告信息處理器定期輪詢I/O單元的狀態(tài),直到處理完畢I/O軟件包含直接操縱I/O的指令控制指令:用于激活外設(shè),并告訴它做什么狀態(tài)指令:用于測試I/O控制中的各種狀態(tài)和條件數(shù)據(jù)傳送指令:用于在設(shè)備和主存之間來回傳送數(shù)據(jù)主要缺陷:處理器必須關(guān)注I/O處理單元的狀態(tài),因而消耗大量時間輪詢信息,嚴重地降低了系統(tǒng)性能2、中斷驅(qū)動I/O技術(shù)為了解決程序控制I/O方法的主要問題應(yīng)該讓處理器從輪詢?nèi)蝿?wù)中解放出來使I/O操作和指令執(zhí)行并行起來具體作法:當I/O處理單元準備好與設(shè)備交互的時候通過物理信號通知處理器,即中斷處理器3、DMA技術(shù)〔1〕中斷的引入大大地提高了處理器處理I/O的效率當處理器和I/O間傳送數(shù)據(jù)時,效率仍舊不高解決方法:直接存儲器訪問〔DMA:DirectMemoryAccess〕通過系統(tǒng)總線中一獨立控制單元——DMA控制器自動控制成塊數(shù)據(jù)在內(nèi)存和I/O單元間的傳送大大提高處理I/O的效能DMA技術(shù)〔2〕當處理器需要讀寫一整塊數(shù)據(jù)時給DMA控制單元發(fā)送一條命令包含:是否請求一次讀或?qū)?,I/O設(shè)備的編址,開始讀或?qū)懙闹鞔婢幹罚枰獋魉偷臄?shù)據(jù)長度等信息處理器發(fā)送完命令后就可處理其它事情DMA控制器將自動管理數(shù)據(jù)的傳送當這個過程完成后,它會給處理器發(fā)一個中斷處理器只在開始傳送和傳送結(jié)束時關(guān)注一下就可處理器和DMA傳送不完全并行有時會有總
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年六年級下學(xué)期數(shù)學(xué)三 《反比例》教案
- 2025年婚前協(xié)議書正確模板
- 人教版八年級上冊 歷史與社會 教學(xué)設(shè)計 1.2中華早期國家與社會變革
- (高清版)DB45∕T 566-2020 汽車旅游營地星級劃分
- 2025年衡水健康科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫審定版
- 2025年河南工業(yè)貿(mào)易職業(yè)學(xué)院單招職業(yè)技能測試題庫1套
- 期中綜合練習(xí)-三年級數(shù)學(xué)下冊(含答案)北師大版
- 2024年多媒體電腦超聲診斷儀項目資金籌措計劃書代可行性研究報告
- 2025年黑龍江省伊春市單招職業(yè)傾向性測試題庫1套
- 語文-四川省金太陽2025屆高三2月開學(xué)考試試題和答案
- 【道 法】學(xué)會自我保護+課件-2024-2025學(xué)年統(tǒng)編版道德與法治七年級下冊
- 2025屆高考英語讀后續(xù)寫提分技巧+講義
- 買房協(xié)議書樣板電子版
- 河南航空港發(fā)展投資集團有限公司2025年社會招聘題庫
- 綿陽市高中2022級(2025屆)高三第二次診斷性考試(二診)語文試卷(含答案)
- 常州初三強基數(shù)學(xué)試卷
- 《吞咽障礙膳食營養(yǎng)管理規(guī)范》(T-CNSS 013-2021)
- 《經(jīng)濟學(xué)的研究方法》課件
- 2024年青海省中考生物地理合卷試題(含答案解析)
- 2019譯林版高中英語全七冊單詞總表
- 2024年中鐵集裝箱運輸有限責(zé)任公司招聘筆試參考題庫附帶答案詳解
評論
0/150
提交評論