【发布时间】:2019-03-24 15:05:24
【问题描述】:
我目前正在研究 Silberschatz 书中的操作系统,并且遇到了“调度延迟”概念。书上是这样定义的:
调度程序停止一个进程所需的时间和 开始另一个运行称为调度延迟。
这不就是“上下文切换”的定义吗?这两个术语有什么区别还是可以互换?
【问题讨论】:
标签: operating-system
我目前正在研究 Silberschatz 书中的操作系统,并且遇到了“调度延迟”概念。书上是这样定义的:
调度程序停止一个进程所需的时间和 开始另一个运行称为调度延迟。
这不就是“上下文切换”的定义吗?这两个术语有什么区别还是可以互换?
【问题讨论】:
标签: operating-system
让我们尝试一个“有点现实”的场景,假设一个任务之前使用read() 从管道中获取数据,但当时没有数据,因此任务被阻塞;然后某些东西将数据写入管道,导致任务再次被解除阻塞。在这种情况下:
read() 调用提供的缓冲区中,并安排read() 调用应该返回的参数(例如字节数读)。这可能还需要 50 纳秒。这里,上下文切换时间为 40 纳秒,但调度延迟(由本书作者定义)为 100 纳秒。
【讨论】:
“上下文切换”是一个过程。 “Dispatch Latency”是一个延迟,也就是时间。
【讨论】: