首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当微线程正在运行并触发硬件中断时,微线程的状态会发生什么变化?

当微线程正在运行并触发硬件中断时,微线程的状态会发生什么变化?
EN

Stack Overflow用户
提问于 2015-02-27 08:09:32
回答 3查看 1.7K关注 0票数 2

当微线程正在执行,并且在微线程执行过程中触发硬件中断时,微线程的状态会发生什么变化?

EN

回答 3

Stack Overflow用户

发布于 2015-02-27 23:42:30

Tasklet是下半部分。它们在软中断上下文中运行,而不是在硬件中断上下文中运行。因此,硬件中断始终处于启用状态。当硬件中断在执行微线程时被触发时,它将中断微线程。然后,上半部分在相应的IRQ堆栈上运行,并确认中断。此行为对于中断处理程序特别有用,在中断处理程序中,必须尽快管理硬件中断,但大多数数据管理可以安全地延迟到以后的时间。实际上,微线程就像内核计时器一样,在软中断的上下文中执行(以原子模式),软中断是一种在启用硬件中断的情况下执行异步任务的内核机制。

票数 3
EN

Stack Overflow用户

发布于 2016-02-09 14:54:58

检查tasklet_schedule函数。

它将保存中断系统的状态,并将中断恢复到以前的状态,并在do_softirq操作后返回。

票数 0
EN

Stack Overflow用户

发布于 2015-02-27 16:20:09

微线程在中断上下文中运行。所以微线程中的代码不应该休眠(或被中断)。如果微线程被中断中断,你的系统就会崩溃。要在运行tasklet时防止中断,必须使用spinlock_irq_save()防止中断

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

https://stackoverflow.com/questions/28755255

复制
相关文章

相似问题

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