版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 11017.2-2024額定電壓66 kV(Um=72.5 kV)和110 kV(Um=126 kV)交聯(lián)聚乙烯絕緣電力電纜及其附件第2部分:電纜
- 2024年度云南省高校教師資格證之高等教育法規(guī)通關(guān)提分題庫及完整答案
- 2024年度云南省高校教師資格證之高等教育學(xué)全真模擬考試試卷A卷含答案
- 低空經(jīng)濟(jì)產(chǎn)業(yè)園技術(shù)支持體系分析
- 生 物2024-2025學(xué)年人教版生物七年級上冊期中模擬生物試卷
- 2024年涂鍍產(chǎn)品:鍍鋁鋅項目資金需求報告代可行性研究報告
- 2023年復(fù)印和膠版印制設(shè)備投資申請報告
- 阜陽師范大學(xué)《音樂論文寫作》2022-2023學(xué)年第一學(xué)期期末試卷
- 阜陽師范大學(xué)《數(shù)字信號處理》2021-2022學(xué)年第一學(xué)期期末試卷
- 大象版小學(xué)科學(xué)六年級上冊全冊教案
- 青島版小學(xué)數(shù)學(xué)【三位數(shù)乘兩位數(shù)的筆算】教案
- 大學(xué)動植物檢疫考試(習(xí)題卷7)
- 譯林版九年級上下冊英語單詞表(含音標(biāo))
- 粗粒土大三軸試驗記錄
- 醫(yī)療技術(shù)臨床應(yīng)用動態(tài)評估制度
- 人教版四年級數(shù)學(xué)上冊練習(xí)八課件(含答案)
- 上海市大學(xué)生安全教育(2022級)學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- 初中數(shù)學(xué)-相似三角形的性質(zhì)教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- 部編版語文五年級上冊《白鷺》教學(xué)設(shè)計
- 繪本:讓誰先吃好呢
- AUTOCAD完整考試題庫388題(含答案)
評論
0/150
提交評論