gpt4 book ai didi

multithreading - vxworks 任务如何让所有其他较低优先级的任务在单个多任务循环中运行?

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

vxworks 任务如何在最短的时间内将 CPU 交给较低优先级的任务?

有没有一种方法可以让任务在不到 1ms 的时间内放弃 CPU?

我知道的让其他较低优先级任务运行的唯一方法是 taskDelay(n),其中 n>=1。

我一直假设 taskDelay(0) 让所有其他具有相同或更高优先级的任务运行。

taskDelay(1) 让所有较低优先级的待处理任务最多运行 1 毫秒。

最佳答案

一个更高优先级的任务总是会运行,如果它准备好了,如果你还没有调用 taskLock()intLock()等等,所以你不需要taskDelay()出租 更高 优先任务运行。
taskDelay(0)会将当前任务放在该优先级的就绪队列的后面。如果它是该优先级的唯一任务,它将是 立即无论是否存在较低优先级的任务,都会重新安排
taskDelay(n>0)将把当前任务放在就绪队列的后面,对于那个优先级,它不会被重新安排为 n蜱虫。这将允许运行任何优先级较低的就绪任务。
taskDelay()的参数是滴答声,而不是毫秒。其长度可以根据系统时钟速率确定(您通过 sysClkRateSet() 设置,并通过 sysClkRateGet() 读取)。 1 勾 可能等于 1ms,但 只有如果系统时钟速率是 1000。它可能不会是。

注意:该系统时钟与 CPU 频率不同。

关于multithreading - vxworks 任务如何让所有其他较低优先级的任务在单个多任务循环中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10997606/

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