《操作系統(tǒng)》-處理器管理_第1頁
《操作系統(tǒng)》-處理器管理_第2頁
《操作系統(tǒng)》-處理器管理_第3頁
《操作系統(tǒng)》-處理器管理_第4頁
《操作系統(tǒng)》-處理器管理_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章處理器管理知識要點掌握處理器狀態(tài)中斷技術(shù)進程及其實現(xiàn)線程及其實現(xiàn)處理器調(diào)度了解Linux進程Linux調(diào)度算法2.1處理器狀態(tài)

處理器程序狀態(tài)字2.1.1處理器

1.寄存器(1)計算機系統(tǒng)的處理器包括一組寄存器,其個數(shù)根據(jù)機型的不同而不同,它們構(gòu)成了一級存儲,比主存容量小,但訪問速度快。這組寄存器所存儲的信息與程序的執(zhí)行有很大關(guān)系,構(gòu)成了處理器現(xiàn)場。1.寄存器(2)通用寄存器--EAX,EBX,ECX和EDX指針及變址寄存器--ESP,EBP,ESI及EDI段選擇符寄存器--CS、DS、SS、ES、FS、GS指令指針寄存器和標(biāo)志寄存器--EIP、EFLAGS控制寄存器--CR0,CR1,CR2和CR3外部設(shè)備使用的寄存器2.指令系統(tǒng)(1)每臺計算機機器指令的集合稱指令系統(tǒng),它反映了一臺機器的功能和處理能力,可以分為以下五類:數(shù)據(jù)處理類指令:用于執(zhí)行算術(shù)和邏輯運算。

I/O類指令:用于啟動外圍設(shè)備,讓主存和設(shè)備交換數(shù)據(jù)。

寄存器數(shù)據(jù)交換類指令:用于在處理器的寄存器和存儲器之間交換數(shù)據(jù)。轉(zhuǎn)移類指令:用于改變執(zhí)行指令序列。處理器控制指令:修改處理器狀態(tài),改變處理器工作方式。2.指令系統(tǒng)(2)在單道程序系統(tǒng)中,用戶程序可以直接使用CPU指令啟動I/O設(shè)備,進行I/O操作。問題是:在多道程序系統(tǒng)中,這種模式可不可行?3.特權(quán)指令與非特權(quán)指令從資源管理和控制程序執(zhí)行的角度出發(fā),把指令系統(tǒng)中的指令分作兩部分:特權(quán)指令和非特權(quán)指令。特權(quán)指令是指只能提供給操作系統(tǒng)的核心程序使用的指令,如啟動I/O設(shè)備、設(shè)置時鐘、控制中斷屏蔽位、清主存、建立存儲鍵,加載PSW等。4.內(nèi)核態(tài)和用戶態(tài)處理器怎么知道當(dāng)前是操作系統(tǒng)還是一般用戶程序在運行呢?處理器狀態(tài)標(biāo)志:管理狀態(tài)(核心狀態(tài)、特態(tài)或管態(tài))和用戶狀態(tài)(目標(biāo)狀態(tài)、常態(tài)或目態(tài))。處理器狀態(tài)的轉(zhuǎn)換。處理器處于管理狀態(tài)時,程序可以執(zhí)行全部指令,使用所有資源,具有改變處只能執(zhí)行非特權(quán)指令。Intelx86的處理器狀態(tài)有四理器狀態(tài)的能力;處理器處于用戶狀態(tài)時,程序種,支持4個保護級別,0級權(quán)限最高,3級權(quán)限最低。5.處理器狀態(tài)及其轉(zhuǎn)換下列情況導(dǎo)致處理器從用戶態(tài)向內(nèi)核態(tài)轉(zhuǎn)換程序請求操作系統(tǒng)服務(wù),執(zhí)行系統(tǒng)調(diào)用;程序運行時,產(chǎn)生中斷或異常事件,運行程序被中斷,轉(zhuǎn)向中斷處理或異常處理程序工作。兩類情況都通過中斷機制發(fā)生,中斷和異常是用戶態(tài)到內(nèi)核態(tài)轉(zhuǎn)換僅有的途徑。從內(nèi)核態(tài)轉(zhuǎn)向用戶態(tài),計算機提供一條特權(quán)指令稱作加載程序狀態(tài)字(Intelx86為iret指令),用來實現(xiàn)從系統(tǒng)(核心態(tài))返回到用戶態(tài),控制權(quán)交給應(yīng)用進程。管態(tài)和目態(tài)的切換6.用戶棧和核心棧

用戶棧:用戶進程空間中開辟的區(qū)域,用于保存應(yīng)用程序的子程序(函數(shù))間相互調(diào)用的參數(shù)、返回值、返回點以及子程序的局部變量。

核心棧:操作系統(tǒng)空間的一塊區(qū)域,用于保存中斷現(xiàn)場和操作系統(tǒng)程序(函數(shù))間相互調(diào)用的參數(shù)、返回值、返回點以及程序局部變量。

棧指針:為硬件棧指針,用戶棧和核心棧共用一個棧指針。2.1.2程序狀態(tài)字(1)計算機如何知道當(dāng)前處于何種工作狀態(tài)?這時能否執(zhí)行特權(quán)指令?通常操作系統(tǒng)都引入程序狀態(tài)字PSW(ProgramStatusWord)來區(qū)別不同的處理器工作狀態(tài)。PSW用來控制指令執(zhí)行順序并保留和指示與程序有關(guān)的系統(tǒng)狀態(tài),主要作用是實現(xiàn)程序狀態(tài)的保護和恢復(fù)。每個程序都有一個與其執(zhí)行相關(guān)的PSW,每個處理器都設(shè)置一個PSW寄存器。程序占有處理器執(zhí)行,它的PSW將占有PSW寄存器。程序狀態(tài)字寄存器(2)PSW寄存器包括以下內(nèi)容:程序基本狀態(tài):

(1)程序計數(shù)器;

(2)條件碼;

(3)處理器狀態(tài)位。中斷碼。保存程序執(zhí)行時當(dāng)前發(fā)生的中斷事件。中斷屏蔽位。指明程序執(zhí)行中發(fā)生中斷事件時,是否響應(yīng)出現(xiàn)的中斷事件。Intelx86程序狀態(tài)字Intelx86中,PSW由標(biāo)志寄存器EFLAGS和指令指針寄存器EIP組成,均為32位。EFLAGS的低16位稱FLAGS,標(biāo)志可劃分為三組:狀態(tài)標(biāo)志、控制標(biāo)志、系統(tǒng)標(biāo)志。微處理器Intel80386的程序狀態(tài)字其中:IF:中斷允許標(biāo)記

IOPL:I/O特權(quán)級,用來表示I/O操作 所處特權(quán)級。

00:0級 01:1級

10:2級 11:3級

0~2級:管態(tài)3級:目態(tài)Pentium的處理器狀態(tài)Pentium的處理器狀態(tài)有四種,支持4個保護級別,0級權(quán)限最高,3級權(quán)限最低。一種典型的應(yīng)用是把4個保護級別依次設(shè)定為:0級為操作系統(tǒng)內(nèi)核級。處理I/O、存儲管理、和其他關(guān)鍵操作。1級為系統(tǒng)調(diào)用處理程序級。用戶程序可以通過調(diào)用這里的過程執(zhí)行系統(tǒng)調(diào)用,但是只有一些特定的和受保護的過程可以被調(diào)用。2級為共享庫過程級。它可以被很多正在運行的程序共享,用戶程序可以調(diào)用這些過程,讀取它們的數(shù)據(jù),但是不能修改它們。3級為用戶程序級。它受到的保護最少。各個操作系統(tǒng)在實現(xiàn)過程中可以根據(jù)具體策略有選擇地使用硬件提供的保護級別,如運行在Pentium上的Windows操作系統(tǒng)只使用了0級和3級。微處理器M68000的程序狀態(tài)字條件位:C:進位標(biāo)志位 V:溢出標(biāo)志位Z:結(jié)果為零標(biāo)志位 N:結(jié)果為負(fù)標(biāo)志位I0–I2:三位中斷屏蔽位S:CPU狀態(tài)標(biāo)志位,為1處于管態(tài),為0處于目態(tài)T:陷阱(Trap)中斷指示位為1,在下一條指令執(zhí)行后引起自陷中斷2.2中斷技術(shù)中斷概念中斷源分類中斷和異常的響應(yīng)及服務(wù)中斷事件處理原則中斷優(yōu)先級和多重中斷Linux中斷處理(自學(xué))2.2.1中斷概念系統(tǒng)處理以下情況時,需要打斷處理器正常工作:請求系統(tǒng)服務(wù),實現(xiàn)并行工作,處理突發(fā)事件,滿足實時要求,為此,提出了中斷概念。中斷定義中斷是指程序執(zhí)行過程中,遇到急需處理的事件時,暫時中止CPU上現(xiàn)行程序的運行,轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完成后再返回原程序被中斷處或調(diào)度其他程序執(zhí)行的過程。中斷系統(tǒng)的概念中斷系統(tǒng)是實現(xiàn)中斷功能的部件,包括中斷裝置和中斷處理程序。中斷裝置:指發(fā)現(xiàn)中斷,響應(yīng)中斷的硬件。發(fā)現(xiàn)中斷源,提出中斷請求。保護現(xiàn)場啟動處理中斷事件的程序。

中斷處理程序:由軟件來完成。主要任務(wù)是處理中斷事件和恢復(fù)正常操作。2.2.2中斷源分類外中斷(中斷或異步中斷)指來自處理器之外的中斷信號,包括時鐘中斷、鍵盤中斷和設(shè)備中斷等;又分可屏蔽中斷和不可屏蔽中斷,每個不同中斷具有不同的中斷優(yōu)先級,表示事件的緊急程度,在處理高一級中斷時,往往會屏蔽部分或全部低級中斷。內(nèi)中斷(異?;蛲街袛?指來自處理器內(nèi)部,通常由于程序執(zhí)行中,發(fā)現(xiàn)與當(dāng)前指令關(guān)聯(lián)的、不正常的、或是錯誤的事件。中斷和異常的區(qū)別(1)

(1)中斷是由與現(xiàn)行指令無關(guān)的中斷信號觸發(fā)的(異步的),且中斷的發(fā)生與CPU處在用戶模式或內(nèi)核模式無關(guān),在兩條機器指令之間才可響應(yīng)中斷,一般來說,中斷處理程序提供的服務(wù)不是為當(dāng)前進程所需的;異常是由處理器正在執(zhí)行現(xiàn)行指令而引起的,一條指令執(zhí)行期間允許響應(yīng)異常,異常處理程序提供的服務(wù)是為當(dāng)前進程所用的。異常包括很多方面,有出錯(fault),也有陷入(trap)等。中斷和異常的區(qū)別(2)

(2)要求“中斷”被快速處理,以便及時響應(yīng)其它中斷信號,所以,中斷處理程序處理過程中是不能阻塞的。“異?!碧幱诒淮驍嗟漠?dāng)前進程上下文中,所提供的服務(wù)是當(dāng)前進程所需要的,所以,異常處理程序處理過程中是可以阻塞的。(3)中斷允許發(fā)生嵌套,但異常大多為一重;異常處理過程中可能會產(chǎn)生中斷,但中斷處理過程中決不會被異常打斷。2.2.3中斷和異常的響應(yīng)及服務(wù)發(fā)現(xiàn)中斷源;保護現(xiàn)場;轉(zhuǎn)向處理中斷/異常事件的處理程序;恢復(fù)現(xiàn)場。

IBMPC機中斷響應(yīng)過程

IPCSPSW現(xiàn)行PSW

寄存器新IP新CS老IP老CS老PSW新棧頂內(nèi)存新PSW2.2.4時鐘中斷(1)時鐘是操作系統(tǒng)進行調(diào)度工作的重要工具如讓分時進程作時間片輪轉(zhuǎn)讓實時進程定時發(fā)出或接收控制信號系統(tǒng)定時喚醒或阻塞一個進程對用戶進程進行記賬。時鐘可分成絕對時鐘和間隔時鐘兩種。2.2.4時鐘中斷(2)Linux系統(tǒng)運行不同的間隔定時器,類型有三種:real間隔定時器-按實際經(jīng)過時間計時,不管進程處在何種模式下運行,包括進程被掛起時,計時總在進行,定時到達時發(fā)送給進程一個SIGALRM信號。virtual間隔定時器-進程在用戶態(tài)下執(zhí)行時才計時,定時到達時發(fā)送給進程一個SIGVTALRM信號。profile間隔定時器-進程執(zhí)行在用戶態(tài)或核心態(tài)時都計時,當(dāng)定時到達時發(fā)送給進程一個SIGROF信號。2.2.5中斷優(yōu)先級和多重中斷1.中斷優(yōu)先級2.中斷屏蔽3.多重中斷事件的處理

計算機執(zhí)行的每一瞬間,可能有幾個中斷事件同時發(fā)生,中斷裝置如何來響應(yīng)同時發(fā)生的中斷呢?

以不發(fā)生中斷丟失為前提,把緊迫程度相當(dāng)?shù)闹袛嘣礆w在同一級,緊迫程度差別大的中斷源歸在不同級,級別高的有優(yōu)先獲得響應(yīng)的權(quán)力,中斷裝置預(yù)定的這個響應(yīng)順序稱為中斷優(yōu)先級。1.中斷優(yōu)先級2.中斷屏蔽在CPU上運行的程序,有時由于種種原因,不希望其在執(zhí)行過程中被別的事件所中斷??删幊讨袛嗫刂破?,可通過指令設(shè)置屏蔽碼。中斷屏蔽是指禁止CPU響應(yīng)中斷或禁止中斷產(chǎn)生。前者指硬件產(chǎn)生中斷請求后,CPU暫時不予響應(yīng)的狀態(tài)。后者指可引起中斷的事件發(fā)生時,硬件不允許提出中斷請求也不通知處理器,故不可能導(dǎo)致中斷。中斷屏蔽的作用延遲或禁止某些中斷的響應(yīng)。系統(tǒng)程序執(zhí)行過程中,不希望產(chǎn)生干擾事件,以免共享數(shù)據(jù)結(jié)構(gòu)受到破壞。程序運行過程中產(chǎn)生某些事件認(rèn)為是正常的,不必加以處理。協(xié)調(diào)中斷響應(yīng)與中斷處理的關(guān)系。確保高優(yōu)先級中斷可以打斷低優(yōu)先級中斷,反之卻不能。防止同級中斷相互干擾。在處理某優(yōu)先級中斷事件時,必須屏蔽該級中斷,以免造成混亂。3.多重中斷事件的處理中斷正在進行處理期間,CPU又響應(yīng)新的中斷事件,于是暫時停止正在運行的中斷處理程序,轉(zhuǎn)去執(zhí)行新的中斷處理程序,就叫多重中斷(又稱中斷嵌套)。對同一優(yōu)先級的不同中斷:采用順序處理方法。對不同優(yōu)先級的中斷,采用以下處理方法:(1)串行處理(2)嵌套處理(3)即時處理4.中斷向量(1)Intelx86機器支持256種中斷信號,從0到255編號組成“中斷向量”。中斷信號源分2類:中斷和異常。中斷分為屏蔽中斷和非屏蔽中斷;異常分為故障(fault)、陷阱(trap)、終止(abort)和編程異常(programmedexception)。Linux中斷向量(2)

非屏蔽中斷和異常的向量是固定的,而屏蔽中斷的向量可通過對中斷控制器編程加以改變。256個中斷向量分配如下:1)0~31的向量對應(yīng)于異常和非屏蔽中斷;2)32~47的向量對應(yīng)于屏蔽中斷,被外部設(shè)備使用;3)48~255的向量分配給軟中斷。Intelx86處理器中斷向量表中斷請求每個能發(fā)送中斷信號的硬件設(shè)備控制器都有一根輸出線,它與中斷控制器8259A的輸入引腳相連,若一個硬件設(shè)備欲向CPU發(fā)送中斷信號,必須申請一條可用的“中斷請求線”,或者說必須申請一個IRQ號,這就是“中斷請求”IRQ(InterruptRequirement)。IRQ號與中斷向量號的對應(yīng)關(guān)系。8259A中斷控制器INTAINTRCPUIRQ15IRQ14IRQ13IRQ12IRQ11IRQ10IRQ9IR0INTAIR1INTIR2IR3IR4IR5IR6IR7IRQ8IRQ4IRQ6IRQ5IRQ1IRQ0IRQ7IRQ3IR0INTAIR1INTIR2IR3IR4IR5IR6IR78259A主片8259A從片5.中斷處理過程簡單的中斷處理-典型的處理過程:(

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論