循环法最坏情况响应时间
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……但这会假设有五个设备,而不是四个。
下面的伪代码显示了典型的 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……但这会假设有五个设备,而不是四个。