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

下載本文檔

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

文檔簡介

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

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

1.寄存器(1)計(jì)算機(jī)系統(tǒng)的處理器包括一組寄存器,其個(gè)數(shù)根據(jù)機(jī)型的不同而不同,它們構(gòu)成了一級(jí)存儲(chǔ),比主存容量小,但訪問速度快。這組寄存器所存儲(chǔ)的信息與程序的執(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ái)計(jì)算機(jī)機(jī)器指令的集合稱指令系統(tǒng),它反映了一臺(tái)機(jī)器的功能和處理能力,可以分為以下五類:數(shù)據(jù)處理類指令:用于執(zhí)行算術(shù)和邏輯運(yùn)算。

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

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

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

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

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

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

(2)條件碼;

(3)處理器狀態(tài)位。中斷碼。保存程序執(zhí)行時(shí)當(dāng)前發(fā)生的中斷事件。中斷屏蔽位。指明程序執(zhí)行中發(fā)生中斷事件時(shí),是否響應(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)級(jí),用來表示I/O操作 所處特權(quán)級(jí)。

00:0級(jí) 01:1級(jí)

10:2級(jí) 11:3級(jí)

0~2級(jí):管態(tài)3級(jí):目態(tài)Pentium的處理器狀態(tài)Pentium的處理器狀態(tài)有四種,支持4個(gè)保護(hù)級(jí)別,0級(jí)權(quán)限最高,3級(jí)權(quán)限最低。一種典型的應(yīng)用是把4個(gè)保護(hù)級(jí)別依次設(shè)定為:0級(jí)為操作系統(tǒng)內(nèi)核級(jí)。處理I/O、存儲(chǔ)管理、和其他關(guān)鍵操作。1級(jí)為系統(tǒng)調(diào)用處理程序級(jí)。用戶程序可以通過調(diào)用這里的過程執(zhí)行系統(tǒng)調(diào)用,但是只有一些特定的和受保護(hù)的過程可以被調(diào)用。2級(jí)為共享庫過程級(jí)。它可以被很多正在運(yùn)行的程序共享,用戶程序可以調(diào)用這些過程,讀取它們的數(shù)據(jù),但是不能修改它們。3級(jí)為用戶程序級(jí)。它受到的保護(hù)最少。各個(gè)操作系統(tǒng)在實(shí)現(xiàn)過程中可以根據(jù)具體策略有選擇地使用硬件提供的保護(hù)級(jí)別,如運(yùn)行在Pentium上的Windows操作系統(tǒng)只使用了0級(jí)和3級(jí)。微處理器M68000的程序狀態(tài)字條件位:C:進(jìn)位標(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)先級(jí)和多重中斷Linux中斷處理(自學(xué))2.2.1中斷概念系統(tǒng)處理以下情況時(shí),需要打斷處理器正常工作:請(qǐng)求系統(tǒng)服務(wù),實(shí)現(xiàn)并行工作,處理突發(fā)事件,滿足實(shí)時(shí)要求,為此,提出了中斷概念。中斷定義中斷是指程序執(zhí)行過程中,遇到急需處理的事件時(shí),暫時(shí)中止CPU上現(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完成后再返回原程序被中斷處或調(diào)度其他程序執(zhí)行的過程。中斷系統(tǒng)的概念中斷系統(tǒng)是實(shí)現(xiàn)中斷功能的部件,包括中斷裝置和中斷處理程序。中斷裝置:指發(fā)現(xiàn)中斷,響應(yīng)中斷的硬件。發(fā)現(xiàn)中斷源,提出中斷請(qǐng)求。保護(hù)現(xiàn)場啟動(dòng)處理中斷事件的程序。

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

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

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

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

IPCSPSW現(xiàn)行PSW

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論