版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
計算機(jī)接口技術(shù)大作業(yè)年月哈爾濱哈飛集團(tuán)汽車博物館設(shè)計本科畢業(yè)設(shè)計(論文)指導(dǎo)教師:王五學(xué)號:0123456789專業(yè):建筑學(xué)院系:建筑學(xué)院張三年月哈爾濱哈飛集團(tuán)汽車博物館設(shè)計本科畢業(yè)設(shè)計(論文)指導(dǎo)教師:王五學(xué)號:0123456789專業(yè):建筑學(xué)院系:建筑學(xué)院張三哈爾濱哈飛集團(tuán)汽車博物館設(shè)計張三計算機(jī)中斷技術(shù)大作業(yè)題目深入理解中斷系統(tǒng)哈爾濱工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文)哈爾濱工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文)-9- 圖1.1中斷處理過程打一個不太恰當(dāng)?shù)谋确?。比如說你正在看書那么你就是CPU,看書就相當(dāng)于你正在執(zhí)行的程序,當(dāng)你電話響了或者是有其他的事情發(fā)生導(dǎo)致你必須停下正在看的書去做另一件事(接電話)。那么這就是一個中斷,在這個中斷中現(xiàn)行程序是看書,中斷時電話響了,CPU是你自己。當(dāng)你接完電話之后(假設(shè)接完電話就沒其他特殊的事了)那么你就回去看書,也就相當(dāng)于定義中的返回執(zhí)行原程序。1.2中斷技術(shù)差生的原因講了上面的內(nèi)容也許你對中斷概念有了一定的了解。那么為什么會產(chǎn)生中斷呢?為了介紹為什么會產(chǎn)生中斷我們有必要對計算機(jī)的組成結(jié)構(gòu)和工作的過程來了解一下。下圖是計算機(jī)的組成結(jié)構(gòu)。圖1.2計算機(jī)組成結(jié)構(gòu)可以看到計算機(jī)石油輸入輸出設(shè)備控制器運(yùn)算器和存儲器組成的,那么計算機(jī)是如何工作的呢?計算機(jī)工作時,首先由鍵盤等輸入設(shè)備。輸入程序和數(shù)據(jù),程序和數(shù)據(jù)信息,通過J/O接口電路,經(jīng)數(shù)據(jù)總線送入主存貯器中,接著CPU開始運(yùn)行輸入的指令,并處理輸入的數(shù)據(jù)。CPU要進(jìn)行下列工作:⑴將指令的地址放到地址總線;⑵按著上述地址,通過數(shù)據(jù)總線在主存貯器中找到并取出指令,由指令譯碼器對該指令進(jìn)行分析譯碼;⑶根據(jù)譯碼結(jié)果,取出指令所要處理的數(shù)據(jù)地址及相應(yīng)的數(shù)據(jù);⑷執(zhí)行指令所代表的具體操作;⑸檢查是否還有其它的控制信號,若有,則對定進(jìn)行處理;⑹把執(zhí)行指令后所得的指令結(jié)果、狀態(tài)的標(biāo)志信號、控制信號和定時信號提供給整個微機(jī)系統(tǒng);⑺繼續(xù)處理用戶輸入的程序和數(shù)據(jù)。可以看到上在計算機(jī)工作過程中要始終檢查有沒有控制信號,而這控制信號中就有關(guān)于中斷的控制信號。在計算機(jī)系統(tǒng)中中斷的例子有很多。用戶敲擊鍵盤,每擊一次鍵都要產(chǎn)生一個中斷信號。告訴CPU有“鍵盤輸入發(fā)生了”,要求CPU讀入鍵值。至于為什么必須要讀入鍵值呢?其實(shí)很簡單,在執(zhí)行程序和用戶控制兩個事件之間顯然是用戶控制事件的優(yōu)先級要高于執(zhí)行程序的優(yōu)先級。要不你按下鍵盤電腦半天沒有反應(yīng)那你還不得把電腦踢了?以I/O中斷為例。在I/O設(shè)備與主機(jī)交換信息時,由于設(shè)備本身機(jī)電特性的影響,其工作效率較低,與CPU無法匹配。因此,CPU啟動之設(shè)備之后,往往需要等待一段時間才能實(shí)現(xiàn)與I/O設(shè)備之間的信息交換。如果在設(shè)備準(zhǔn)備同時,CPU不做無所謂的等待,而繼續(xù)執(zhí)行現(xiàn)行程序,只有當(dāng)I/O設(shè)備就緒向CPU提出請求后在暫時中斷CPU現(xiàn)行程序轉(zhuǎn)入I/O服務(wù)程序,這便產(chǎn)生了I/O中斷。中斷是用以提高計算機(jī)工作效率、增強(qiáng)計算機(jī)功能的一重要技術(shù)。最初引入硬件中斷,只是出于性能上的考量。如果計算機(jī)系統(tǒng)沒有中斷,則處理器與外部設(shè)備通信時,它必須在向該設(shè)備發(fā)出指令后進(jìn)行忙等待(Busywaiting,反復(fù)輪詢該設(shè)備是否完成了動作并返回結(jié)果。這就造成了大量處理器周期被浪費(fèi)。引入中斷以后,當(dāng)處理器發(fā)出設(shè)備請求后就可以立即返回以處理其他任務(wù),而當(dāng)設(shè)備完成動作后,發(fā)送中斷信號給處理器,后者就可以再回過頭獲取處理結(jié)果。這樣,在設(shè)備進(jìn)行處理的周期內(nèi),處理器可以執(zhí)行其他一些有意義的工作,而只付出一些很小的、切換上下文所引發(fā)的時間代價。后來被用于CPU外部與內(nèi)部緊急事件的處理、機(jī)器故障的處理、時間控制等多個方面,并產(chǎn)生通過軟件方式進(jìn)入中斷處理(軟中斷)的概念。。1.3中斷技術(shù)差生的優(yōu)點(diǎn)先讓我們感受一下中斷機(jī)制對并發(fā)處理帶來的幫助。讓我們用程序來探討一下燒水問題,如果沒有“中斷”(注意,我們這里只是模仿中斷的場景,實(shí)際上是用異步事件——消息——處理機(jī)制來展示中斷產(chǎn)生的效果。畢竟,在用戶空間沒有辦法與實(shí)際中斷產(chǎn)生直接聯(lián)系,不過操作系統(tǒng)為用戶空間提供的異步事件機(jī)制,可以看作是模仿中斷的產(chǎn)物),設(shè)計如下:void
StayInKitchen(){bool
WaterIsBoiled
=false;while
(
WaterIsBoiled
!=true){
bool
VaporGavenOff
=false;
if(VaporGavenOff
)
WaterIsBoiled
=
true;else
WaterIsBoiled
=
false;}//
關(guān)煤氣爐printf(“Closegasoven.\n”);//
一切安定下來,終于可以看電視了,10分鐘的寶貴時間啊,逝者如斯夫…watching_tv();return;}可以看出,整個流程如同我們前面描述的一樣,所有工作要順序執(zhí)行,沒有辦法完成并發(fā)任務(wù)。
如果用“中斷”,在開始燒水的時候設(shè)定一個10分鐘的“鬧鈴”,然后讓CPU去看電視(有點(diǎn)難度,具體實(shí)現(xiàn)不在我們關(guān)心的范圍之內(nèi),留給讀者自行解決吧:>)。等鬧鐘響的時候再去廚房關(guān)爐子。#include<sys/types.h>#include<unistd.h>#include<sys/stat.h>#include<signal.h>#include<stdio.h>
//
鬧鐘到時會執(zhí)行此程序void
sig_alarm(int
signo){
//關(guān)煤氣爐
printf(“Closegasoven.\n”);}
void
watching_tv(){
while(1)
{
//
呵呵,悠哉悠哉}}
int
main(){//
點(diǎn)火后設(shè)置定時中斷
printf(“Starttoboilwater,setAlarm”);if
(signal(SIGALRM,
sig_alrm
)==SIG_ERR){
perror("signal(SIGALRM)error");
return
-1;
}
//
然后就可以欣賞電視節(jié)目了
printf(“WatchingTV!\n”);
watching_tv();
return
0;}其實(shí),計算機(jī)系統(tǒng)引入中斷的原因不僅僅是為了適應(yīng)I/O設(shè)備工作效率低的問題。例如,當(dāng)計算機(jī)正在運(yùn)行中,若出現(xiàn)突然掉電的情況,將會導(dǎo)致CPU中的全部信息丟失。倘若能在突然掉電的瞬間啟動另一個備份電源,并迅速進(jìn)行一些必要的處理,例如,將有用的信息送至不受電源影響的存儲系統(tǒng)中,待電源恢復(fù)后接著使用,這種處理技術(shù)也要用終端技術(shù)來實(shí)現(xiàn)。又如,在實(shí)時控制領(lǐng)域中,要求CPU能及時響應(yīng)外來信號的請求,并能完成相應(yīng)的操作,也都需要終端技術(shù)實(shí)現(xiàn)。總之有了中斷系統(tǒng)計算機(jī)的整體效率有了提升,能夠應(yīng)對突發(fā)事件實(shí)現(xiàn)實(shí)時控制1.4中斷技術(shù)差生的缺點(diǎn)舉了上面的例子你也許就對中斷有了一定的了解。同時在上面的例子中當(dāng)有電話響了時候,你必須停下正在看的書去接電話,那么你就要記下現(xiàn)在看到哪里了。要不你回來的時候就不知道從哪開始看了。這也就出現(xiàn)了一個問題你怎么記住你現(xiàn)在看到的位置呢?當(dāng)然你說可以憑借記憶,但是CPU是沒有記憶功能的,一當(dāng)有新的數(shù)據(jù)進(jìn)來前面的數(shù)據(jù)就會被覆蓋,那么前面的程序執(zhí)行到哪了你就不知道了。由此可見中斷系統(tǒng)是一個復(fù)雜的系統(tǒng)。為了實(shí)現(xiàn)中斷系統(tǒng)激素啊你系統(tǒng)必須有相應(yīng)的終端系統(tǒng)或終端機(jī)構(gòu)。這樣就造成了計算機(jī)系統(tǒng)的復(fù)雜性。同時不同公司之間的中斷系統(tǒng)有著不同的差別這就要求硬件也相應(yīng)的不同。所以還要有統(tǒng)一的中斷標(biāo)準(zhǔn)。二:基本概念2.1中斷源我們把引起中斷的原因,或者能夠發(fā)出中斷請求信號的來源統(tǒng)稱為中斷源。在上面看書的例子中,打斷你看書的時間就是中斷源(電話響了)。通常中斷源有以下幾種:(1)外部設(shè)備請求中斷。一般的外部設(shè)備(如鍵盤、打印機(jī)和A/D轉(zhuǎn)換器等)在完成自身的操作后,向CPU發(fā)出中斷請求,要求CPU為他服務(wù)。由計算機(jī)硬件異常或故障引起的中斷,也稱為內(nèi)部異常中斷。(2)故障強(qiáng)迫中斷。計算機(jī)在一些關(guān)鍵部位都設(shè)有故障自動檢測裝置。如運(yùn)算溢出、存儲器讀出出錯、外部設(shè)備故障、電源掉電以及其他報警信號等,這些裝置的報警信號都能使CPU中斷,進(jìn)行相應(yīng)的中斷處理。(3)實(shí)時時鐘請求中斷。在控制中遇到定時檢測和控制,為此常采用一個外部時鐘電路(可編程)控制其時間間隔。需要定時時,CPU發(fā)出命令使時鐘電路開始工作,一旦到達(dá)規(guī)定時間,時鐘電路發(fā)出中斷請求,由CPU轉(zhuǎn)去完成檢測和控制工作。(4)數(shù)據(jù)通道中斷。數(shù)據(jù)通道中斷也稱直接存儲器存取(DMA)操作中斷,如磁盤、磁帶機(jī)或CRT等直接與存儲器交換數(shù)據(jù)所要求的中斷。(5)程序自愿中斷。CPU執(zhí)行了特殊指令(自陷指令)或由硬件電路引起的中斷是程序自愿中斷,是指當(dāng)用戶調(diào)試程序時,程序自愿中斷檢查中間結(jié)果或?qū)ふ义e誤所在而采用的檢查手段,如斷點(diǎn)中斷和單步中斷等。2.2中斷嵌套中斷嵌套指中斷系統(tǒng)正在執(zhí)行一個中斷服務(wù)時,有另一個優(yōu)先級更高的中斷提出中斷請求,這時會暫時終止當(dāng)前正在執(zhí)行的級別較低的中斷源的服務(wù)程序,去處理級別更高的中斷源,待處理完畢,再返回到被中斷了中斷服務(wù)程序繼續(xù)執(zhí)行,這個過程就是中斷嵌套。關(guān)于中斷嵌套??梢赃@樣說,當(dāng)一個中斷正在執(zhí)行的時候,如果事先設(shè)置了中斷優(yōu)先級寄存器IP,那么當(dāng)一個更高優(yōu)先級的中斷到來的時候會發(fā)生中斷嵌套,如果沒有設(shè)置則不會發(fā)生任何嵌套;如果有同一個優(yōu)先級的中斷觸發(fā),它并不是在“不斷的申請”,而是將它相應(yīng)的中斷標(biāo)志位置即IE寄存器的某位置位,當(dāng)CPU執(zhí)行完當(dāng)前中斷之后,按照查詢優(yōu)先級重新去查詢各個中斷標(biāo)志位,進(jìn)入相應(yīng)中斷。2.3中斷級聯(lián)一個外部中斷請求信號通過中斷請求線IRQ,傳輸?shù)絀MR(中斷屏蔽寄存器),IMR根據(jù)所設(shè)定的中斷屏蔽字(OCW1),決定是將其丟棄還是接受。如果可以接受,則8259A將IRR(中斷請求暫存寄存器)中代表此IRQ的位置位,以表示此IRQ有中斷請求信號,并同時向CPU的INTR(中斷請求)管腳發(fā)送一個信號。但CPU這時可能正在執(zhí)行一條指令,因此CPU不會立即響應(yīng)。而當(dāng)這CPU正忙著執(zhí)行某條指令時,還有可能有其余的IRQ線送來中斷請求,這些請求都會接受IMR的挑選。如果沒有被屏蔽,那么這些請求也會被放到IRR中,也即IRR中代表它們的IRQ的相應(yīng)位會被置1。當(dāng)CPU執(zhí)行完一條指令時后,會檢查一下INTR管腳是否有信號。如果發(fā)現(xiàn)有信號,就會轉(zhuǎn)到中斷服務(wù),此時,CPU會立即向8259A芯片的INTA(中斷應(yīng)答)管腳發(fā)送一個信號。當(dāng)芯片收到此信號后,判優(yōu)部件開始工作,它在IRR中,挑選優(yōu)先級最高的中斷,將中斷請求送到ISR(中斷服務(wù)寄存器),也即將ISR中代表此IRQ的位置位,并將IRR中相應(yīng)位置零,表明此中斷正在接受CPU的處理。同時,將它的編號寫入中斷向量寄存器IVR的低三位(IVR正是由ICW2所指定的,不知你是否還記得ICW2的最低三位在指定時都是0,而在這里,它們被利用了?。┻@時,CPU還會送來第二個INTA信號,當(dāng)收到此信號后,芯片將IVR中的內(nèi)容,也就是此中斷的中斷號送上通向CPU的數(shù)據(jù)線。圖2.32.4軟中斷,硬中斷軟中斷:
1.
編程異常通常叫做軟中斷
2.
軟中斷是通訊進(jìn)程之間用來模擬硬中斷的一種信號通訊方式。
3.
中斷源發(fā)中斷請求或軟中斷信號后,CPU或接收進(jìn)程在適當(dāng)?shù)臅r機(jī)自動進(jìn)行中斷處理或完成軟中斷信號對應(yīng)的功能
4.
軟中斷是軟件實(shí)現(xiàn)的中斷,也就是程序運(yùn)行時其他程序?qū)λ闹袛?而硬中斷是硬件實(shí)現(xiàn)的中斷,是程序運(yùn)行時設(shè)備對它的中斷。
硬中斷:
1.
硬中斷是由外部事件引起的因此具有隨機(jī)性和突發(fā)性;軟中斷是執(zhí)行中斷指令產(chǎn)生的,無面外部施加中斷請求信號,因此中斷的發(fā)生不是隨機(jī)的而是由程序安排好的。
2.
硬中斷的中斷響應(yīng)周期,CPU需要發(fā)中斷回合信號(NMI不需要),軟中斷的中斷響應(yīng)周期,CPU不需發(fā)中斷回合信號。
3.
硬中斷的中斷號是由中斷控制器提供的(NMI硬中斷中斷號系統(tǒng)指定為02H);軟中斷的中斷號由指令直接給出,無需使用中斷控制器。
4.
硬中斷是可屏蔽的(NMI硬中斷不可屏蔽),軟中斷不可屏蔽。區(qū)別:
1.
軟中斷發(fā)生的時間是由程序控制的,而硬中斷發(fā)生的時間是隨機(jī)的
2.
軟中斷是由程序調(diào)用發(fā)生的,而硬中斷是由外設(shè)引發(fā)的
3.
硬件中斷處理程序要確保它能快速地完成它的任務(wù),這樣程序執(zhí)行時才不會等待較長時間2.5NMI(不可屏蔽中斷)&可屏蔽中斷非屏蔽中斷是出現(xiàn)在NMI線上的請求,不受標(biāo)志位IF的影響,在當(dāng)前指令執(zhí)行完以后,CPU就響應(yīng)。這種中斷通常用于電源故障。非屏蔽中斷的優(yōu)先權(quán)高于屏蔽中斷??善帘沃袛郔/O設(shè)備發(fā)出的所有中斷(IRQ)都可以產(chǎn)生可屏蔽中斷,受標(biāo)志位IF的影響,根據(jù)中斷循序標(biāo)志的設(shè)置來判斷CPU是否響應(yīng)中斷請求。2.6中斷請求號&中斷向量中斷請求號就是中斷編號。中斷向量中斷服務(wù)程序的入口地址。在某些計算機(jī)中,中斷向量的位置存放一條跳轉(zhuǎn)到中斷服務(wù)程序入口地址的跳轉(zhuǎn)指令。2.7中斷響應(yīng)INTA&中斷周期中斷響應(yīng)INTA:當(dāng)8259A接收到第一個/INTA有效的負(fù)脈沖后,將被響應(yīng)的中斷源置入ISR(正在服務(wù)寄存器)的對應(yīng)位,即ISR對應(yīng)位置1,同時把IRR(中斷請求寄存器)的對應(yīng)位清0;當(dāng)8259A接收到第二個/INTA有效的負(fù)脈沖后,就將其中斷類型號送入數(shù)據(jù)總線。中短周期:當(dāng)CPU采用中斷方式實(shí)現(xiàn)I/O交換信息時,CPU在每條指令執(zhí)行結(jié)束之后檢查是否又中斷請求,如果有就執(zhí)行中斷響應(yīng),又稱中短周期。2.8單步中斷&IF中斷允許標(biāo)志位單步中斷:執(zhí)行一條指令中斷一次。IF中斷允許標(biāo)志位:標(biāo)識寄存器中的一位,可以屏蔽可屏蔽中斷請求INTR如果外設(shè)有可屏蔽中斷請求INTR,而此時CPU內(nèi)IF=0,那么CPU不會響應(yīng)中斷只有可屏蔽中斷請求INTR和IF有關(guān)系,內(nèi)中斷和不可屏蔽中斷NMI,都不受IF的影響2.9IMR中斷屏蔽字&中斷優(yōu)先級IMR中斷屏蔽字:以實(shí)現(xiàn)對各中斷的屏蔽。中斷優(yōu)先級:為使系統(tǒng)能及時響應(yīng)并處理發(fā)生的所有中斷,系統(tǒng)根據(jù)引起中斷事件的重要性和緊迫程度,硬件將中斷源分為若干個級別,稱作中斷優(yōu)先級。2.10中斷控制器&APIC中斷控制器:中斷控制器的功能就是在多個中斷源的系統(tǒng)中,接收外部的中斷請求,并進(jìn)行判斷,選中當(dāng)前優(yōu)先級最高的中斷請求,再將此請求送到CPU的INTR端;當(dāng)CPU響應(yīng)中斷并進(jìn)入中斷子程序的處理過程后,中斷控制器仍負(fù)責(zé)外部的中斷請求的管理。比如當(dāng)某個外部中斷的請求的優(yōu)先級高于當(dāng)前正在處理的中斷優(yōu)先級時,中斷控制器會讓此中斷通過而到達(dá)CPU的INTR端,從而實(shí)現(xiàn)中斷的嵌套,反之,對其它的級別較底的中斷則給予禁止。APIC:高級可編程中斷控制器APIC是裝置的擴(kuò)充組合用來驅(qū)動
Interrupt控制器。在目前的建置中,系統(tǒng)的每一個部份都是經(jīng)由APICBus連接的。"本機(jī)APIC"為系統(tǒng)的一部份,負(fù)責(zé)傳遞Interrupt至指定的處理器;舉例來說,當(dāng)一臺機(jī)器上有三個處理器則它必須相對的要有三個本機(jī)APIC。自1994年的PentiumP54c開始Intel已經(jīng)將本機(jī)APIC建置在它們的處理器中。實(shí)際建置了Intel處理器的電腦就已經(jīng)包含了APIC系統(tǒng)的部份。2.11中斷共享&中斷沖突 中斷共享就是某些端口公用一個中斷請求,以前主板有很多PCI,第一和第五個常常共享,但只能使用其中一個,都是用會造成硬件沖突 中斷沖突終端之間共用資源發(fā)生沖突。2.12MSI-X中斷(PCIe)、中斷處理子程序MSI-X中斷是MSI中斷的增強(qiáng)版本,與MSI中斷有相同功能,具有以下關(guān)鍵區(qū)別:每個設(shè)備最多支持2048個MSI-X中斷向量。每個中斷向量的地址和數(shù)據(jù)項(xiàng)都是唯一的。MSI-X支持按函數(shù)屏蔽和按向量屏蔽。中斷處理子程序:處理中斷請求的程序2.130號中斷、1號中斷0號中斷:號中斷處理程序用于處理除法運(yùn)算溢出,稱為"除數(shù)為0中斷"。當(dāng)CPU檢測到除法運(yùn)算溢出,自動調(diào)用0號中斷處理程序,無"INT0"指令。1號中斷:當(dāng)CPU的TF標(biāo)志置1時,CPU每執(zhí)行一條指令,就調(diào)用1號中斷處理程序,因此,它稱為"單步中斷"。當(dāng)CPU檢測到TF=1時,自動進(jìn)入單步方式,無"INT1"指令。該中斷處理程序用于調(diào)試程序。
2.14中斷描述符、中斷描述符表中斷描述符:描述中斷的一組數(shù)據(jù),包括中斷號等。中斷描述表:將每個異?;蛑袛嘞蛄糠謩e與它們的處理過程聯(lián)系起來。與GDT和LDT表類似,IDT也是由8字節(jié)長描述符組成的一個數(shù)組。2.15異常中斷通常分為同步中斷和異步中斷。同步中斷:當(dāng)指令執(zhí)行時由CPU控制單元產(chǎn)生的,稱為同步,是因?yàn)橹挥挟?dāng)一條指令終止執(zhí)行后CPU才會發(fā)出中斷。異步中斷:由其他硬件設(shè)備依照CPU時鐘信號隨機(jī)產(chǎn)生的。2.16中斷門、OS的事件、消息通過中斷門的轉(zhuǎn)移和通過陷阱門的轉(zhuǎn)移之間的差別只是對IF標(biāo)志的處理。對于中斷門,在轉(zhuǎn)移過程中把IF置為0,使得在處理程序執(zhí)行期間屏蔽掉INTR中斷(當(dāng)然,在中斷處理程序中可以人為設(shè)置IF標(biāo)志打開中斷,以使得在處理程序執(zhí)行期間允許響應(yīng)可屏蔽中斷);對于陷阱門,在轉(zhuǎn)移過程中保持IF位不變,即如果IF位原來是1,那么通過陷阱門轉(zhuǎn)移到處理程序之后仍允許INTR中斷。因此,中斷門最適宜于處理中斷,而陷阱門適宜于處理異常。OS的事件就是操作系統(tǒng)事件。消息:消息,軟件對象之間進(jìn)行交互作用和通訊是利用消息的三:中斷資源相關(guān)3.1我的電腦中斷相關(guān)資源占用情況3.2ISA中斷3.3PCI中斷3.4IRQ0-15中斷請求外的其他是microsoftacpi-compliantsystem的。微軟ACPI-Compliant系統(tǒng),全名AdvancedConfigurationandPowerManagementInterfaceACPI表示高級配置和電源管理接口(AdvancedConfigurationandPowerManagementInterface)。對于Windows2000,ACPI定義了Windows2000、BIOS和系統(tǒng)硬件之間的新型工作接口。這些新接口包括允許Windows2000控制電源管理和設(shè)備配置的機(jī)制。ACPI意圖是讓系統(tǒng)而不是BIOS來全面控制電源管理,使系統(tǒng)更加省電。其特點(diǎn)主要有:提供立刻開機(jī)功能,即開機(jī)后可立即恢復(fù)到上次關(guān)機(jī)時的狀態(tài),光驅(qū)、軟驅(qū)和硬盤在未使用時會自動關(guān)掉電源,使用時再打開;支持在開電狀態(tài)下既插即拔,隨時更換功能。四:中斷系統(tǒng)4.1中斷系統(tǒng)怎樣協(xié)調(diào)完成中斷過程中斷過程:中斷請求,中斷判優(yōu),中斷響應(yīng),中斷處理,中斷返回圖4.1中斷過程CPU執(zhí)行完一條指令后,下一條指令的邏輯地址存放在cs和eip這對寄存器中。在執(zhí)行新指令前,控制單元會檢查在執(zhí)行前一條指令的過程中是否有中斷或異常發(fā)生。如果有,控制單元就會拋下指令,進(jìn)入下面的流程:1.確定與中斷或異常關(guān)聯(lián)的向量i
(0--255)2.尋找向量對應(yīng)的處理程序3.保存當(dāng)前的“工作現(xiàn)場”,執(zhí)行中斷或異常的處理程序4.處理程序執(zhí)行完畢后,把控制權(quán)交還給控制單元5.控制單元恢復(fù)現(xiàn)場,返回繼續(xù)執(zhí)行原程序中斷控制器執(zhí)行下列動作:1,監(jiān)視IRQ線,對引發(fā)信號檢查2,如果一個引發(fā)信號出現(xiàn)在IRQ線上a,把此信號轉(zhuǎn)換成對應(yīng)的中斷向量b,把這個向量存放在中斷控制器的一個I/O端口,從而允許CPU通過數(shù)據(jù)總線讀這個向量c,把引發(fā)信號發(fā)送到處理器的INTR引腳,即產(chǎn)生一個中斷d,等待,直到CPU應(yīng)答這個信號;收到應(yīng)答后,清INTR引腳3,返回到第一步Windows2000在系統(tǒng)啟動時填寫IDT表當(dāng)中斷發(fā)生時,處理器將會根據(jù)IDT將控制轉(zhuǎn)移給適當(dāng)?shù)闹袛?異常處理五:多處理器系統(tǒng)的中斷5.1怎么連接對于多核CPU,優(yōu)化操作系統(tǒng)任務(wù)調(diào)度算法是保證效率的關(guān)鍵。一般任務(wù)調(diào)度算法有全局隊列調(diào)度和局部隊列調(diào)度。前者是指操作系統(tǒng)維護(hù)一個全局的任務(wù)等待隊列,當(dāng)系統(tǒng)中有一個CPU核心空閑時,操作系統(tǒng)就從全局任務(wù)等待隊列中選取就緒任務(wù)開始在此核心上執(zhí)行。這種方法的優(yōu)點(diǎn)是CPU核心利用率較高。后者是指操作系統(tǒng)為每個CPU內(nèi)核維護(hù)一個局部的任務(wù)等待隊列,當(dāng)系統(tǒng)中有一個CPU內(nèi)核空閑時,便從該核心的任務(wù)等待隊列中選取恰當(dāng)?shù)娜蝿?wù)執(zhí)行,這種方法的優(yōu)點(diǎn)是任務(wù)基本上無需在多個CPU核心間切換,有利于提高CPU核心局部Cache命中率。目前多數(shù)多核CPU操作系統(tǒng)采用的是基于全局隊列的任務(wù)調(diào)度算法。多核的中斷處理和單核有很大不同。多核的各處理器之間需要通過中斷方式進(jìn)行通信,所以多個處理器之間的本地中斷控制器和負(fù)責(zé)仲裁各核之間中斷分配的全局中斷控制器也需要封裝在芯片內(nèi)部。另外,多核CPU是一個多任務(wù)系統(tǒng)。由于不同任務(wù)會競爭共享資源,因此需要系統(tǒng)提供同步與互斥機(jī)制。而傳統(tǒng)的用于單核的解決機(jī)制并不能滿足多核,需要利用硬件提供的“讀-修改-寫”的原子操作或其他同步互斥機(jī)制來保證。5.1如何處理采用輪詢的方式,基本上每個CPU平均分擔(dān)。但是為什么查看自己的機(jī)器,如果不設(shè)置CPU親和,不設(shè)置irqbalance的話,所有的中斷都是在CPU0上響應(yīng)的。六:硬件、軟件是怎么配合完成中斷處理的當(dāng)用戶按鍵時,鍵盤接口會得到一個代表該按鍵的鍵盤掃描碼,同時產(chǎn)生一個中斷請求。鍵盤中斷服務(wù)程序先從鍵盤接口取得按鍵的掃描碼,然后根據(jù)其掃描碼判斷用戶所按的鍵并作相應(yīng)的處理,最后通知中斷控制器本次中斷結(jié)束并實(shí)現(xiàn)中斷返回。
若用戶按下雙態(tài)鍵(如:CapsLock、NumLock和ScrollLock等),則在鍵盤上相應(yīng)LED指示燈的狀態(tài)將發(fā)生改變;
若用戶按下控制鍵(如:Ctrl、Alt和Shift等),則在鍵盤標(biāo)志字中設(shè)置其標(biāo)志位。
若用戶按下功能鍵(如:F1、F2、…等),再根據(jù)當(dāng)前是否又按下控制鍵來確定其系統(tǒng)掃描碼,并把其系統(tǒng)掃描碼和一個值為0的字節(jié)存入鍵盤緩沖區(qū)。若用戶按下字符鍵(如:A、1、+、…等),此時,再根據(jù)當(dāng)前是否又按下控制鍵來確定其系統(tǒng)掃描碼,并得到該按鍵所對應(yīng)的ASCII碼,然后把其系統(tǒng)掃描碼和ASCII碼一起存入鍵盤緩沖區(qū);
若用戶按下功能請求鍵(如:PrintScreen等),則系統(tǒng)直接產(chǎn)生一個具體的動作。
4、DOS功能中的鍵盤輸入
鍵盤輸入是一種最常用的輸入方式,所以,在DOS操作系統(tǒng)中,提供了能實(shí)現(xiàn)各種鍵盤輸入的功能(Windows操作系統(tǒng)中仍然能用)。INT21H中的相關(guān)功能如下:
01H——帶回顯的鍵盤輸入06H——控制臺的輸入/輸出:當(dāng)DL=0FFH,表示鍵盤輸入
07H——不回顯、不過濾的鍵
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年昭通市消防救援支隊招錄第五批政府專職消防員(83人)參考題庫附答案
- 2026廣西南寧市西鄉(xiāng)塘區(qū)那龍衛(wèi)生院招聘編外工作人員2人筆試備考試題及答案解析
- 2025年下半年宜賓市一中翠屏初級中學(xué)校公開考核招聘合同制教師招聘(公共基礎(chǔ)知識)測試題附答案
- 2025年甘肅省中材科技(酒泉)風(fēng)電葉片有限公司招聘208人公筆試備考試題附答案
- 2025年浙江溫州醫(yī)科大學(xué)附屬第一醫(yī)院招聘生物樣本庫實(shí)驗(yàn)員1人備考題庫附答案
- 2025廣東廣州市花都區(qū)獅嶺鎮(zhèn)聯(lián)合小學(xué)招聘臨聘教師1人備考題庫附答案
- AI賦能基因組醫(yī)學(xué):從技術(shù)突破到臨床實(shí)踐
- 2026福建省儲備糧管理有限公司莆田直屬庫招聘1人筆試備考試題及答案解析
- 2026福建漳州市鼓浪嶼故宮文物館招聘6人筆試備考試題及答案解析
- 2026重慶經(jīng)開區(qū)物業(yè)管理有限公司招聘筆試參考題庫及答案解析
- 主管護(hù)師聘任述職報告
- AI搜索時代:從GEO到AIBE的品牌新藍(lán)圖
- 云南省2025年高二上學(xué)期普通高中學(xué)業(yè)水平合格性考試《信息技術(shù)》試卷(解析版)
- 產(chǎn)品知識培訓(xùn)會議總結(jié)
- 四川省成都市樹德實(shí)驗(yàn)中學(xué)2026屆九年級數(shù)學(xué)第一學(xué)期期末監(jiān)測試題含解析
- 與業(yè)主溝通技巧培訓(xùn)
- 專題11 圓(安徽專用)5年(2021-2025)中考1年模擬《數(shù)學(xué)》真題分類匯編
- 工程春節(jié)停復(fù)工方案(3篇)
- 社區(qū)基金使用管理辦法
- WST856-2025安全注射標(biāo)準(zhǔn)解讀
- 低壓控制基本知識培訓(xùn)課件
評論
0/150
提交評論