資源描述:
《中斷處理實(shí)習(xí)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、中斷處理實(shí)習(xí)報(bào)告一、實(shí)習(xí)內(nèi)容模擬中斷事件的處理。二、實(shí)習(xí)目的現(xiàn)代計(jì)算機(jī)系統(tǒng)的硬件部分都設(shè)有中斷機(jī)構(gòu),它是實(shí)現(xiàn)多道程序設(shè)計(jì)的基礎(chǔ)。中斷機(jī)構(gòu)能發(fā)現(xiàn)中斷事件,且當(dāng)發(fā)現(xiàn)中斷事件后迫使正在處理器上執(zhí)行的進(jìn)程暫時(shí)停止執(zhí)行,而讓操作系統(tǒng)的中斷處理程序占有處理器去處理出現(xiàn)的中斷事件。對(duì)不同的中斷事件,由于它們的性質(zhì)不同,所以操作系統(tǒng)應(yīng)采用不同的處理。通過實(shí)習(xí)了解中斷及中斷處理程序的作用。本實(shí)習(xí)模擬“時(shí)鐘中斷事件”的處理,對(duì)其它中斷事件的模擬處理,可根據(jù)各中斷事件的性質(zhì)確定處理原則,制定算法,然后依照本實(shí)習(xí),自行設(shè)計(jì)。三、實(shí)
2、習(xí)題目模擬時(shí)鐘中斷的產(chǎn)生及設(shè)計(jì)一個(gè)對(duì)時(shí)鐘中斷事件進(jìn)行處理的模擬程序。四、結(jié)構(gòu)及說明本程序模擬時(shí)鐘中斷,在每次的執(zhí)行周期后進(jìn)行中斷檢測(cè)。程序中具體表現(xiàn)在周期為一秒的中斷檢測(cè)中,如果檢測(cè)到已經(jīng)到達(dá)預(yù)訂時(shí)間,則進(jìn)行顯示提示。五、源代碼//interrupt.cpp:Definestheentrypointfortheconsoleapplication.#include"stdafx.h"#include#include"time.h"usingnamespacestd;//---------
3、-----------------------time_ttimep;inti;//--------------------------------charname[3];time_ttarget_time[3];intpointer=-1;//--------------------------------intset_timer();intset_alarm();intset_countdown_timer();intdisplay(int);//----------------------------
4、----longcurrent_time,last_time;intmain(intargc,char*argv[]){time(&timep);cout<<"系統(tǒng)開機(jī)時(shí)間:"<=1){cout<5、ime[i]==current_time){display(i);}}}last_time=current_time;}printf("HelloGHouan!");return0;}intset_timer(){intk;inttype;for(k=0;k<3;k++){printf("No%d:輸入定時(shí)器類別(鬧鐘0/倒計(jì)時(shí)1)",k+1);scanf("%d",&type);if(0==type){set_alarm();}if(1==type){set_countdown_timer();}}r
6、eturn0;}intset_alarm(){structtmtemp_tm;intyy,mn,dd,hh,mm,ss;pointer++;printf("鬧鐘名稱:");cin>>name[pointer];printf("鬧響時(shí)間:(年,月,日,時(shí),分,秒)");cin>>yy>>mn>>dd>>hh>>mm>>ss;temp_tm.tm_year=yy-1900;temp_tm.tm_mon=mn-1;temp_tm.tm_mday=dd;temp_tm.tm_hour=hh;temp_tm.tm_m
7、in=mm;temp_tm.tm_sec=ss;temp_tm.tm_isdst=0;target_time[pointer]=mktime(&temp_tm);return0;}intset_countdown_timer(){time_ttimec;inthh,mm,ss;pointer++;printf("倒計(jì)時(shí)名稱:");cin>>name[pointer];printf("倒計(jì)時(shí)時(shí)間:(時(shí),分,秒)");cin>>hh>>mm>>ss;target_time[pointer]=time(&time
8、c)+hh*3600+mm*60+ss;return0;}intdisplay(intk){cout<<"定時(shí)器"<