gpt4 book ai didi

multithreading - cpu效率公式

转载 作者:行者123 更新时间:2023-12-03 13:00:49 25 4
gpt4 key购买 nike

我有这样一个问题:

对某个系统的测量表明,平均进程在阻塞IO之前运行了时间T。过程切换需要时间S,这实际上是浪费的(开销)。对于带有量子Q的循环调度,请给出以下每个方面的CPU效率公式:

( a ) Q = INFINITY
( b ) Q > T
( c ) S < Q < T
( d ) Q = S
( e ) Q -> 0

我知道如何做a,b,d和e,但是对于c,答案是T/(T + S * T/Q)= Q/(Q + S)。这意味着上下文切换发生的总时间是T/Q,这使我感到困惑,比如说T = 3,Q = 2,该进程运行2个单元并切换到另一个进程,然后又切换回执行并完成,然后再次切换到另一个进程,因此是2个开关,即= roof(T/Q);但是根据答案,只有1次切换,所以1轮和2轮运行有什么区别?任何人都可以向我解释一下,确切地说是CPU效率是多少。

最佳答案

当被IO阻止时,您的问题没有说明调度程序切换,因此我提供的答案不正确。它没有考虑到当进程被IO阻塞时浪费CPU的事实。让我们看一个具有2个过程的示例:

repeat floor(T/Q) times:
Process 1 runs (Q units of time)
Context switch to process 2 (S units of time)
Process 2 runs (Q units of time)
Context switch to process 1 (S units of time)

if T mod Q > 0
Process 1 runs (T mod Q units of time) then blocks to IO
CPU is idle (Q - T mod Q units of time)
Context switch to process 2 (S units of time)
Process 2 runs (T mod Q units of time) then blocks to IO
CPU is idle (Q - T mod Q units of time)
Context switch to process 1 (S units of time)


Total time elapsed = 2(Q+S)*ceiling(T/Q)
Total time processes were running = 2T
Efficiency = T/((Q+S)*ceiling(T/Q))

如果调度程序在进程被阻塞后立即进行切换,则:
repeat floor(T/Q) times:
Process 1 runs (Q units of time)
Context switch to process 2 (S units of time)
Process 2 runs (Q units of time)
Context switch to process 1 (S units of time)

if T mod Q > 0
Process 1 runs (T mod Q units of time) then blocks to IO
Context switch to process 2 (S units of time)
Process 2 runs (T mod Q units of time) then blocks to IO
Context switch to process 1 (S units of time)


Total time elapsed = 2T + 2*S*ceiling(T/Q)
Total time processes were running = 2T
Efficiency = T/(T+S*ceiling(T/Q))

因此,如果我们假设调度程序在阻塞时切换,那么您得到的答案就是缺少ceiling()部分。如果我们假设T总是Q的倍数,那么您甚至不需要它。虽然不确定您的问题怎么说。

顺便提一句,我认为您正在重复计算上下文切换,因为您是从单个过程的角度来看它的。当您考虑计划多个进程时,对于每个运行的量子都应该有一个上下文切换这一事实变得更加清楚。

关于multithreading - cpu效率公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9180150/

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