【问题标题】:Round robin worst case response time循环最坏情况响应时间
【发布时间】:2015-07-22 14:55:00
【问题描述】:

下面的伪代码显示了一个典型的循环软件架构。如果每个设备需要 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。我想我需要帮助来理解循环架构。谢谢!

【问题讨论】:

    标签: scheduling round-robin


    【解决方案1】:

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

    但是,通过消除过程,它不能是 85、35 或 25(因为提供的时间都是 10 的倍数),所以“正确”答案必须是 110……但这假设有五个设备,不是四个。

    【讨论】:

    • 谢谢!最坏情况时间是所有任务的总和。我已经和那个人核对过了,updateLCD() 执行时间应该是 5ms -.-"
    猜你喜欢
    • 2014-06-12
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多