我收到了这个问题
考虑一个运行十个 I/0 绑定任务和一个 CpU 绑定任务的系统。假设 CPU 计算每毫秒 I/O 密集型任务发出和 I/O 操作一次,并且每个 I/O 操作需要 10 毫秒才能完成。还假设上下文切换开销为 0.1 毫秒,并且所有进程都是长时间运行的任务 描述循环调度程序的 CPU 利用率:
一种。时间量为 1 毫秒
湾。时间段为 10 毫秒
我找到了答案
时间量是 1 毫秒:无论调度哪个进程,调度程序都会为每个上下文切换产生 0.1 毫秒的上下文切换成本。这导致 CPU 利用率为 1/1.1 * 100 = 91%。
时间片为 10 毫秒:I/O 绑定任务仅在用完 1 毫秒的时间片后就会引发上下文切换。因此,循环遍历所有进程所需的时间是 10*1.1 + 10.1(因为每个 I/O 绑定任务执行 1 毫秒,然后引发上下文切换任务,而 CPU 绑定任务在引发上下文之前执行 10 毫秒转变)。因此 CPU 利用率为 20/21.1 * 100 = 94%。
我唯一的问题是这个人是如何得出 CPU 利用率的公式的?我似乎无法理解他/她在哪里得到数字 20/21.1 * 100 = 94% 和 1/1.1 * 100 = 91%。