首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调度器如何结束正在运行的进程?

调度器如何结束正在运行的进程?
EN

Stack Overflow用户
提问于 2011-03-13 12:05:01
回答 2查看 209关注 0票数 1

我刚刚意识到,在学习了许多关于各种调度算法的知识之后,上下文切换是如何进行的,等等,有一件事我仍然不清楚。

以单处理器系统为例:

如果进程A正在运行,并且它的时间段应该在5秒后结束,那么调度器或操作系统如何知道如何在5秒后结束它?当A正在运行时,操作系统的任何部分都不能运行。调度程序应该监控它,但是如果它不能运行,它怎么能监控它呢?操作系统的调度程序是否会写入ISR并每5秒生成一次中断?这个是可能的吗?即使是这样,它似乎也不是实现它的好方法。

调度器到底是如何做到这一点的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-13 12:11:30

操作系统的调度程序是否会写入一个ISR并每5秒生成一个中断?这个是可能的吗?即使是这样,它似乎也不是实现它的好方法。

是的,这正是它在抢占式多任务系统上的工作方式(尽管在桌面系统上,间隔通常更像是10毫秒)。

是的,还有其他方案,例如协作多任务,其中每个进程自己决定何时放弃。

票数 1
EN

Stack Overflow用户

发布于 2011-03-13 12:08:44

是的,通常会触发某种类型的计时器中断。然后内核可以运行一段时间,并在需要时切换进程上下文-通常情况下,中断触发的频率比每5秒触发一次要频繁得多。为什么它看起来不像是实现它的好方法呢?

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

https://stackoverflow.com/questions/5287341

复制
相关文章

相似问题

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