gpt4 book ai didi

linux - 递增时钟

转载 作者:太空宇宙 更新时间:2023-11-04 09:55:43 24 4
gpt4 key购买 nike

例如,当一个进程设置为以初始时间片 10 运行时,硬件中的某个人应该知道这个初始时间片并递减它,当时间片变为 0 时,应该触发一个中断!

在 freeBSD 内核中,我知道 hardclock 和 softclock 完成这个任务。但我的问题是,时钟的递减是否与进程的执行并行?

最佳答案

我将在这里以 PIT 为例,因为它是最简单的计时机制(并且已经存在了很长一段时间)。

另外,这个答案是特定于 x86 的;并且与操作系统无关。我对 FreeBSD 和 Linux 的内部结构了解不够,无法专门回答它们。其他人可能更有能力做到这一点。

本质上,时间片在进程执行的同时“递减”,因为计时器为每个“滴答”创建一个 IRQ(请注意,诸如 HPET 之类的计时器可以执行“一次性”模式,这会触发 IRQ在特定的延迟之后,也可以用于调度)。一旦时间片递减为零,调度程序就会收到通知并发生任务切换。所有这一切都与您的进程“同时”发生:IRQ 跳入,运行一些代码,然后让您的进程继续运行,直到时间片用完。

应该注意的是,一般来说,您不会看到进程运行到其时间片的末尾,因为任务切换可能是系统调用的直接结果(例如,从磁盘读取阻塞,甚至写入终端)。

关于linux - 递增时钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4904353/

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