gpt4 book ai didi

vxworks - VxWorks调度程序如何执行?

转载 作者:行者123 更新时间:2023-12-04 03:09:57 30 4
gpt4 key购买 nike

想知道如何调用调度程序,以便它可以切换任务。就像它的抢占式调度或循环调度一样,调度器也应参与其中以执行任何类型的任务切换。假设低优先级任务有一个无限循环-调度程序何时进行干预并切换到较高优先级的任务?

查询是:
1.谁叫调度程序? [在VxWorks中]
2.如果有规律地调用它-该机制如何实现?

提前致谢。

-阿什温

最佳答案

简单的答案是,vxWorks通过来自系统计时器的硬件中断来控制,该中断在系统运行时以固定的间隔连续发生。

这里有更多详细信息:

vxWorks启动时,它将配置您的硬件以每n毫秒生成一个计时器interrupt,其中n通常为10,但完全取决于您的硬件。通常,计时器间隔是在启动时由vxWorks在Board Support Package (BSP)中设置的。

每当计时器触发中断时,系统就会开始执行计时器interrupt handler。计时器中断处理程序是vxWorks的一部分,因此现在vxWorks可以控制了。它要做的第一件事是将CPU状态(例如寄存器)保存到当前正在运行的任务的Task Control Block (TCB)中。

然后,最终vxWorks运行调度程序来确定下一个运行程序。要运行任务,vxWorks将任务的状态从其TCB复制到计算机寄存器中,然后,任务将控制CPU。

奖金信息:

vxWorks在任务切换逻辑中提供了hooks,以便您可以在任务被抢占时调用一个函数。

关于vxworks - VxWorks调度程序如何执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2995210/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com