gpt4 book ai didi

terminology - 什么是自愿抢占?

转载 作者:行者123 更新时间:2023-12-04 15:04:06 25 4
gpt4 key购买 nike

什么是自愿抢占?我只知道这是调度中的一个概念。

最佳答案

这取决于操作系统。

在某些 RTOS(实时操作系统)中,自愿抢占意味着正在运行的进程声明它可以被抢占的点(否则它将运行直到完成)。考虑这个变体的另一种方式是协程中的 yield。这与内核决定抢占的大多数桌面操作系统形成对比。请记住,某些 RTOS 没有“用户模式”的概念。

在 Linux 中(至少),“自愿抢占”有点用词不当:

传统上(没有强制抢占),当用户进程进行系统调用(在内核模式下)时,它会阻塞直到完成。只有用户模式代码可以被抢占。

抢占式内核使得内核代码本身可以被抢占。这听起来多余,但值得注意的是,我们的意思是内核是可抢占的,而不是“内核支持抢占”。强制/非自愿抢占意味着即使在为系统调用提供服务时,高优先级用户进程的中断也可以“强制”内核进行上下文切换,以便它现在可以运行(从技术上讲,它并不是真正的上下文切换,但它具有相同的影响)。这减少了用户进程“看到”硬件状态变化的延迟。

自愿抢占是内核定期检查以查看它是否应该“在执行内核操作时”重新调度进程。也就是说,它不仅仅在抢占点调度/重新调度用户进程,而是在处理诸如 I/O 之类的事情时定期进行。因此,通常高优先级用户进程可能仍需要等待低优先级进程完成其切片,而高优先级进程现在可能会“提前”运行,因为内核会更频繁地检查它是否要运行。这减少了用户进程从挂起状态移动到运行状态的延迟(以整体系统吞吐量为代价)。

关于terminology - 什么是自愿抢占?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5174955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com