首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么xv6调度器在每个循环开始时调用sti()?

为什么xv6调度器在每个循环开始时调用sti()?
EN

Stack Overflow用户
提问于 2015-05-07 12:24:22
回答 1查看 2K关注 0票数 3

同伴书上写着

在空闲CPU上定期启用中断的原因是,可能没有可运行的进程,因为进程(例如shell)正在等待I/O;如果调度程序一直关闭中断,I/O永远不会到达。

但是我认为我们只需要在Outterfor循环之前调用sti()一次,因为每次我们发布ptable.lock时,都会再次启用中断。

EN

回答 1

Stack Overflow用户

发布于 2015-05-07 15:10:10

有可能是在中断禁用的情况下调用schedule(),在这种情况下,释放ptable将不会重新启用它们。

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

https://stackoverflow.com/questions/30101030

复制
相关文章

相似问题

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