CHAPTER 2 操作系統(tǒng)的硬件環(huán)境_第1頁
CHAPTER 2 操作系統(tǒng)的硬件環(huán)境_第2頁
CHAPTER 2 操作系統(tǒng)的硬件環(huán)境_第3頁
CHAPTER 2 操作系統(tǒng)的硬件環(huán)境_第4頁
CHAPTER 2 操作系統(tǒng)的硬件環(huán)境_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

A操作系統(tǒng)運行的硬件環(huán)境組成

F毋操作系-■?-??統(tǒng)對?■*-0?運???,?行?,■?,■硬???件,環(huán),?,??境???▼?的?,????要?????-求■??????,?一,?■,??,■?*

討論操作系統(tǒng)設(shè)計者考慮的硬件問題

操作系統(tǒng)運行的硬件環(huán)境組成

?:?中央處理器(CPU)

。存儲系統(tǒng)

?:?中斷機(jī)制

?I/O系統(tǒng)

。時鐘以及時鐘隊列

?:?其他

操作系統(tǒng)的硬件環(huán)境2

概述

任何系統(tǒng)軟件都是硬件功能的延伸

操作系統(tǒng)直接依賴于硬件條件

OS的硬件環(huán)境以較分散的形式同各種管理相結(jié)合

實現(xiàn)操作系統(tǒng)時必須理解的

計算機(jī)基本結(jié)構(gòu)

操作系統(tǒng)管理的重要資源

操作系統(tǒng)的硬件環(huán)境3

簡單的個人計算機(jī)中的部件

Monitor

IVIUIIILUI

操作系統(tǒng)的硬件環(huán)境4

2.1中央處理器(CPU)

專門設(shè)計了一系列基本機(jī)制:

-具有特權(quán)級別的處理器狀態(tài),能在不同特權(quán)級運

行的各種特權(quán)指令

-硬件機(jī)制使得OS可以和普通程序隔離

實現(xiàn)保護(hù)和控制

操作系統(tǒng)的硬件環(huán)境5

CPU的構(gòu)成與基本工作方式

?:?處理器由運算器、控制器、一系列的寄存器以及

高速緩存構(gòu)成

?:?運算器實現(xiàn)指令中的算術(shù)和邏輯運算,是計算機(jī)

計算的核心

?:?控制器負(fù)責(zé)控制程序運行的流程,包括取指令、

維護(hù)CPU狀態(tài)、CPU與內(nèi)存的交互等等

操作系統(tǒng)的硬件環(huán)境6

。寄存器是指令在CPU內(nèi)部作處理的過程中暫存數(shù)據(jù)、地

址以及指令信息的存儲設(shè)備。

在計算機(jī)的存儲系統(tǒng)中它具有最快的訪問速度。

。高速緩存處于CPU和物理內(nèi)存之間

一般由控制器中的吃拿管理單元(MMU:Memory

ManagementUnit)管理

訪問速度快于內(nèi)存,低于寄存器

利用程序局部性原理使得高速指令處理和低速內(nèi)存訪問

得以匹配,從而提高CPU的效率。

操作系統(tǒng)的硬件環(huán)境7

處理器中的寄存器

I■1■1■?a1??>??t???,???4BI?flBI■?BtBIB4?4B1??B?■■■?BI■■?4BI????BI?l?

?:?寄存器提供了一定的存儲能力

。速度比主存快得多

?:?造價高,容量一般都很小

兩類寄存器:

?:?用戶可見寄存器,高級語言編譯器通過算法分

配并使用之,以減少程序訪問主存次數(shù)

?:?控制和狀態(tài)寄存器,用于控制處理器的操作

由OS的特權(quán)代碼使用,以控制其他程序的執(zhí)行

操作系統(tǒng)的硬件環(huán)境8

用戶可見寄存器

。機(jī)器語言直接引用

。包括數(shù)據(jù)寄存器、地址寄存器以及條件碼寄存器

。數(shù)據(jù)寄存器(dataregister)又稱通用寄存器

主要用于各種算術(shù)邏輯指令和訪存指令

?:?地址寄存器(addressregister)用于存儲數(shù)據(jù)及指令

的物理地址、線性地址或者有效地址,用于某種特

定方式的尋址。如indexregister>segmentpointer>

stackpointer

。條件碼寄存器保存CPU操作結(jié)果的各種標(biāo)記位"三八

如算術(shù)運算產(chǎn)生的溢出、符號等等

操作系統(tǒng)的硬件環(huán)境9

控制和狀態(tài)寄存器

■-.,■?<???a???.,,-■-v??i?■??M,??■■■,?,*,w?■-?,????n-d

?:?用于控制處理器的操作

?:?大部分對于用戶是不可見的

-^―:--

?:?一部分可以在某種特權(quán)模式(OS使用)下訪問

常見的控制和狀態(tài)寄存器:

?:?程序計數(shù)器(PC:ProgramCounter),記錄將要

取出的指令的地址

?:?指令寄存器(IR:InstructionRegister),包含最

近取出的指令

?:?程序狀態(tài)字(PSW:ProgramStatusWord),記

錄處理器的運行模式信息等等

操作系統(tǒng)的硬件環(huán)境10

指令執(zhí)行的基本過程

。先從存儲器中每次讀取一條指令

?:?然后執(zhí)行這條指令

一個單條指令處理過程稱為一個指令周期;

程序的執(zhí)行是由不斷取指和執(zhí)行的指令周期組成;

僅當(dāng)關(guān)機(jī)、出錯或有停機(jī)相關(guān)指令時,程序才停止.

操作系統(tǒng)的硬件環(huán)境11

?:?每個指令周期開始時,依據(jù)在程序計數(shù)

器中的指令地址從存儲器中取一條指令

?:?在取指完成后根據(jù)指令類別自動將程序

計數(shù)器的值變成下條指令的地址,自增1

。取到的指令放在指令寄存器中

?:?處理器解釋并執(zhí)行所要求的動作

操作系統(tǒng)的硬件環(huán)境12

5類指令

。訪問存儲器指令:

處理器和存儲器間數(shù)據(jù)傳送

?I/O指令:

處理器和I/O模塊間數(shù)據(jù)傳送和命令發(fā)送

?:?算術(shù)邏輯指令(數(shù)據(jù)處理指令):

執(zhí)行數(shù)據(jù)算術(shù)和邏輯操作

?:?控制轉(zhuǎn)移指令:

指定一個新的指令的執(zhí)行起點

?:?處理器控制指令:

修改處理器狀態(tài),改變處理器工作方式

操作系統(tǒng)的硬件環(huán)境13

特權(quán)指令和非特權(quán)指令

特權(quán)指令:只能由操作系統(tǒng)使用的指令。

?:?使用多道程序設(shè)計技術(shù)的計算機(jī)指令系統(tǒng)必須

要區(qū)分為特權(quán)指令和非特權(quán)指令

?:?特權(quán)指令一般引起處理器狀態(tài)的切換

米處理器通過特殊的機(jī)制將處理器狀態(tài)切換到

操作系統(tǒng)運行的特權(quán)狀態(tài)(管態(tài))

米然后將處理權(quán)移交給操作系統(tǒng)中的一段特殊

代碼,這一個過程稱為陷入

□CPU如何知道當(dāng)前運行的是操作系統(tǒng)還是一般

應(yīng)用軟件?有賴于處理器狀態(tài)的標(biāo)識。

操作系統(tǒng)的硬件環(huán)境14

處理器的狀態(tài)

IBI■I■4Bt?IB??f??BIBt?4BIfrflBI?tBtBIB4?4B1■?B?■t??BI?1?4BI■??IBtBI?

?:?根據(jù)運行程序?qū)Y源和機(jī)器指令的使用權(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à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)(目標(biāo)狀態(tài))三種。

操作系統(tǒng)的硬件環(huán)境15

實例:x86系列處理器

!"■|"■I*!?*?<-??">1-■l*B1*■?*?i-?t-l?"?t-??-??-??-?1-????

■??,??二?,??廣*■?,???,,■???,?■?*■???,???■*???,?r??,,?,??,?,?■???,??,*■?-ar??,?,

B&386、486、Pentium系列都支持4個處理器特

權(quán)級別(特權(quán)環(huán):RO、RI、R2和R3)

?:?從R0到R3特權(quán)能力依次降低

?:.R0相當(dāng)于雙狀態(tài)系統(tǒng)的管態(tài)

?:出3相當(dāng)于目態(tài)

和R2則介于兩者之間,它們能夠運行的指

令集合具有包含關(guān)系:

R0—1R1—/火221R3

操作系統(tǒng)的硬件環(huán)境16

flBIBt■4B1?1B4B1?4?III?4?I?4BIBtBtBI1114B1BtBflB1?4?IIt?4,■?<>??1■I?

各個級別有保護(hù)性檢查7地址校驗,i/o限制I

特權(quán)級別之間的轉(zhuǎn)換方式不盡相同

四個級別運行不同類別的程序:

?:.RO-運行操作系統(tǒng)核心代碼

?:*R1-運行關(guān)鍵設(shè)備驅(qū)動程序和I/O處理例程

?:+R2-運行其他受保護(hù)共享代碼,如語言系統(tǒng)運行

環(huán)境

?:+R3-運行各種用戶程序

現(xiàn)有基于x86處理器的操作系統(tǒng),多數(shù)UNIX、

Linux以及Windows系列大都只用了R0和R3兩個

特權(quán)級別

操作系統(tǒng)的硬件環(huán)境17

管態(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)

級的操作系統(tǒng)的硬件環(huán)境18

程序狀態(tài)字PSW

在PSW中專門設(shè)置一位,根據(jù)運行程序使

用指令的權(quán)限而設(shè)置CPU狀態(tài)。

?:.CPU的工作狀態(tài)碼——指明管態(tài)還是目態(tài),

用來說明當(dāng)前在CPU上執(zhí)行的是操作系統(tǒng)

還是一般用戶,從而決定其是否可以使用

特權(quán)指令或擁有其他的特殊權(quán)力。

?:?條件碼——反映指令執(zhí)行后的結(jié)果特征。

?:?中斷屏蔽碼——指出是否允許中斷。

操作系統(tǒng)的硬件環(huán)境19

例:微處理器M68000的程序狀態(tài)字

1111119876543210

543210

條件位:

C:進(jìn)位標(biāo)志位V:溢出標(biāo)志位

Z:結(jié)果為零標(biāo)志位N:結(jié)果為負(fù)標(biāo)志位

10-12:三位中斷屏蔽位

S:CPU狀態(tài)標(biāo)志位,為1處于管態(tài),為0處于目態(tài)

T:陷阱(Trap)中斷指示位為1,

在下一條指令執(zhí)行后引起自陷中斷

操作系統(tǒng)的硬件環(huán)境20

例:微處理器Pentium的程序狀態(tài)字

,■I■4??"141fM4?I?<?4?I?tB?"■tBIB4BII4B1■?*'?■1t?4-B?B??1*?I?t?1"■I■I?

■,-IB*??,.?■■**■,.?,,??.?*m*'m?,?,-*vi*■,.?,?,??,,■?■.

31222120191817161514131211109876543210

VV

IAVRNI00DITSZAPC

II0001

DCMFTPLFFFFFFFFF

PF

CF:進(jìn)位標(biāo)志位標(biāo)準(zhǔn)條件位:

ZF:結(jié)果為零標(biāo)志位TF:陷阱標(biāo)志位

SF:符號標(biāo)志位IF:中斷允許(中斷屏蔽)標(biāo)志位

OF:溢出標(biāo)志位VIF:虛擬中斷標(biāo)志位

VIP:虛擬中斷待決標(biāo)志位

IOPL:IO特權(quán)級別

操作系統(tǒng)的硬件環(huán)境21

CPU狀態(tài)的轉(zhuǎn)換

目態(tài)f管態(tài)

唯一途徑是中斷

管態(tài)f目態(tài)

設(shè)置PSW(修改程序狀態(tài)字)可實現(xiàn)

操作系統(tǒng)的硬件環(huán)境22

2.2存儲系統(tǒng)

支持OS運行硬件環(huán)境的一個重要方面:

。作業(yè)必須把它的程序和數(shù)據(jù)存放在內(nèi)存中才能

運行;

。多道程系統(tǒng)中,若干個程序和相關(guān)的數(shù)據(jù)要放

入內(nèi)存;操作系統(tǒng)要管理、保護(hù)程序和數(shù)據(jù),

使它們不至于受到破壞;

。操作系統(tǒng)本身也要存放在內(nèi)存中并運行。

操作系統(tǒng)的硬件環(huán)境23

存儲器的類型

半導(dǎo)體存儲器

?:?存儲器芯片的內(nèi)部組織結(jié)構(gòu)

?:?靜態(tài)存儲器(SRAM)

。異步動態(tài)隨機(jī)存儲器(DRAM)

。同步動態(tài)隨機(jī)存儲器(SDRAM)

?雙倍數(shù)據(jù)速率SDRAM(DDRSDRAM)(開放

標(biāo)準(zhǔn))

Otih^Rambus公司的SDRAM

S

操作系統(tǒng)的硬件環(huán)境24

只讀型存儲器

?ROM(Read-OnlyMemory):只能從其中讀取數(shù)

據(jù),但不能隨意用普通方法寫入數(shù)據(jù)(寫入數(shù)據(jù)只

能用特殊方法)

米在微機(jī)中,一些常駐內(nèi)存的模塊以微程序形式固

化在ROM中,如:PCBIOS和CBASIC解釋程序被

固化于ROM中

?PROM:可編程只讀存儲器,使用特殊PROM寫入

器寫入數(shù)據(jù)

?EPROM:電可擦寫可編程只讀存儲器,用特殊的紫

外線光照射此芯片,以“擦去”信息,恢復(fù)原來狀

態(tài),再使用特殊EPROM寫入器寫入數(shù)據(jù)

*閃存(flashmemory)

操作系統(tǒng)的硬件環(huán)境25

存儲器的層次結(jié)構(gòu)

存儲系統(tǒng)設(shè)計三個問題:

容量、速度和成本

?:?容量:需求無止境

?:?速度:能匹配處理器的速度

?:?成本問題:成本和其他部件相比應(yīng)在合適范圍

之內(nèi)

操作系統(tǒng)的硬件環(huán)境26

容量、速度和成本

。三個目標(biāo)不可能同時達(dá)到最優(yōu),要作權(quán)衡

。存取速度快,每比特價格高

。容量大,每比特價格越低,同時存取速度也越慢

解決方案:采用層次化的存儲體系結(jié)構(gòu)

。當(dāng)沿著層次下降時也

。每比特的價格將下降,容量將增大………

?:?速度將變慢,處理器的訪問頻率也將下降

操作系統(tǒng)的硬件環(huán)境27

TypicalaccesstimeTypicalcapacity

1nsecRegisters<1KB

2nsecCache1MB

10nsecMainmemory64-512MB

10msecMagneticdisk5-50GB

100secMagnetictape20-100GB

操作系統(tǒng)的硬件環(huán)境28

存儲訪問局部性原理

?■IBtIIBt?t??■t????B4>I?fl??"■I?9B4BI■1?1?t-??"■4?4B?B??1"?1?t?I?f■???

提高存儲系統(tǒng)效能關(guān)鍵點:程序存儲訪問局部性原理

。程序執(zhí)行時,有很多的循環(huán)和子程序調(diào)用,一旦進(jìn)入

這樣的程序段,就會重復(fù)存取相同的指令集合;

?:?對數(shù)據(jù)存取也有局部性,在較短的時間內(nèi),穩(wěn)定地保

持在一個存儲器的局部區(qū)域。

處理器主要和存儲器的局部打交道

在經(jīng)過一段時間以后,使用的代碼和數(shù)據(jù)集合會改變

操作系統(tǒng)的硬件環(huán)境29

設(shè)計多級存儲的體系結(jié)構(gòu)

?BIB414?t??■t??B????1?t■?**????BIBt*B4*1??14??*?I■??1?t?I?1■l-?

原則:級別較低存儲器比率小于級別較高存儲器比率

假設(shè)兩級存儲器:

?:?第I級包含1KB,存取時間為O.l〃s

?:?第n級包含1MB,存取時間為l〃s

存取I級中的內(nèi)容,直接存取

存取II級,首先被轉(zhuǎn)移到I級,然后再存取

假設(shè)確定內(nèi)容所在位置時間可以忽略

若在I級存儲器中發(fā)現(xiàn)存取對象的概率是95%,則平均訪

問時間為:

(0.95X0.1//5)+(0.05Xo.l/zs+l〃s)=0.15"s

結(jié)果非常接近I級存儲的存取時間

操作系統(tǒng)的硬件環(huán)境30

0僅僅涉及I級的存取部分的比例1

一個簡單二級存儲系統(tǒng)的性能

操作系統(tǒng)的硬件環(huán)境31

存儲分塊

。存儲最小單位:“二進(jìn)位”,包含信息為0或1

?:?最小編址單位:字節(jié),一個字節(jié)包含八個二進(jìn)位

主流個人電腦

米主存:128MB?512MB之間

米輔助存儲器:在20GB?70GB

工作站、服務(wù)器

米主存:512MB?4GB之間

米硬盤容量:數(shù)百GB

為簡化分配和管理,存儲器分成塊,稱一個物理頁

(Page)

?:?塊的大小:512B、IK、4K、8K

操作系統(tǒng)的硬件環(huán)境32

存儲保護(hù)設(shè)施

對主存中的信息加以嚴(yán)格的保護(hù),使操作系統(tǒng)

及其他程序不被破壞,是其正確運行的基本條

件之一。

多用戶,多任務(wù)操作系統(tǒng):1

OS給每個運行進(jìn)程分配一個存儲區(qū)域。

問題:

?:?多個程序同時在同一臺機(jī)器上運行,怎樣才能

互不侵犯?

。如何處理重定位?

操作系統(tǒng)的硬件環(huán)境33

保護(hù)的硬件支持

解決方案依賴于配有特殊硬件的CPU

硬件可提供如下功能:

?:?界地址寄存器(界限寄存器)

?:?存儲鍵

y

操作系統(tǒng)的硬件環(huán)境34

界地址寄存器(界限寄存器)

?1*■1-1?-?[?■?-?<-??->1-?1*??-?t-?t*tI-B1-?

■“■,??,??”??,"■?■r'■???■■??????,*■?■■r,?,■?■???,-■?-■?*■**■r*W?■,?,?■,?,*■???二?■,??

B?,界地址寄存器被廣泛使用的一種存儲保護(hù)技術(shù)

?:?機(jī)制比較簡單,易于實現(xiàn)

實現(xiàn)方法:(Q3

。在CPU中設(shè)置一對下限寄存器和上限寄存器,廿

存放用戶作業(yè)在主存中的下限和上限地址

?:?也可將一個寄存器作為基址寄存器,另一寄存器作

為限長寄存器(指示存儲區(qū)長度)

?:?每當(dāng)CPU要訪問主存,硬件自動將被訪問的主存地址

與界限寄存器的內(nèi)容進(jìn)行比較,以判斷是否越界

。如果未越界,則按此地址訪問主存,否則將產(chǎn)生程

序中斷—越界中斷(存儲保護(hù)中斷)

操作系統(tǒng)的硬件環(huán)境35

Registers

when

OxFFFFFFFFprogram2

isrunning

Registers

Userprogramv-Limit-2

when

anddata

program1User-2data

isrunning.15ase

lirnifLimit-2?

UserprogramBase-2User-1data

anddatay-Limit-1

Limit-1—Userprogram

Rase?Base-1—ay—Base-1

OperatingOperating

System界地址寄存器System

o存儲保護(hù)技術(shù)

(a)(b)境36

■存儲鍵

??,?,???”?”/???WW,?”?"?”??*.?

.:.每個存儲塊有一個由二進(jìn)位組成的存儲保

護(hù)鍵

?:?一用戶作業(yè)被允許進(jìn)入主存,OS分給它一

個唯一的存儲鍵號

?:?并將分配給該作業(yè)各存儲塊存儲鍵也置成

同樣鍵號

?:?當(dāng)os挑選該作業(yè)運行時,os將它的存儲鍵

號放入程序狀態(tài)字PSW存儲鍵(“鑰匙”)

城中

?:?稼當(dāng)CPU訪問主存時,都將該主存塊的存儲

鍵與PSW中的“鑰匙”進(jìn)行比較

?:?如果相匹配,則允許訪問,否則,拒絕并

報警

操作系統(tǒng)的硬件環(huán)境37

2.3緩沖技術(shù)

緩沖區(qū)是硬件設(shè)備之間進(jìn)行數(shù)據(jù)傳輸時,用來

暫存數(shù)據(jù)的一個存儲區(qū)域

緩沖技術(shù)三種用途:

。處理器與主存儲器之間

?:?處理器和其他外部設(shè)備之間

。設(shè)備與設(shè)備之間的通信

目的:解決部件之間速度不匹配的問題

操作系統(tǒng)的硬件環(huán)境38

多緩沖區(qū)(Cache)技術(shù)

單緩沖區(qū):

?:?設(shè)備向緩沖區(qū)輸入數(shù)據(jù)直到裝滿后

必須等待CPU將其取完,才能繼續(xù)向其中輸入數(shù)據(jù)

。為了提高設(shè)備利用率,單緩沖區(qū)不夠

多緩沖區(qū)(Cache)技術(shù):

?Cache:離CPU最近,使CPU快速訪問常使用的數(shù)據(jù)

?:.CPU首先到一級Cache中找

?:?如果沒有,CPU到二級Cache中找

。如果沒有,CPU到系統(tǒng)內(nèi)存中找

操作系統(tǒng)的硬件環(huán)境39

級Cache,CPU先訪問,性能對系統(tǒng)性能作用很大

CPU

Cache與主存儲器

操作系統(tǒng)的硬件環(huán)境40

蠹2.4中斷技術(shù)

口口??诳诳诳诳诳诳诳诳诳诳诳?。匚?口口口口口口。。匚,

中斷對于操作系統(tǒng)的重要性

就像機(jī)器中的驅(qū)動齒輪一樣、

所以有人把操作系統(tǒng)稱為是由、

“中斷驅(qū)動”或者“(中斷)事件驅(qū)動”

?:?它使得OS可以捕獲用戶程序發(fā)出的系統(tǒng)功

能調(diào)用

?:?及時處理設(shè)備的中斷請求

?:?防止用戶程序中破壞性的活動等等

操作系統(tǒng)的硬件環(huán)境41

中斷的概念

?!-?I*?1*

?:*CPU對系統(tǒng)發(fā)生的某個事件作出的一種反應(yīng)

?:.CPU暫停正在執(zhí)行的程序,保留現(xiàn)場后自動轉(zhuǎn)

去執(zhí)行相應(yīng)事件的處理程序,處理完成后返回

斷點,繼續(xù)執(zhí)行被打斷的程序

特點:

引入中斷的目的

?:?解決主機(jī)與外設(shè)的并1)中斷隨機(jī)的

行工作問題2)中斷是可恢復(fù)的

?:?實現(xiàn)實時控制3)中斷是自動處理的

操作系統(tǒng)的硬件環(huán)境42

中斷/異常:指系統(tǒng)發(fā)生某個異步/同步事件后,處理機(jī)

暫停正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行處理該事件程序的過程。

中斷的引入:為了開發(fā)CPU和通道(或設(shè)備)之間的并行

操作,當(dāng)CPU啟動通道(或設(shè)備)進(jìn)行輸入/輸出后,通道

便(或設(shè)備)可以獨立工作了,CPU也可以轉(zhuǎn)去做與此次

輸入/輸出不相關(guān)的事情,那么通道(或設(shè)備)輸入/輸

出完成后,還必須告訴CPU繼續(xù)輸入/輸出以后的事情,

通道(或設(shè)備)通過向CPU發(fā)中斷告訴CPU此次輸入/輸出

結(jié)束。

2

操作系統(tǒng)的硬件環(huán)境43

異常引入:用于表示CPU執(zhí)行指令時本身出現(xiàn)算

術(shù)溢出、零做除數(shù)、取數(shù)時的奇偶錯,訪存指令

越界或就是執(zhí)行了一條所謂“異常指令”(用于

實現(xiàn)系統(tǒng)調(diào)用)等情況,這時中斷當(dāng)前的執(zhí)行流

程,轉(zhuǎn)到相應(yīng)的錯誤處理程序或異常處理程序。

注意:最早中斷和異常并沒有區(qū)分,都把它們叫

做中斷。隨著它們的發(fā)生原因和處理方式的差別

愈發(fā)明顯,才有了以后的中斷和異常。

操作系統(tǒng)的硬件環(huán)境44

I/O中斷

「中斷(外中斷)

時鐘中斷

廣義中斷系統(tǒng)調(diào)用

缺頁異常

異常(內(nèi)中斷)<斷點指令

其他程序性異常

I(如算術(shù)溢出等)

中斷(狹義)與異常的區(qū)別:

中斷:與正執(zhí)行指令無關(guān),可以屏蔽

異常:與正執(zhí)行指令有關(guān),不可屏蔽

操作系統(tǒng)的硬件環(huán)境45

中斷系統(tǒng)

■-?I**?*■i"??*■i-?1-■4-Bi*??-Be-?i*>?-?i-??-?i"??*?

■??,?????”??,"■?*r'■?*■*■r??,***■■r??,■r??,'■?-■?■■r,■,?,?,*■?*r-■???二?■,**

>中斷系統(tǒng)是現(xiàn)代計算機(jī)系統(tǒng)的核心機(jī)制之一;

A硬件和軟件相互配合、相互滲透而使得計算機(jī)系統(tǒng)得以

充分發(fā)揮能力的計算模式;

?中斷系統(tǒng)的兩大組成部分:硬件中斷裝置和軟件中斷處

理程序。

。中斷系統(tǒng)的硬件中斷裝置-中斷系統(tǒng)的機(jī)制部分

負(fù)責(zé)捕獲中斷源發(fā)出的中斷請求,以一定方式響應(yīng)中

斷源,然后將處理器控制權(quán)交給特定的中斷處理程序

?:?軟件中斷處理程序-中斷系統(tǒng)的策略部分

負(fù)責(zé)辨別中斷類型并做出相應(yīng)的操作

操作系統(tǒng)的硬件環(huán)境46

中斷系統(tǒng)中的相關(guān)概念

?:?中斷源:引起中斷發(fā)生的事件

?:?中斷寄存器:記錄中斷

?:?中斷字:中斷寄存器的內(nèi)容

系統(tǒng)堆棧:

在內(nèi)存開辟的一塊區(qū)域,用于臨時保存現(xiàn)

操作系統(tǒng)的硬件環(huán)境47

中斷優(yōu)先級和中斷屏蔽

中斷優(yōu)先級設(shè)計原則:一般來說,高速設(shè)備的中

斷優(yōu)先級高,慢速設(shè)備的中斷優(yōu)先級低。因為高

速設(shè)備的中斷被處理機(jī)優(yōu)先響應(yīng)時,可以讓處理

機(jī)盡快地向它發(fā)出下一個I/O請求,提高高速設(shè)

備的利用率。

如:PDP-n機(jī)上的UNIX系統(tǒng)把中斷級別分為:

時鐘中斷中斷優(yōu)先級=6級

磁盤中斷——中斷優(yōu)先級=5級

終端等其他外設(shè)中斷一一中斷優(yōu)先級=4級

操作系統(tǒng)的硬件環(huán)境48

處理機(jī)優(yōu)先級:指出處理機(jī)正運行程序的中

斷響應(yīng)級別。即當(dāng)處理機(jī)處于某一優(yōu)先級時,

只允許處理機(jī)去響應(yīng)比該優(yōu)先級高的中斷,而

屏蔽低于或等于該優(yōu)先級的中斷??梢酝ㄟ^

置處理機(jī)優(yōu)先級來通知硬件:屏蔽優(yōu)先級小

于等于處理機(jī)優(yōu)先級的中斷。

中斷屏蔽:指禁止處理機(jī)響應(yīng)中斷或禁止中

斷出現(xiàn)。

操作系統(tǒng)的硬件環(huán)境49

中斷屏蔽有兩種方法:

硬件實現(xiàn)一一由軟件置處理機(jī)優(yōu)先級,

硬件按系統(tǒng)設(shè)計時的約定,屏蔽那些低優(yōu)

先級中斷。

軟件實現(xiàn)——由軟件按操作系統(tǒng)優(yōu)先級

約定,設(shè)置屏蔽寄存器。

操作系統(tǒng)的硬件環(huán)境50

中斷類型

?:?強(qiáng)迫性中斷

正在運行的程序所不期望的,由于某種硬件

故障或外部請求引起的。

?:?自愿性中斷

用戶在程序中有意識安排的中斷,是由于用

戶在編制程序時因為要求操作系統(tǒng)提供服務(wù),

有意使用“訪管”指令或系統(tǒng)調(diào)用,使中斷

發(fā)生。

操作系統(tǒng)的硬件環(huán)境51

<

一.…,i

強(qiáng)迫性中斷

?:?輸入/輸出(I/O)中斷:主要來自外部設(shè)備通

?:?程序性中斷:運行程序中本身的中斷

(如溢出,缺頁中斷,缺段中斷,地址越界)

?:?時鐘中斷

?:?控制臺中斷

?:?硬件故障

操作系統(tǒng)的硬件環(huán)境52

自愿性中斷

?:?執(zhí)行I/O,創(chuàng)建進(jìn)程,分配內(nèi)存

?:?信號量操作,發(fā)送/接收消息

操作系統(tǒng)的硬件環(huán)境53

微機(jī)中的中斷

1.可屏蔽中斷(10中斷)

2.不可屏蔽中斷(機(jī)器內(nèi)部故障、掉電中斷)

3.程序錯誤中斷(溢出、除法錯等中斷)

4.軟件中斷(Trap指令或中斷指令I(lǐng)NT)

操作系統(tǒng)的硬件環(huán)境54

IBM370中的中斷

?1.機(jī)器故障中斷:如電源故障,機(jī)器電路檢驗錯等

?2.輸入輸出中斷:輸入輸出設(shè)備和通道數(shù)據(jù)傳輸狀態(tài))

?3.外部中斷:時鐘中斷,操作員控制臺中斷,多機(jī)系統(tǒng)

中其他機(jī)器的通信要求中斷,各種外設(shè)或傳感器發(fā)來的實

時中斷等

?4.程序中斷:程序中的問題引起的中斷,如錯誤地使用

指令或數(shù)據(jù)、溢出等問題,存儲保護(hù)等

05.訪管中斷:訪管指令或陷阱指令(Trap指令)中的操

作數(shù)規(guī)定了要求服務(wù)的類型。每當(dāng)CPU執(zhí)行訪管指令或陷

阱指令時,即引起中斷并調(diào)用操作系統(tǒng)相應(yīng)的功能模塊為

其服務(wù)

操作系統(tǒng)的硬件環(huán)境55

中斷響應(yīng)

CPU如何響應(yīng)中斷,兩個問題:

?:*CPU何時響應(yīng)中斷?

通常在CPU執(zhí)行了一條指令以后,更確切地,在指

令周期最后時刻接受中斷請求,或此時掃描中斷寄

存器

如何知道提出中斷請求的設(shè)備或中斷源?

因為只有知道中斷源或中斷設(shè)備,才能調(diào)用相應(yīng)的

中斷處理程序

操作系統(tǒng)的硬件環(huán)境56

處理器如何發(fā)現(xiàn)中斷信號?

處理器的控制部件中設(shè)一個能檢測中斷的機(jī)構(gòu)

稱為中斷掃描機(jī)構(gòu)。

?:?在每條指令執(zhí)行周期的最后時刻掃描中斷寄存器,

詢問是否有中斷信號

。若無中斷信號,繼續(xù)執(zhí)行下一條指令

?:?若有中斷,中斷硬件將該中斷觸發(fā)器內(nèi)容按規(guī)定編

碼送入PSW的相應(yīng)位,稱為中斷碼

。通過交換中斷向量引出中斷處理程序

操作系統(tǒng)的硬件環(huán)境57

取周期執(zhí)行周期中斷周期

.取下一條指令

操作系統(tǒng)的硬件環(huán)境58

?:?用軟件指令去查詢各設(shè)備接口

這種方法比較費時

?:?多數(shù)微型機(jī)對此問題的解決方法:

使用一種“向量中斷”的硬件設(shè)施

“中斷向量”:

?:?當(dāng)CPU接受某中斷請求時,該設(shè)備接口給處理器發(fā)

送具有唯一性的“中斷向量”,以標(biāo)識該設(shè)備

?:?“中斷向量”在各計算機(jī)上實現(xiàn)方法差別比較大

操作系統(tǒng)的硬件環(huán)境59

中斷向量:一個存放中斷處理程序入口地址和程

序運行所需處理機(jī)狀態(tài)字的內(nèi)存單元.

硬件按中斷號、異常類型的不同通過中斷向量表

轉(zhuǎn)移.

操作系統(tǒng)的硬件環(huán)境60

在有的機(jī)器中:

將主存最低位128個字保留作為中斷向量表,每個中

斷向量占兩個字。

中斷請求的設(shè)備接口為了標(biāo)識自己,向處理器發(fā)送一

個該設(shè)備在中斷向量表中表目的地址指針

操作系統(tǒng)的硬件環(huán)境61

量中斷處理

PSWaPCa號

程序地址

PSWbPCb

0Do

1Di

2

o2

???

???

255^255

系統(tǒng)堆棧中斷向量表

操作系統(tǒng)的硬件環(huán)境62

中斷處理

簡單的中斷處理■典型的處理過程:

(1)設(shè)備給處理器發(fā)一個中斷信號

(2)處理器處理完當(dāng)前指令后響應(yīng)中斷,延遲非常短(要求

處理器沒有關(guān)閉中斷)

(3)處理器處理完當(dāng)前指令后檢測到中斷,判斷出中斷來源

并向發(fā)送中斷的設(shè)備發(fā)送了確認(rèn)中斷信號,確認(rèn)信號使得

該設(shè)備將中斷信號恢復(fù)到一般狀態(tài)

(4)處理器開始為軟件處理中斷做準(zhǔn)備:

保存中斷點的程序執(zhí)行上下文環(huán)境,這通常包括程序狀態(tài)字

PSW,程序計數(shù)器PC中的下一條指令位置,一些寄存器的值,

它們通常保存在系統(tǒng)控制棧中,處理器狀態(tài)被切換到管態(tài)。

操作系統(tǒng)的硬件環(huán)境63

(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)。

(8)PSW和PC被恢復(fù)成中斷前的值,處理器開始一個新的指

令周期,中斷處理結(jié)束。

操作系統(tǒng)的硬件環(huán)境64

簡單的中斷處理過程

硬件軟件

J木ILK刁L的硬件環(huán)境65

多個中斷的處理

若中斷處理過程中又發(fā)生中斷,引起多中斷處理問題

兩種策略方法:

第一種:

處理一個中斷時禁止中斷,對任何新中斷置之不理,在

這期間發(fā)生的中斷將保持掛起狀態(tài);當(dāng)再次允許中斷時,

新中斷信號被處理器檢測到。

?:?軟件實現(xiàn)方法:

在任何中斷處理前使用禁止中斷指令

在處理結(jié)束后開放中斷指令

所有中斷嚴(yán)格按照發(fā)生順序處理

不考慮中斷緊急程度,無法達(dá)到較嚴(yán)格時間要求

操作系統(tǒng)的硬件環(huán)境66

多中斷處理第一種策略方法

操作系統(tǒng)的硬件環(huán)境67

?:?第二種:

/中斷按照優(yōu)先度分級

/允許優(yōu)先級高中斷打斷優(yōu)先級低的中斷處理

過程,這樣中斷優(yōu)先級技術(shù)將引起中斷處理

的嵌套

/只要合適地定義中斷的優(yōu)先級別,方法一的

弊端大都可以克服

操作系統(tǒng)的硬件環(huán)境68

多中斷處理第二種策略方法

操作系統(tǒng)的硬件環(huán)境69

典型的中斷處理(1):I/O中斷

由I/0設(shè)備的控制器或者通道發(fā)出

兩類I/O中斷:

?:T/0操作正常結(jié)束

如果要繼續(xù)I/O操作,需要在準(zhǔn)備好以后重新啟

動I/O,若請求I/O程序正處于等待I/O狀態(tài),

則應(yīng)將其喚醒

?:T/0異常

/需要重新執(zhí)行失敗的I/O操作

/重試次數(shù)有上限,次數(shù)過大,系統(tǒng)將判定硬

件故障

操作系統(tǒng)的硬件環(huán)境70

典型的中斷處理(2):時鐘中斷

系統(tǒng)多道能力的重要推動力量,時鐘中斷處理程序通常做與

系統(tǒng)運轉(zhuǎn)、管理和維護(hù)相關(guān)的工作,包括:

。維護(hù)軟件時鐘:系統(tǒng)有若干個軟件時鐘,控制定時任務(wù)以

及進(jìn)程的處理器時間配額,時鐘中斷需要維護(hù)、定時更新

這些軟件時鐘

。處理器時間調(diào)度:維護(hù)當(dāng)前進(jìn)程時間片軟件時鐘,并在當(dāng)

前進(jìn)程時間片到時以后運行調(diào)度程序選擇下一個被調(diào)度的

進(jìn)程

??刂葡到y(tǒng)定時任務(wù):通過軟件時鐘和調(diào)度程序定時激活一

些系統(tǒng)任務(wù),如監(jiān)測死鎖、系統(tǒng)記帳、系統(tǒng)審計等

實時處理

操作系統(tǒng)的硬件環(huán)境71

典型的中斷處理(3):硬件故障中斷

硬件故障中斷處理程序一般需要做的工作:

?:?保存現(xiàn)場,使用一定警告手段,提供些輔助診

斷信息

?:?在高可靠系統(tǒng)中,中斷處理程序還要評估系統(tǒng)

可用性,盡可能恢復(fù)系統(tǒng)。

>如Windows2000/XP,關(guān)鍵硬件發(fā)生故障時,如顯示卡損壞,

出現(xiàn)系統(tǒng)藍(lán)屏,系統(tǒng)實際上進(jìn)入相應(yīng)故障處理程序,發(fā)現(xiàn)故障

不可恢復(fù),則在屏幕上打印出發(fā)生故障時程序位置,并開始進(jìn)

行內(nèi)存轉(zhuǎn)儲(將一定范圍的內(nèi)存內(nèi)容寫上磁盤,是系統(tǒng)故障時

的全系統(tǒng)“快照”),備日后故障診斷。

操作系統(tǒng)的硬件環(huán)境72

典型的中斷處理(4):程序性中斷

程序指令出錯、指令越權(quán)或者指令尋址越界而引發(fā)

兩類處理方法:

?只能由操作系統(tǒng)的相關(guān)擴(kuò)展功能模塊完成;

多為程序試圖作不能做的操作引起的系統(tǒng)保護(hù);

如訪問合法的、但不在內(nèi)存虛地址內(nèi),引發(fā)頁故障頁故障一

般會引發(fā)OS虛存模塊作一個頁面換入。

?:?可由程序自己完成,如一些算術(shù)運算錯誤;

不同程序可有不同處理方法,所以很多OS提供由用戶自己處

理這類中斷的“綠色通道”;

系統(tǒng)調(diào)試中斷(斷點中斷、單步跟蹤)也可被用戶程序處理,

用以支持各種程序調(diào)試。

操作系統(tǒng)的硬件環(huán)境73

典型的中斷處理(5):系統(tǒng)服務(wù)請求(自愿性中斷)

系統(tǒng)服務(wù)請求由處理器專用指令(訪管指令)激發(fā)

。如x86處理器提供int指令,用來激發(fā)軟件中斷

?其他不少處理器則提供系統(tǒng)調(diào)用指令syscall

執(zhí)行專用指令的結(jié)果是系統(tǒng)被切換到管態(tài),并且轉(zhuǎn)移到一

段專門OS程序處開始執(zhí)行。

?:?指令格式通常是指令名加請求服務(wù)識別號(中斷號)

。OS利用處理器提供的這種接口建立系統(tǒng)服務(wù)體系

。處理器一般不負(fù)責(zé)定義系統(tǒng)調(diào)用所傳遞的參數(shù)格式

操作系統(tǒng)的硬件環(huán)境74

典型的中斷處理(6):系統(tǒng)服務(wù)請求實例

?DOS:21h號中斷的系統(tǒng)服務(wù)功能以及參數(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和高層編程機(jī)

制MFC以及ATL

Linux提供封裝系統(tǒng)調(diào)用、符合POSIX標(biāo)準(zhǔn)API和C運行庫

操作系統(tǒng)的硬件環(huán)境75

操作系統(tǒng)的硬件環(huán)境76

保存進(jìn)程狀態(tài)的其

余信息

進(jìn)程中斷

中斷系統(tǒng)軟件完成的工作

恢復(fù)進(jìn)程狀態(tài)信息

從系統(tǒng)堆棧恢復(fù)原

PSW和PC

溫馨提示

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

最新文檔

評論

0/150

提交評論