2.1處理器管理_第1頁
2.1處理器管理_第2頁
2.1處理器管理_第3頁
2.1處理器管理_第4頁
2.1處理器管理_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2.1中央處理器 2.2中斷技術(shù) 2.3進程及其實現(xiàn) 2.4線程及其實現(xiàn) 2.7處理器調(diào)度 2.8 處理器調(diào)度算法,第2章 處理器管理,主要內(nèi)容: 單處理器系統(tǒng)和多處理器系統(tǒng) 寄存器 特權(quán)指令與非特權(quán)指令 處理器狀態(tài) 程序狀態(tài)字,2.1中央處理器,進程可以被調(diào)度在一個處理器上交替執(zhí)行(并發(fā)),或在多個處理器上同時執(zhí)行(并行)。交替執(zhí)行和同時執(zhí)行都是并發(fā)的類型。,一、單處理器系統(tǒng)和多處理器系統(tǒng)(1),計算機系統(tǒng)的核心是中央處理器。 1.單處理器系統(tǒng):一個計算機系統(tǒng)只包括一個運算處理器。 2.多處理器系統(tǒng):一個計算機系統(tǒng)有多個運算處理器。 3.串行和并行 早期計算機系統(tǒng)是基于單個處理器的順序處理機

2、器,程序員編寫串行執(zhí)行的代碼,讓其在處理器上串行執(zhí)行,每條指令的執(zhí)行也是串行的(取指令、取操作數(shù)、執(zhí)行操作、存儲結(jié)果)。 提高計算機處理速度,發(fā)展了流水線系統(tǒng),以至于發(fā)射體系結(jié)構(gòu),計算機向并行化發(fā)展。,一、單處理器系統(tǒng)和多處理器系統(tǒng)(2),4.計算機系統(tǒng)結(jié)構(gòu)分類 目前計算機系統(tǒng)可以分作以下四類: 單指令流單數(shù)據(jù)流(SISD):一個處理器在一個存儲器中的數(shù)據(jù)上執(zhí)行單條指令流。,單指令流多數(shù)據(jù)流(SIMD):單條指令流控制多個處理單元同時執(zhí)行,每個處理單元包括處理器和相關(guān)的數(shù)據(jù)存儲,一條指令控制了不同的處理器對不同的數(shù)據(jù)進行操作。向量機和陣列機是這類計算機系統(tǒng)的代表 。 SIMD 在一臺SIMD計

3、算機中,有一個控制部件(又稱為控制單元,control unit)和許多處理單元(processing unit)。大量的處理單元通常構(gòu)成陣列,因此SIMD計算機有時也稱為陣列處理機。所有的處理單元在控制部件的統(tǒng)一控制下工作??刂撇考蛩械奶幚韱卧獜V播同一條指令,所有的處理單元同時執(zhí)行這條指令,但是每個處理單元操作的數(shù)據(jù)不同??刂撇考梢杂羞x擇地屏蔽掉一些處理單元,被屏蔽掉的處理單元不執(zhí)行控制部件廣播的指令。,一、單處理器系統(tǒng)和多處理器系統(tǒng)(2),多指令流單數(shù)據(jù)流(MISD):一個數(shù)據(jù)流被傳送給一組處理器,通過這一組處理器上的不同指令操作最終得到處理結(jié)果。 不同的處理器按照不同的模式來協(xié)同處

4、理同一組數(shù)據(jù),期望以最快最好的方式得到結(jié)果。 目前正在研究中,一、單處理器系統(tǒng)和多處理器系統(tǒng)(3),多指令流多數(shù)據(jù)流(MIMD):多個處理器對各自不同的數(shù)據(jù)集同時執(zhí)行不同的指令流??梢园袽IMD系統(tǒng)劃分為共享內(nèi)存緊密耦合MIMD系統(tǒng)和內(nèi)存分布松散耦合MIMD系統(tǒng)兩大類。 根據(jù)處理器分配策略,緊密耦合MIMD系統(tǒng)可以分為主從式系統(tǒng)MSP(Main/Slave Multiprocessor)和對稱式系統(tǒng)SMP(Symmetric Multi-Processor)兩類。 主從式系統(tǒng)(MSP)基本思想是:在一個特別的處理器上運行操作系統(tǒng)內(nèi)核,其他處理器上則運行用戶程序和操作系統(tǒng)例行程序,內(nèi)核負(fù)責(zé)分配和

5、調(diào)度各個處理器,并向其他程序提供各種服務(wù)。,一、單處理器系統(tǒng)和多處理器系統(tǒng)(4),在對稱式多處理器系統(tǒng)(SMP)中有兩個或兩個以上的處理器,操作系統(tǒng)內(nèi)核可以運行在任意一個處理器上。每個處理器都可以自我調(diào)度運行的進程和線程,單個進程的多個線程可在不同處理器上同時運行。操作系統(tǒng)內(nèi)核也被設(shè)計成多進程或多線程,內(nèi)核的各個部分可以并行執(zhí)行。 在松散耦合MIMD系統(tǒng)中,每個處理單元都有一個獨立的內(nèi)存儲器,各個處理單元之間通過設(shè)定的線路或網(wǎng)絡(luò)通信,集群(Cluster)系統(tǒng)都是松散耦合MIMD系統(tǒng)的例子。 集群(Cluster)系統(tǒng)是一組互連的計算機系統(tǒng),屬于分布式系統(tǒng)的一種。集群操作系統(tǒng)也是分布式操作系統(tǒng)

6、的一種。集群系統(tǒng)運行時構(gòu)成統(tǒng)一的計算資源,給人以一臺機器的感覺。集群系統(tǒng)中的每一臺計算機離開集群后自己可以獨立工作。,一、單處理器系統(tǒng)和多處理器系統(tǒng)(5),單指令流單數(shù)據(jù)流(SISD):傳統(tǒng)的計算機系統(tǒng)。 單指令流多數(shù)據(jù)流(SIMD)和多指令流多數(shù)據(jù)流(MIMD)都屬于并行計算機! 多指令流單數(shù)據(jù)流(MISD):目前并沒有一致公認(rèn)的定義,相關(guān)的研究仍然存在爭議,二、寄存器 (1),計算機系統(tǒng)的處理器包括一組寄存器,用于存放數(shù)據(jù)、變量和中間結(jié)果,其個數(shù)根據(jù)處理器型號的不同而不同,它們構(gòu)成了一級存儲,比主存容量小,但訪問速度快。這組寄存器所存儲的信息與程序的執(zhí)行有很大關(guān)系,構(gòu)成了處理器現(xiàn)場。 每一

7、個進程被暫時中止執(zhí)行時,操作系統(tǒng)就要保存相關(guān)的信息(包括處理器現(xiàn)場)以保證未來某個時刻,該進程可以繼續(xù)執(zhí)行。 這些寄存器可分成以下幾類: 通用寄存器 指針及變址寄存器,段選擇符寄存器 I/O地指令指針址寄存器和標(biāo)志寄存器 控制寄存器:存放處理器的控制和狀態(tài)信息,至少包括程序計數(shù)器PC和指令寄存器IR,中斷寄存器以及用于存儲器和I/O模塊控制的寄存器。還有存放將被訪問的存儲單元地址的存儲器地址寄存器,以及存放從存儲器讀出或欲寫入的數(shù)據(jù)的存儲器數(shù)據(jù)寄存器。 外部設(shè)備使用的寄存器 數(shù)據(jù)寄存器或緩沖區(qū) 狀態(tài)寄存器 控制寄存器,CPU和控制寄存器、數(shù)據(jù)寄存器以及緩沖寄存器中的通信方式有三種: 為每一個控

8、制寄存器分配一個I/O端口,通過使用核心態(tài)I/O指令,CPU可以讀寫該端口。 把所有的控制寄存器映射到主存空間,為每個寄存器分配唯一的主存地址,且與用戶的可用主存地址不重疊。 混合方式:既在主存空間開辟數(shù)據(jù)緩沖區(qū),而控制寄存器也有其單獨的I/O端口。 (1)CPU讀取數(shù)據(jù)時,把所需的數(shù)據(jù)地址(主存地址或者I/O端口)放在地址總線上。 (2)在控制總線上插入讀信號,同時另一條信號線標(biāo)明數(shù)據(jù)來自I/O空間還是主存空間; (3)由相應(yīng)的對象(設(shè)備或主存)對請求做出響應(yīng)。,三、特權(quán)指令與非特權(quán)指令 (1),1.程序執(zhí)行的基本過程 計算機的基本功能是執(zhí)行程序,最終被執(zhí)行的程序是存儲在內(nèi)存中的機器指令程序

9、。處理器根據(jù)程序計數(shù)器(PC)從內(nèi)存中取指令到指令寄存器并執(zhí)行它,PC將自動增長或改變?yōu)檗D(zhuǎn)移地址指明下條執(zhí)行的指令。 2.指令功能分類 機器指令的集合稱指令系統(tǒng),反映了一臺機器的功能和處理能力。 指令分為以下五類: (1)數(shù)據(jù)處理類指令:執(zhí)行算術(shù)和邏輯運算。 (2)轉(zhuǎn)移類指令:改變指令執(zhí)行序列,如無條件轉(zhuǎn)移、條件轉(zhuǎn)移等。 (3)數(shù)據(jù)傳送類指令:用于在處理器的寄存器和寄存器、寄存器和存儲器單元、存儲器單元和存儲器之間交換數(shù)據(jù)。,三、特權(quán)指令與非特權(quán)指令 (2),(4)移位與字符串指令:算術(shù)、邏輯、循環(huán)移位;字符串的傳送、比較、查詢、轉(zhuǎn)換。 (5)I/O類指令:用于啟動外圍設(shè)備,讓主存和外圍設(shè)備之

10、間交換數(shù)據(jù)。 3.指令使用權(quán)限分類 引入操作系統(tǒng)后,從資源管理和控制程序執(zhí)行的角度出發(fā),必須把指令系統(tǒng)中的指令分作兩部分:特權(quán)指令和非特權(quán)指令。 特權(quán)指令是指只能提供給操作系統(tǒng)的核心程序使用的指令,如啟動I/O設(shè)備、設(shè)置時鐘、控制中斷屏蔽位、清內(nèi)存、建立存儲鍵,加載PSW(程序狀態(tài)字)等。只有操作系統(tǒng)才能執(zhí)行指令系統(tǒng)中的全部指令(特權(quán)指令和非特權(quán)指令),用戶程序只能執(zhí)行指令系統(tǒng)中的非特權(quán)指令。,三、特權(quán)指令與非特權(quán)指令 (3),如,置程序狀態(tài)字指令屬于特權(quán)指令;啟動外圍設(shè)備進行輸入/輸出的指令也屬于特權(quán)指令,只能在操作系統(tǒng)程序中執(zhí)行,否則會出現(xiàn)多個用戶程序競爭使用外圍設(shè)備而導(dǎo)致I/O混亂。 如

11、果用戶程序試圖執(zhí)行特權(quán)指令,將會產(chǎn)生保護性中斷,轉(zhuǎn)交給操作系統(tǒng)的“用戶非法執(zhí)行特權(quán)指令”的特殊處理程序處理。,中央處理器怎么知道當(dāng)前是操作系統(tǒng)還是一般用戶程序在運行呢?這將依賴于處理器狀態(tài)的標(biāo)志。在執(zhí)行不同程序時,根據(jù)執(zhí)行程序?qū)Y源和機器指令的使用權(quán)限把處理器設(shè)置成不同狀態(tài)。 1.處理器狀態(tài)分類 處理器狀態(tài)又稱為處理器的運行模式,一般的系統(tǒng)把處理器狀態(tài)簡單劃分為核心狀態(tài)(特權(quán)狀態(tài)、系統(tǒng)模式、特態(tài)或管態(tài))和用戶狀態(tài)(目標(biāo)狀態(tài)、用戶模式、常態(tài)或目態(tài))。 2.處理器狀態(tài)與資源和機器指令使用權(quán)限的關(guān)系 當(dāng)處理器處于核心狀態(tài)時,運行可信軟件,程序可以執(zhí)行全部指令,訪問所有主存和系統(tǒng)資源,并具有改變處理器

12、狀態(tài)的能力;當(dāng)處理器處于用戶狀態(tài)時,運行非可信軟件,程序只能執(zhí)行非特權(quán)指令,只能訪問當(dāng)前CPU執(zhí)行的進程的地址空間。 處理器模式位擴展了操作系統(tǒng)的保護權(quán)限,意味著在核心態(tài)執(zhí)行的程序有比用戶態(tài)更多的權(quán)限去訪問主存和執(zhí)行特權(quán)指令,所以模式位被用來區(qū)分可信與非可信軟件。,4 處理器狀態(tài),3. Intel x86 的處理器狀態(tài) Intel x86 的處理器狀態(tài)有四種,支持4個保護級別,0級權(quán)限最高,3級權(quán)限最低 。 一般典型的應(yīng)用把4個特權(quán)級別依次設(shè)定為: 0級為操作系統(tǒng)內(nèi)核級。處理I/O、存儲管理和其他關(guān)鍵操作。 1級為系統(tǒng)調(diào)用處理程序級。用戶程序可以通過調(diào)用這里的過程執(zhí)行系統(tǒng)調(diào)用,但是只有一些特定

13、的和受保護的過程可以被調(diào)用。 2級為共享庫過程級。它可以被很多正在運行的程序共享,用戶程序可以調(diào)用這些過程,讀取它們的數(shù)據(jù),但是不能修改它們。 3級為用戶程序級。受到的保護最少。,各個操作系統(tǒng)在實現(xiàn)過程中可以根據(jù)具體策略有選擇地使用硬件提供的保護級別,如運行在x86上的Windows操作系統(tǒng)只使用了0級和3級。 4.處理器狀態(tài)之間的轉(zhuǎn)換 (1)用戶狀態(tài)向核心狀態(tài)的轉(zhuǎn)換 下面兩種情況會導(dǎo)致從用戶狀態(tài)向核心狀態(tài)的轉(zhuǎn)換,一是程序請求操作系統(tǒng)服務(wù),執(zhí)行一條系統(tǒng)調(diào)用;二是程序運行時,產(chǎn)生了一個中斷(或者異常)事件,運行程序被中斷,讓中斷處理程序工作。這兩種情況都是通過中斷機構(gòu)發(fā)生的。中斷(異常)是用戶態(tài)

14、到核心態(tài)轉(zhuǎn)換的唯一途徑。當(dāng)系統(tǒng)響應(yīng)中斷交換程序狀態(tài)字時,處理中斷事件的處理程序的程序狀態(tài)字的處理器狀態(tài)位一定為“核心態(tài)”。,四、處理器狀態(tài)(4),(2)核心狀態(tài)向用戶狀態(tài)的轉(zhuǎn)換 每臺計算機通常會提供一條特權(quán)指令稱作加載程序狀態(tài)字LPSW(Load PSW),用來實現(xiàn)操作系統(tǒng)向用戶程序的轉(zhuǎn)換。 加載程序狀態(tài)字指令的作用:把哪個程序的程序狀態(tài)字加載到程序狀態(tài)字寄存器中,就意味著該程序獲得CPU控制權(quán)執(zhí)行。,四、處理器狀態(tài)(5),進程切換的完整過程 簡化的:,進程1 CPU(用戶態(tài)),中斷,中斷,內(nèi)核 CPU(核心態(tài)),加載程序狀態(tài)字,進程2 CPU(用戶態(tài)),進程1 CPU(用戶態(tài)),進程2 CP

15、U(用戶態(tài)),五、程序狀態(tài)字寄存器,計算機如何知道當(dāng)前處于何種狀態(tài)?這時能否執(zhí)行特權(quán)指令?通常操作系統(tǒng)都引入程序狀態(tài)字PSW(Program Status Word)來區(qū)別不同的處理器狀態(tài)。 1. IBM360/370系列計算機程序狀態(tài)字的基本格式 8位系統(tǒng)屏蔽(07位):表示允許或禁止某個中斷事件發(fā)生。 4位保護鍵(811位):設(shè)置存儲器保護時,PSW中的這4位保護鍵與欲訪問的存儲區(qū)的存儲鍵相匹配,否則指令不能執(zhí)行。 4位CMWP字段(1215位):PSW基本/擴充控制方式位、開/關(guān)中斷位、運行/等待位、目態(tài)/特態(tài)位。 16位中斷碼字段:與中斷事件對應(yīng),記錄當(dāng)前產(chǎn)生的中斷源。,指令長(32,

16、33位):01/10/11分別表示半字長指令、整字長指令、和一字半長指令。 條件碼(34,35位) 4位程序屏蔽(3639位):表示允許或禁止程序性中斷。 24位指令地址(4063位),2.PSW寄存器包括的內(nèi)容 每個正在執(zhí)行的程序都有一個與其執(zhí)行相關(guān)的PSW,而每個處理器都設(shè)置一個程序狀態(tài)字寄存器。 程序狀態(tài)字寄存器一般包括以下內(nèi)容: (1)狀態(tài)標(biāo)志 (2)控制標(biāo)志 (3)系統(tǒng)標(biāo)志,中斷屏蔽位。指明程序執(zhí)行中發(fā)生中斷事件時,是否響應(yīng)出現(xiàn)的中斷事件。 大多數(shù)計算機的處理器現(xiàn)場中可能找不到一個稱為程序狀態(tài)字寄存器的具體寄存器,但總是有一組控制與狀態(tài)寄存器實際上起到了這一作用。 3. Intel x86的程序狀態(tài)字 在Intel x86中,PSW由標(biāo)志寄存器EFLAGS和指令指針寄存器EIP組成,均為32位。EFLAGS的低16位稱FLAGS,標(biāo)志可劃分為三組:狀態(tài)標(biāo)志、控制標(biāo)志、系統(tǒng)標(biāo)志。 狀態(tài)標(biāo)志:使得一條指令的執(zhí)行結(jié)果影響后面的指令。算術(shù)運算指令使用溢出標(biāo)志,符號標(biāo)志,結(jié)果為零標(biāo)志,輔助進位標(biāo)志,進位標(biāo)志,奇偶校驗標(biāo)

溫馨提示

  • 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

提交評論