首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上下文切换:什么时候决定?

上下文切换:什么时候决定?
EN

Stack Overflow用户
提问于 2017-09-27 14:07:40
回答 1查看 387关注 0票数 0

我正在寻找一些关于主流体系结构的现代个人电脑(比如x64)中上下文切换的背景说明。

虽然上下文切换主要由硬件完成,但我想知道在运行多个线程和/或多个进程时,计算机中的任务调度和上下文切换是如何决定的。是CPU本身,操作系统,编译器/虚拟机.?

我想知道什么策略是用来决定什么时候换。例如,如果我启动100个线程,在没完没了的循环中执行独立的虚拟添加,什么时候会发生上下文切换?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-27 14:28:55

这是一个复杂的问题,我不能用简单的回答来解释。但让我来点高点吧。我将进一步假设现代操作系统如Windows或各种Unix衍生工具,而忽略嵌入式实时系统。

在硬件中不执行上下文切换。理解这一点是至关重要的。它是通过操作系统子系统(称为调度器)在软件中执行的。调度程序是一个光荣的中断控制器,它将多次触发微秒,并决定下一步执行哪个线程。这样做的算法很多,也是许多博士论文的主题。我快速发现的一个很好的概览是:http://www.studytonight.com/operating-system/cpu-scheduling

好的操作系统书籍将详细讨论这个问题。有太多的东西值得注意,所以选你的毒药吧。

最后一点,要在一个完整的层次上掌握调度是如何执行的,了解虚拟寻址方案是如何工作的才是真正区别进程和线程的原因。线程在调度程序、放置进程、封装线程和虚拟内存空间方面是至关重要的。

我不确定这是否有帮助,但至少我能够纠正一个误解,并指出一篇关于OS线程调度的简单文章。

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

https://stackoverflow.com/questions/46450058

复制
相关文章

相似问题

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