我正在阅读 Linux 文档项目中的 Linux 进程:https : //www.tldp.org/LDP/tlk/kernel/processes.html
进程总是在进行系统调用,因此可能经常需要等待。即便如此,如果一个进程一直执行直到它等待,那么它仍然可能使用不成比例的 CPU 时间,因此 Linux 使用抢占式调度。在这个方案中,每个进程被允许运行一小段时间,200 毫秒,当这段时间结束时,另一个进程被选择运行,原始进程等待一段时间,直到它可以再次运行。这一小段时间称为时间片。
我的问题是,这个时间是如何被跟踪的?如果进程当前是唯一一个占用 CPU 的进程,那么实际上没有检查时间是否已过期,对吗?
我知道进程会跳转到系统调用,而那些会跳转回调度程序,因此在这方面如何“交换”进程是有道理的。但是 Linux 如何能够跟踪进程在 CPU 上占用了多少时间?只能通过硬件定时器实现吗?