循环法最坏情况响应时间

Round robin worst case response time

下面的伪代码显示了典型的 Round Robin 软件架构。如果每个设备需要 20 毫秒来服务,而 UpdateLCD() 需要 10 毫秒来执行,那么最坏情况下的响应时间是多少?

void main (void) {
   while(1) {
     if (!! Device A needs Service) { 
         !! Handle Device A
     }

     if (!! Device B needs Service) {
         !! Handle Device B
     }

     . . . .

     if (!! Device D needs Service) {
         !! Handle Device D
     }

     UpdateLCD();
   }
}

由于一共有4台设备(A、B、C、D),如果在服务完设备A后,设备A立即需要服务,这里最坏情况的响应时间应该是20+20+20+10 = 70ms(假设设备 B、C 和 D 也需要维修)。

但是在答案选择中,只有:85ms、110ms、35ms和25ms。我想我需要帮助来理解循环架构。谢谢!

首先,你的数学是错误的:如果有四个设备(A、B、C 和 D),那么最坏情况下的时间是 20*4 + 10 = 90ms。

不过,通过排除法,它不可能是 85、35 或 25(因为提供的时间都是 10 的倍数),所以 "correct" 答案必须是 110……但这会假设有五个设备,而不是四个。