首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是中断线程?

什么是中断线程?
EN

Stack Overflow用户
提问于 2010-12-29 09:11:28
回答 2查看 2.5K关注 0票数 5

(注意:这不是关于中断Java/.NET线程,而是关于内核模式中断。)

嗨,

维基百科在中断处理程序文章中提到了中断线程:

中断线程 几种操作系统--例如Solaris、NetBSD、Mac、WinCE和FreeBSD --使用了不同的方案,称为中断线程。设备驱动程序提供的中断处理程序只是一个高优先级线程,它运行时启用了中断,更重要的是,可能会阻塞互斥对象。这极大地简化了在内核中的锁定。此外,中断线程可能被优先级较高的中断线程抢占.

,FreeBSD (和其他人)显然使用的中断线程技术是什么?我在哪里能读到更多关于它的书呢?

提前谢谢。:)

EN

回答 2

Stack Overflow用户

发布于 2010-12-29 10:44:50

硬件用中断通知操作系统某些事件。当发生错误或某些外围设备有可用的新数据时(用户按下一个键,一个数据包到达网络,计时器过期,.),就会引发这些错误。这些中断需要由系统快速处理(以便它看起来是响应的)。

它们由内核处理。通常,当一个这样的中断到达时,当前正在运行的代码将被停止,并调用内核的一个函数。必须对中断迅速采取行动,才能有响应系统,所以它们不能阻止内核等待某些资源,或者做类似的事情。经典的解决方案是有一个简单的中断函数,只需记录中断和返回的次数,然后在内核的主循环中检查是否发生了中断,并调用真正的处理程序。

由于这些中断可以被屏蔽(除了不可掩蔽的中断- NMI),内核可以在内核模式下生成一些线程,并且只让它们打开中断并处理它们。由于这些线程独立于主内核线程,所以它们可以阻塞,只要有足够的线程来处理当线程被阻塞时可能到达的中断。

票数 3
EN

Stack Overflow用户

发布于 2010-12-29 10:44:01

在FreeBSD的线程(9)中有一些更多的技术信息。

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

https://stackoverflow.com/questions/4552807

复制
相关文章

相似问题

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