linux复习第三章中断处理考试要点整合.docVIP

linux复习第三章中断处理考试要点整合.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux复习第三章中断处理考试要点整合

第三章 中断处理 1、(1)中断的概念 中断:外界请求内核服务的一种最主要的方式; 功能:打断CPU的工作,告之急需处理的事件; 目的:CPU与外部设备并行工作; 中断的分类 (2)中断的分类 中断分为内部中断(异常)和外部中断,外部中断分为硬中断(来自己硬件,特例:时钟中断)和软中断(由INT n指令产生)。 (3)中断向量:处理器给每个中断一个唯一的标识号,系统中共有256个中断向量,其中32-255为用户定义的中断(IRQ); 中断描述符表IDT:由一组门描述符组成,每个门描述符描述一个中断或异常的处理程序。因为只有256个中断和异常,所以IDT最多只需要256项。 2、异常处理: 异常处理程序所做的工作 (1)判断该中断是否产生错误代码; 产生错误代码:系统自动在堆栈中压入错误代码;不产生错误代码:在栈顶压入0或-1,补齐错误代码; (2)在栈顶压入异常处理程序入口地址; (3)最后转error_code程序(调整堆栈布局,压入参数,调用真正的异常处理程序); 补充:(1)异常处理完毕:执行ret_from_exception程序(恢复被中断进程的运行或调度新进程运行); (2)特殊:7号异常不经过error_code代码。 3、外部中断的处理: (1)中断处理程序的划分: 固定部分:系统定义,设置在IDT(中断描述符表)中,不能随意改变; 可变部分:设备驱动程序定义,经固定部分进入; 上半部分:中断发生后立即执行; 下半部分(底半):推迟执行; 为什么要划分成固定部分和可变部分? 因为外部中断允许用户自定义,所以每个外部中断所对应的设备不是固定的,因而每个外部中断(IRQ)对应的处理程序也不是固定的。又必须固定外部中断的处理程序才能建立相应的门描述符,进而加入到IDT中,所以,linux把每个外部中断程序分成固定部分和可变部分。 为什么要将可变部分划分为上半处理和底半处理? 使中断响应的总延迟时间最小化; 减少关中断的时间; 合并某些中断处理; (2)主要过程: (1)中断发生:根据IRQ号查IDT表找到处理程序的固定部分; (2)执行固定部分的处理程序 (3)执行固定上半部分的处理程序: ?执行handle程序,完成上半处理; ?判断是否有被激活的底半处理:若有,则转去做底半处理;(4) 中断处理返回。 中断处理程序返回时调用ret_from_intr程序: 检查被中断进程的运行模式 (1)运行在核心态:弹出寄存器的值,恢复运行; (2)运行在用户态:判断是否需要调度; 若需调度:启动进程调度程序; 若不需调度:判断其上是否有待处理的信号; 若有:处理信号; 否则弹出寄存器的值,恢复运行 4、时钟中断 (1)时钟中断是一种特殊的外部中断: 中断源:系统时钟; 中断处理程序固定,由操作系统提供。 (2)时钟中断底半处理完成的主要工作: ?更新系统时间 ?更新当前进程时间片 ?处理老定时器 ?处理新定时器 ?处理时钟任务队列

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档