【问题标题】:What is Interrupt Threading?什么是中断线程?
【发布时间】:2011-05-31 23:15:24
【问题描述】:

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

嗨,

维基百科在Interrupt handler 文章中对中断线程有这样的说法:

中断线程

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

FreeBSD(以及其他)显然使用的这种中断线程技术是什么?我在哪里可以了解更多信息?

提前致谢。 :)

【问题讨论】:

    标签: kernel freebsd interrupt


    【解决方案1】:

    FreeBSD 的ithread(9) 中有更多技术信息。

    【讨论】:

    【解决方案2】:

    硬件通过中断通知操作系统某些事件。当发生错误或某些外围设备有新数据可用时(用户按下键、数据包到达网络、计时器到期……),它们可能会被引发。系统需要快速处理这些中断(以使其看起来具有响应性)。

    它们由内核处理。通常,当这样的中断到来时,当前正在运行的代码被停止,并调用内核的一个函数。必须快速处理中断以使系统具有响应性,因此它们不能阻止内核等待某些资源,或者做类似的事情。经典的解决方案是有一个哑中断函数,只记录中断的次数并返回,然后在内核的主循环中,检查是否有中断发生并调用真正的处理程序。

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

    【讨论】:

    • 嗨。感谢您的回答。我理解基于中断延迟执行的必要性,我特别感兴趣的是这种技术,它被称为中断线程。
    猜你喜欢
    • 1970-01-01
    • 2016-10-11
    • 2010-11-14
    • 2021-09-09
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    相关资源
    最近更新 更多