首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内核是如何找到发送硬件中断的正确进程的?

内核是如何找到发送硬件中断的正确进程的?
EN

Stack Overflow用户
提问于 2015-04-07 14:43:11
回答 1查看 289关注 0票数 0

首先,这两件事可能存在:

  1. 系统具有响应硬件中断的表。
  2. 进程具有由内核响应中断发送/设置的表。

如果我按下键盘上的一个键,键盘将向CPU/内核发送一个中断,而内核将处理这个中断。但是,也许当前正在运行的进程不是我们眼前的前景进程,它可能是一个守护进程或其他什么。因此,内核如何知道哪个进程应该读取/响应我们的关键笔画?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-07 14:50:59

硬件中断只由内核处理。处理特定于设备的事件,如果有事件/数据要与用户空间共享,则驱动程序将使其可用。在键盘示例中,设备驱动程序为中断提供服务,提取任何数据并清除条件。然后将表示从硬件中提取的数据的输入事件发送到输入子系统。用户空间进程必须在读取时打开并阻塞公开的输入设备句柄。内核中的输入子系统正在管理这一点。在其他驱动程序中也很常见:公开一个设备句柄(例如/dev/misc/mydevice),它响应于打开/关闭/读/写/ioctl。当进程执行“读”而没有数据时,内核代码会阻塞调用进程,导致它等待,直到有满足读取条件的数据。我建议阅读内核设备驱动程序。"Linux设备驱动程序“是一个很好的开端。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29494374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档