韩国1.5分彩计划网页版:Linux内核??楸喑?-中断处理程序

时间:2019-02-25 15:06来源:网络整理 作者:Linux先生 举报 点击:
中断处理程序 除了上一章外,迄今为止,我们在内核中所做的每件事都是作为对一个进程请求的回应,要么通过处理特殊的文件,发送 ioctl,要么发出系统调用。但

澳洲三分彩 www.o45ea.cn 中断处理程序

  除了上一章外,迄今为止,我们在内核中所做的每件事都是作为对一个进程请求的回应,要么通过处理特殊的文件,发送 ioctl,要么发出系统调用。但是内核的工作并不仅仅是回应进程请求。另一个每个字节都很重要的工作是和连接到机器的硬件对话。
在CPU和计算机的其他设备之间有两种交互作用。第一种是当CPU对硬件发布命令时,另一种是当硬件要告诉CPU什么事情时。第二种,被称为中断,实现起来是很困难的,因为它不得不处理什么时间硬件是方便的而不是CPU。典型的硬件设备只有很少的内存,如果当信息可见的时候你不读取的话它就会消失。

  在 Linux 下,硬件中断被称为 IRQs [Interrupt Requests (这是Linux起源的Intel 架构上的标准术语。 )的缩写]。有两种 IRQs,短的和长的。一个短的 IRQ 预期占用 非常短的一段时间,在那期间,机器的剩余部分被阻塞,没有其他的中断将被处理。长的 IRQ 占用的时间长些,在那期间其他中断有可能发生(但不能是来自同一设备)。只要是可能的,声明一个长中断是较好的。

  当 CPU 接收到一个中断,它停止它正在做的任何事情(除非它正在处理一个更重要的中断,在那种情况下,它将处理完那个中断后才来处理现在的这个),在堆栈中保存某些参数并调用中断处理程序。这意味着在中断处理程序自身中有些东西是不能允许的,因为系统处于一种未知的状态。解决的办法是中断处理程序马上做完需要做的,通常是从硬件里面读什么或向硬件发送什么然后安排处理稍后的新信息(这被称为‘bottom half’)并返回。然后内核保证只要可能就调用bottom half --当这在运行,内核??橹性市碜龅乃惺虑榻辉市?。

  实现这个办法是当接收到相关的IRQ(在 Intel 平台下有16个)时去调用 request_irq 以使中断处理程序被调用。 这个函数接收IRQ 号,函数名,标志, /proc/interrupts 中的名字及一个传送给中断处理程序的参数作为其参数。标志可以包括 SA_SHIRQ 以指明你愿意和其他的中断处理程序分享那个IRQ(通常因为几个硬件设备在同一IRQ)以及 SA_INTERRUPT 以指明这是一个快速中断。这个函数只在那个IRQ上没有处理程序的情况下成功,或者你愿意两者共享。

  然后从中断处理程序中我们和硬件通信,联合tq_immediate使用 queue_task_irq 和 mark_bh(BH_IMMEDIATE) 调度 bottom half。我们在 2.0 版中不使用标准的queue_task 的原因是中断有可能在其他人的 queue_task(queue_task_irq 从这被一个全局锁?;?-- 在 2.2 版中没有queue_task_irq 而 queue_task 被一个锁?;?。 )中发生。我们需要 mark_bh 是因为Linux 的早期版本只能有32个 bottom half,而现在它们中的一个(BH_IMMEDIATE) 用于还没有得到bottom half入口的驱动程序的bottom half连接表。

1

作者:翻译:cherami责任编辑:)

天极新媒体 最酷科技资讯

扫码赢大奖

评论

* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!

推荐内容
  • 关于印发《招标采购专业技术人员职业水平评价暂行规定》和《招标师职业水平考试实施办法》的通知 2019-05-24
  • 市民举报垃圾短信被拉黑 12321:服务提供商违规操作 2019-05-23
  • 会玩!134米大桥之巅唱K “中国红”点亮悉尼全城 2019-05-23
  • 2017大皖客户端徽派栏目全面回顾宣传片 2019-05-17
  • 体育界赵丽颖,世界杯最美主播都在这里了! 2019-05-09
  • 《赛博朋克2077》官方定调为第一人称“RPG” 2019-05-08
  • 重大疾病贫困患者报销补偿比超90% 2019-05-08
  • 震后十年·追忆与新生:那是我生命中最深的印记 2019-05-03
  • 郑佳明:城市哲学(下篇) 2019-05-02
  • 零关税后抗癌药降价为何“慢半拍”? 2019-05-02
  • 天津港保税区开展大气污染精细化管理 2019-04-29
  • “公牛”还是“公犟”? 品牌开关真假难辨! 2019-04-29
  • 溃疡恶变也会腹痛 这些肿瘤最容易被误诊 2019-04-26
  • 这十种食物被称为世上最毒的东西 肯定有你吃过的 2019-04-21
  • 试想;【微生物】如果都被【转基因】给破坏得没有了,那么地球的这个【微观世界】还会有【生物】存在吗。。。?[福尔摩斯] 2019-04-21
  • 354| 305| 32| 769| 929| 629| 436| 412| 352| 520|