vxWorks内核实现基本原理
发布日期:2021-07-01 01:03:47
浏览次数:3
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月26日 12时41分34秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
套接字的多种可选项
2019-05-01
多进程服务器端 ---(1) 进程
2019-05-01
多进程服务器端 ---(2) *
2019-05-01
进程间通信
2019-05-01
线程 互斥量 信号量——多线程服务器端的实现
2019-05-01
制作HTTP服务器端
2019-05-01
带缓冲I/O 和不带缓冲I/O的区别与联系
2019-05-01
带缓冲I/O与不带缓冲I/O:文件I/O和标准I/O库
2019-05-01
浅谈标准I/O缓冲区
2019-05-01
exec函数详解
2019-05-01
传输层:TCP UDP
2019-05-01
套接字编程简介
2019-05-01
基本TCP套接字编程
2019-05-01
TCP客户/服务器程序示例
2019-05-01
Java中的泛型
2019-05-01
Java基本类型包装类
2019-05-01
Java中的数组
2019-05-01
MAC 地址(单播、组播、广播地址分类)
2019-05-01
Ubuntu下环境变量该写进哪个文件里
2019-05-01
make: arm-linux-gcc: Command not found
2019-05-01