Vxworks系统学习之一----任务

1.任务队列

vxworks维护4个队列:

tick队列

ready队列

active队列

pend队列

一,tick队列

当执行taskDelay时,任务会被延长一段时间执行,此时,任务就会被加入到tick队列中,任务处于Delay状态,无权竞争CPU;

二,ready队列

有资格竞争CPU的队列,按照任务的优先级进行排队,队列头部是优先级最高的任务;

三,active队列

所有任务无论状态如何都会在这个队列中,这个队列维护着系统当前所有的任务,我们通过“i”可以看到所有的任务就是通过遍历active队列来实现的;

四,pend队列

当多个任务竞争一个资源时,如果资源不可得,任务就会被设置为pend状态,进入pend队列中;


函数taskSpawn创建任务,新建任务会放到active队列,此时还不能竞争CPU,taskSpawn最后一步就是把任务放到ready队列中,就可以竞争CPU了。


2.任务优先级

Vxworks共有256个优先级(0~255),0表示优先级最高,255表示优先级最低。taskSpawn创建任务时指定任务优先级,taskPrioritySet可以再创建完成后修改任务优先级。

Vxworks对于应用层任务,推荐使用100~250之间的优先级;驱动层任务,推荐使用51~99之间的任务。

内核网络任务“tNetTask”的任务为50,要是有优先级低于这个,网络收发包就可能受影响。


3.任务上下文

任务的数据结构包含以下内容:

1)CPU的所有寄存器值,还有任务内存映射空间、任务名称、任务优先级、任务入口函数、信号量、队列;

2)存放任务运行时的栈。栈的大小是由创建任务时确定的,此后不允许改变任务栈的大小,如果此任务有许多递归调用,就要申请大的栈空间,防止栈的溢出;

3)各种定时信息。系统时钟是系统的脉搏,与高优先级的中断联系。每个Tick,OS都会响应一次中断,这个中断可以作为操作系统调度的触发点;

4)信号处理函数,ctrl+c中断当前前台任务。

5)其他辅助信息,统计数据等


4.常用任务调度函数

1)kernelTimeSlice(int ticks) --------------RR调度使能函数

2)STATUS taskLock(void)和STATUS taskUnlock(void)-------------关闭/开启任务调度,并不禁止中断,是一种互斥机制

3)taskSpawn创建了任务之后就进入运行状态,taskCreate创建了任务,还要通过taskActivate来激活,才能加入到ready队列中。


5.任务栈

Vxworks的任务栈本质上是内核数据结构的简单保护机制,仅有一个全局变量kernelState来表示是否在内核态。

Vxworks下任务栈即被应用程序使用,也被内核函数使用。

任务栈大小在任务创建时已经确定,在使用时不能修改。这样会引起资源浪费,Vxworks官方文档建议通过试验法,通过checkStack(taskname or id)来查看任务栈的使用情况。


6.任务名

Vxworks可以起任意长度的名字,但是“i”显示任务时,会截断任务名,只显示任务名字的前11B。

“i”最终调用函数taskShow(int tid, int level) /*level:0 = summary, 1 = detals, 2 = all tasks*/

除非自己写函数替换掉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】Wireshark网络抓包(四)——工具

转自:https://www.cnblogs.com/strick/p/6344486.html 一、基本信息统计工具 1)捕获文件属性(Summary) 1. File:了解抓包文件的各种属性,例如抓包文件的名称、路径、文件所含数据包的规模等信息 2. Tim…

silverlight + wcf(json格式) + sqlserver存储过程分页

silverlight并没有提供现成的分页控件,百度了一圈,也没有发现aspx中好用的类似AspNetPager成熟控件,网上现有的一些分页代码,很多也是基于1.0版本的,silverlight2.0的并不多,自个儿琢磨了一下,发…

什么是指利用计算机和现代,现代计算机一般指什么计算机?

现代计算机一般指通用数字电子计算机,它是当今世界电子计算机行业中的主流,其内部处理的是一种称为符号信号或数字信号的电信号;它的主要特点是“离散”,在相邻的两个符号之间不可能有第三种符号存在。电子计算机分为模拟式电子计…

程序员成长之路

程序员的成长经历往往很相似,大部分的人走过了最前面相同的一段路,而有的人则走得更远。总结自己这些年来的历程,这也许能让年轻的程序员少走一些弯路,成长得更快;或许更好一些,能让大家从中得到一些启发&a…

【转】VS中常用图标提示含义

转自:https://www.cnblogs.com/zhjason/articles/14044190.html 有增删 “类视图”和“对象浏览器”图标 “类视图”和“对象浏览器”显示表示代码实体的图标,如命名空间、类、函数和变量 。 下表展示和描述了图标。 图标描述图标描述图标描述图标描述…

与计算机相关的课外活动,课外活动学生论文,关于应用型院校计算机专业课外活动相关参考文献资料-免费论文范文...

导读:本论文是一篇免费优秀的关于课外活动学生论文范文资料,可用于相关论文写作参考。(东北农业大学成栋学院 计算机科学与技术系 黑龙江哈尔滨 150025)摘 要:应用型院校计算机专业课外活动在课堂知识的基础上得到延伸,其丰富多彩,灵活多样的教学形式有利于增进学生…

二层和三层转发

二层转发的机制是什么?学习线程和报文转发线程。二层只跟MAC地址有关 与IP无关 所以在二层做IP-MAC绑定是无效的。 三层以太网交换机的转发机制主要分为两个部分: 二层转发和三层交换。      先讲二层转发流程。      1、 MAC地址介绍   MA…

改变dom样式的方法

改变dom样式有两种做法,一种是通过domNode.style.xxx "",给domNode加上内置样式,这种方式如果需要的样式比较多,就只好一个个增加,比较麻烦,还有一种方式比较聪明,通过在css里预设好几种不同样式…

【转】胶片曝光时的排版!!!!!!!

这个本来没啥 不是什么算法 绝技。 都不值得一提。 其实这个是医学影像胶片曝光时排版的一个逻辑。 dicom标准第三部分 主要是讲IOD定义 在第166页有这样的描述: 表C.13.5-1图象盒象素描述组件 属性名称 标记       说明 图象位置 (2020,0010)  …

计算机课数学,这4个专业,对数学要求很高,数学不好的慎选!

建筑学专业这个专业就是典型数学课程比较多的专业,如果数学成绩不好,真心建议千万不要选择这个专业,因为学习的课程与大多与数学有关,而且难度较大。像代数,微积分,线性规划,统计学等课程都是在…

架构师之路(5)---IoC框架

1 IoC理论的背景 我们都知道在面向对象的应用中,软件系统都是由N个对象组成的,它们通过彼此的合作,最终实现业务逻辑。 图1:耦合在一起的对象 如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各…

【转】数据库软考笔记(一)第一章 计算机硬件基础知识笔记总结

转自:https://blog.csdn.net/qq_36411874/article/details/115057569 目录 运算器:ALU、AC、DR、PSW 控制器:IR、PC、AR、ID 寄存器组(了解即可) 存储器 存储器与总线(了解,考分类&#xf…

Vlan的转发过程

untag就是普通的ethernet报文,普通PC机的网卡是可以识别这样的报文进行通讯; tag报文结构的变化是在源mac地址和目的mac地址之后,加上了4bytes的vlan信息,也就是vlan tag头; 一般来说这样的报文普通PC机的网卡是不能…

翻转课堂说教案计算机,计算机学院崔海文:对翻转课堂的进一步认识与思考

近期我有幸参加了学校教师发展中心组织的信息化教学培训班,认真聆听了各位教授的讲座,收获颇多。傅钢善教授的报告《信息技术环境下如何上好一堂课》让我的收获最大,教授的讲座宛如一顿丰盛的大餐,生动且不失严谨的呈现在大家面前…

Dos下命令运行带有包名的Java类

这几天在回顾原来的知识,发现知识一段时间不整理的话很多东西手生的很,今天刚刚想在dos下运行一个java类却出错了.Exception in thread "main" java.lang.NoClassDefFoundError 为什么呢?后面找了许久发现是类中带有包名的问题. 1.当类没有包…

嵌入式的基础知识

1.嵌入式操作系统结构 一般情况下分为硬件子系统和软件子系统; 硬件子系统主要包括:CPU小系统,电源模块,调试模块,时钟模块,接口模块,复位和配置模块; 软件子系统主要包括&#x…

【转】DICOM医学图像处理:开源库mDCM与DCMTK的比較分析(一),JPEG无损压缩DCM图像

转自:https://www.cnblogs.com/mfrbuaa/p/4004114.html 有修订 背景介绍: 近期项目需求,需要使用C#进行最新的UI和相关DICOM3.0医学图像模块的开发。在C语言下,我使用的是应用最广泛的DCMTK开源库,在本专栏的起初阶段…

量子计算机的核心元件简称,计算机文化基础复习题(含答案).doc

计算机文化基础复习题(含答案)整理计算机文化基础复习题第一套一、单项选择题(每题1分,共30分)1、在Powerpoint2003中,若为幻灯片中的对象设置"驶入效果",应选择对话框 (? )???? A、自定义放映???? B、幻灯片版式????…

xfire客户端对返回list很挑剔,所以需要使用泛型。

casldap异常分析 | xfirewebservice(服务器配置篇) 2008-12-31xfirewebservice(客户端调用篇) 服务接口,就是用来调用的,所以客户端显得尤为重要,xfire客户端对返回list很挑剔,所以需要使用泛型。 如何建立webservice client 步骤…

C语言关键字----Const

C中CONST的使用:   虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。   问题:const变量 & 常量   为什么下面的例子在使用一个const变量…