- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.2中断技术 2.2.1 中断概念 2.2.2 中断源分类 2.2.3 中断和异常的响应及服务 2.2.4 中断事件处理 2.2.5 中断优先级和多重中断 2.2.6 Linux中断处理 2.2.7 Windows 2003中断处理 2.2.1中断的概念 ?请求系统服务, ?实现并行工作, ?处理突发事件, ?满足实时要求, 都需要打断处理器正常的工作,为此,提出了中断概念。 中断的定义 中断是指程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程。 2.2.2中断源分类(1) 从中断事件的性质和激活的手段来说,可以分成两类: ?强迫性中断事件强迫性中断事件不是正在运行的程序所期待的,而是由于某种事故或外部请求信息所引起的,分为: 机器故障中断事件。 程序性中断事件。 外部中断事件。 输入输出中断事件。 ?自愿性中断事件自愿性中断事件是正在运行的程序所期待的事件。 中断源分类(2)按中断事件的性质和激活方式划分 中断源分类(3) 中断源分类(4) ? 外中断(中断或异步中断)--是指来自处理器之外的中断信号,包括时钟中断、键盘中断、它机中断和设备中断等;外中断又分可屏蔽中断和不可屏蔽中断,每个不同中断具有不同的中断优先级,表示事件的紧急程度,在处理高一级中断时,往往会屏蔽部分或全部低级中断。 ? 内中断(异常或同步中断)--是指来自处理器内部,通常由于程序执行中,发现与当前指令关联的、不正常的、或是错误的事件。 中断和异常的区别 ? 中断是由与现行指令无关的中断信号触发的(异步的),且中断的发生与CPU处在用户模式或内核模式无关,在两条机器指令之间才可响应中断,一般来说,中断处理程序提供的服务不是为当前进程所需的; ? 异常是由处理器正在执行现行指令而引起的,一条指令执行期间允许响应异常,异常处理程序提供的服务是为当前进程所用的。异常包括很多方面,有出错(fault),也有陷入(trap)等。 Linux异常 ? Linux为例,异常按错误报告方式分四种: 故障、 陷阱、 终止、 编程异常。 ? 故障发生时保存的返回指令地址指向触发异常的当前那条指令,故障处理后会重新执行。编程异常和陷阱是由于执行访管指令引起的同步操作,异常返回时,回到触发异常的下一条指令。 硬中断与软中断 中断和异常要通过硬件设施来产生中断请求,是硬中断。 软中断是利用硬中断的概念,用软件方法对中断机制进行模拟,实现宏观上的异步执行效果。 软中断分两种:“信号”和“软件中断”。 中断的通常用法 “中断”(硬中断)用于外部设备对CPU的中断(中断的是正在运行的任何程序),转向中断处理程序上半部分执行; “异常”(硬中断)因指令执行不正常而中断CPU(中断的是正在执行这条指令的程序),转向异常处理程序; “软件中断”(软中断)用于硬中断服务程序对内核的中断,在上半部分中发出软件中断(即标记下半部分),使得中断下半部分在适当时刻获得处理; “信号”(软中断)用于内核或进程对某个进程的中断,通知进程某个特定事件发生或迫使进程执行信号处理程序。 中断机制与信号机制进行类比 相同点是:(1)概念上是一致的 ,(2)两者都是“异步”的 ,(3)实现上均采用“向量表”,(4)均具有“屏蔽”设施。 区别是:中断机制由硬件与软件相结合来实现,而信号机制由软件实现;中断向量表和中断处理程序(由系统提供)均在系统空间,而信号向量表虽在系统空间,但信号处理程序由应用程序提供,并在用户空间执行。 中断/异常响应要做四件事 发现中断源: 保护现场: 转向处理中断/异常事件的处理程序: 恢复现场: IBM中大型机中断响应过程 时钟中断(2) 1) 绝对时钟服务 提供以下功能的函数: ①update_clock( )更新当前时间; ②get_time( )返回当前时钟值; ③set_clock( )把当前时间设置为新值。 时钟中断(3) 2) 间隔定时器 进程可被延迟、阻塞,直到被间隔定时器中断信号唤醒,应提供以下函数: delay(tdel)把调用进程阻塞由参数tdel指定的时间长度,进程保持阻塞直到本地时间到达进程阻塞时的当前时间+tdel的时刻。 set_timer(tdel)硬件间隔定时器被设置为起始的递减值tdel,当该值达到0时,产生间隔时钟中断,调用timeout( )函数进行处理。 时钟中断(4)
文档评论(0)