等待时间定义为每个进程在获得时间片之前必须等待的时间。 在调度算法中,比如Shorted Job First和First Come First服务,我们可以轻松地发现等待时间,当我们将作业排队等候,并看到每个人在服务之前必须等待多长时间。Round Robin调度中的平均等待时间
谈到循环法或任何其他抢先算法,我们发现长时间运行的作业在CPU中花费一点时间,当它们被抢占时,然后等待某个时间轮到它执行,并在某个时间轮到它,它会执行直到完成。我想找出最好的方法来理解这种调度算法中作业的“等待时间”。
我发现了一个formula这使等待时间为:
Waiting Time = (Final Start Time - Previous Time in CPU - Arrival Time)
但我无法理解这个公式的推理。对于例如考虑一个工作A,其爆发时间为30个单位,循环发生在每5个单位。还有两个工作B(10)和C(15)。
中,这些将被提供服务将是顺序:
0 A 5 B 10 C 15 A 20 B 25 C 30 A 35 C 40 A 45 A 50 A 55
等待时间,A = 40 - 5 - 0
- 我选择40,因为40一个永远等待之后。它只是获得时间片并继续。
- 选择5是因为A在30到35之间花费了过程。
- 0是开始时间。
那么,我对这个公式有疑问,为什么15 A 20
没有占? 直觉上,我不明白这是如何让我们等待A的时间,当时我们只是倒数第二次执行,然后减去到达时间。
据我来说,等待时间A应该是:
- 决赛开始时间 - (所有时间的总和它在处理消费)。
如果这个公式错了,为什么呢?
请帮助澄清我对这个概念的理解。
是不是等待时间就是完成时间 - 到达时间 - 如果它自己跑完所需要的时间。也就是说,与系统中唯一的工作相比,需要花费额外的时间。 – 2010-12-22 07:25:50
@凯斯,那也会给出正确的答案。 tmtowtdi,因为它是一个简单的公式。 – 2010-12-22 22:23:47