首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NT10内核抢占式多任务处理

NT10内核抢占式多任务处理
EN

Stack Overflow用户
提问于 2018-02-28 05:43:31
回答 1查看 448关注 0票数 0

我正在学习一门操作系统课程,在该课程中我们使用Windows Server 2016和ESXi

我们的设置是一台运行W2K16的机器升级到DC,一台直接在硬件上运行ESXi的机器和一台客户端机器。在ESXi机器上,我们还有两个额外的W2K16虚拟化副本,其中一个被提升为DC。

提出的问题是,您如何使用您的一台机器来证明NT10内核使用抢占式多任务而不是协作。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-28 06:06:27

写一个简单的程序:

代码语言:javascript
复制
volatile unsigned i = 0;

int main() {
    for(; ; ++i);
    return 0;
}

编译它,并启动与CPU核心一样多的副本。您的计算机不会锁定,您仍然可以运行其他应用程序(尽管性能有所下降)。这是一个很好的证据,证明您正在运行抢占式多任务操作系统。

这个程序只是像mad那样浪费CPU周期,而不是explicitly or implicitly yielding the CPU back to the system;在协作多任务系统中,这将导致系统完全锁定(一旦任务获得CPU,它就会将其保留给自己,而不会给任何其他任务留下运行的机会)。

另一方面,在抢占式多任务系统中,您可以随意保留CPU,但操作系统会定期将其取回(通常是在某些计时器中断时),以便让其他任务也运行。

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

https://stackoverflow.com/questions/49018421

复制
相关文章

相似问题

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