欢迎来到天天文库
浏览记录
ID:42655437
大小:40.50 KB
页数:4页
时间:2019-09-19
《中断处理实习报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、中断处理实习报告一、实习内容模拟中断事件的处理。二、实习目的现代计算机系统的硬件部分都设有中断机构,它是实现多道程序设计的基础。中断机构能发现中断事件,且当发现中断事件后迫使正在处理器上执行的进程暂时停止执行,而让操作系统的中断处理程序占有处理器去处理出现的中断事件。对不同的中断事件,由于它们的性质不同,所以操作系统应采用不同的处理。通过实习了解中断及中断处理程序的作用。本实习模拟“时钟中断事件”的处理,对其它中断事件的模拟处理,可根据各中断事件的性质确定处理原则,制定算法,然后依照本实习,自行设计。三、实
2、习题目模拟时钟中断的产生及设计一个对时钟中断事件进行处理的模拟程序。四、结构及说明本程序模拟时钟中断,在每次的执行周期后进行中断检测。程序中具体表现在周期为一秒的中断检测中,如果检测到已经到达预订时间,则进行显示提示。五、源代码//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<<"系统开机时间:"<=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:输入定时器类别(闹钟0/倒计时1)",k+1);scanf("%d",&type);if(0==type){set_alarm();}if(1==type){set_countdown_timer();}}r6、eturn0;}intset_alarm(){structtmtemp_tm;intyy,mn,dd,hh,mm,ss;pointer++;printf("闹钟名称:");cin>>name[pointer];printf("闹响时间:(年,月,日,时,分,秒)");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_m7、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("倒计时名称:");cin>>name[pointer];printf("倒计时时间:(时,分,秒)");cin>>hh>>mm>>ss;target_time[pointer]=time(&time8、c)+hh*3600+mm*60+ss;return0;}intdisplay(intk){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:输入定时器类别(闹钟0/倒计时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("闹响时间:(年,月,日,时,分,秒)");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("倒计时名称:");cin>>name[pointer];printf("倒计时时间:(时,分,秒)");cin>>hh>>mm>>ss;target_time[pointer]=time(&time
8、c)+hh*3600+mm*60+ss;return0;}intdisplay(intk){cout<<"定时器"<
此文档下载收益归作者所有