vxWorks内核实现基本原理
发布日期:2021-07-01 01:03:47 浏览次数:2 分类:技术文章

本文共 693 字,大约阅读时间需要 2 分钟。

 
内核实现基本原理
    VxWorks 内核维护三个队列:tick队列、ready 队列、active 队列。另外还有一个队列涉及任务,即任务等待资源时所处的队列,这个队列可以是VxWorks内核提供的,也可以是用户提供的,此处令其为pend队列。
    所谓tick 队列,即当调用taskDelay 函数让任务延迟一段固定的时间时,任务所处的队列,此时任务被设置为Delay状态,无资格竞争使用CPU;ready队列即有资格竞争使用CPU的所有任务,该队列以优先级为序排列任务,队列头部是除了当前运行任务外,系统中最高优先级的任务;active 队列有些误导,实际上称之为task 队列更合适,因为系统中所有的任务无论当前状态如何,都将在这个队列中,这个队列维护着系统中当前所有的任务,即通过该队列可以查找到当前系统中的所有任务,在Shell 下运行“i”命令,显示系统中所有的任务,就是通过遍历active队列完成的;pend队列即当任务竞争使用某资源,而资源当前不可得时,任务就被设置为pend状态,进入pend队列。
    函数taskSpawn 创建一个新的任务。首先,其创建一个任务控制结构,对该结构进行初始化后,将结构加入active队列以作为系统任务管理之用。此时任务仍无资格竞争使用CPU,taskSpawn函数的最后一步就是将这个任务结构再加入到ready队列,此时这个任务才真正可以称为已经在竞争使用CPU了。当系统中所有的优先级高于这个任务的其他任务运行完毕或者由于等待资源而处于阻塞时,这个新创建的任务就将被调度运行。所以,在VxWorks下,如果一个新创建的任务优先级不高&

转载地址:https://mao0514.blog.csdn.net/article/details/21077575 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:vxWorks BSP主要文件目录的组成及主要文件的作用
下一篇:VxWorks 基本启动方式

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月14日 08时57分31秒