如果您在 Vxworks 中启用了循环,并且您的任务被更高优先级的任务抢占,剩余的时间片会发生什么?
Benoit Lavigne
问问题
860 次
1 回答
3
您的任务将恢复执行并完成剩余的时间片。
请注意,您将在一个时间滴答中发生一些抖动,因为时间切片的粒度为 1 个时钟滴答。
例如:
您使用 10 个时钟滴答时间片启用循环。一个时钟节拍是 10 毫秒。您期望每个时间片有 100 毫秒。
您在 5 毫秒(第一个刻度的中间)被抢占。您应该再运行 95 毫秒,但 VxWorks 认为您还有 10 个滴答。
如果任务在 11 毫秒内恢复 CPU,您将多执行 99 毫秒。
如果任务在 19 毫秒内恢复 CPU,您将多执行 91 毫秒。
每次您被抢占时,您的任务可能会在绝对时间内执行 +/- 1 个滴答。
于 2008-09-18T01:11:53.530 回答