我目前正在从 Silberschatz 的书中学习操作系统,并遇到了“调度延迟”的概念。书中是这样定义的:
调度程序停止一个进程并启动另一个进程所需的时间称为调度延迟。
这不是“上下文切换”的相同定义吗?这两个术语之间有什么区别还是可以互换?
让我们尝试一个“有点现实”的场景,假设之前有一个任务用于read()从管道中获取数据,但当时没有数据,因此任务被阻塞;然后某些东西将数据写入管道,导致任务再次解锁。在这种情况下:
read()参数(例如读取的字节数)。read()这可能还需要 50 纳秒。这里,上下文切换时间为 40 纳秒,但调度延迟(由本书作者定义)为 100 纳秒。