如果您在 Vxworks 中启用了循环,并且您的任务被更高优先级的任务抢占,那么剩余时间片会发生什么情况?

有帮助吗?

解决方案

您的任务将恢复执行并完成剩余的时间片。

请注意,由于时间切片的粒度为 1 个时钟周期,因此您将在一个时间周期内出现一些抖动。

例如:
您启用了具有 10 个时钟周期的时间片的循环。一个时钟周期为 10 毫秒。您预计每个时间片为 100 毫秒。
您会在 5 毫秒(第一个滴答的中间)被抢占。您应该再运行 95 毫秒,但 VxWorks 认为您还有 10 个时钟周期。

如果任务在 11 毫秒时重新获得 CPU,那么您将多执行 99 毫秒。
如果任务在 19 毫秒时重新获得 CPU,那么您将多执行 91 毫秒。

每次你被抢占时,你的任务可能会在绝对时间内执行 +/- 1 个周期。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top