浅谈vxworks(1)-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 3934
  • 博文数量: 2
  • 博客积分: 50
  • 博客等级: 民兵
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-11 20:56
文章分类
最近访客

分类:

2008-03-07 00:28:10

    vxworks是时下最为流行的一种商用实时操作系统,很多大型企业(特别使用到嵌入式操作系统的公司)在选用实时操作系统时,都会以vxworks为首选。为什么呢?我认为主要是有几个方面:第一:可靠性强,有强大的凯发app官方网站的技术支持团队,那些需要生产出稳定产品的企业,当然希望自己的产品有可靠保证。第二:有着非常方便的调试手段,在出现问题时,能够很快使用tornado进行调试。第三:本身的实时性性能也比较优越。虽然目前也有流行的开源操作系统linux,但是它在调试手段上和实时性能要求上与vxworks还存在着差距。最近也接触到了ose,但是很可惜没有得到使用的机会。从他们的演示来看,确实是一个不错的产品,但是由于接触还停留在表面,因此还不能具体了解。

    本人还一直对任务、进程和线程存在疑惑,静下来想想,其实就是不同的操作系统有着不同的定义和概念。在vxworks操作系统中就只有任务这一说,我们也可以说它就是一个进程,也可以说是一个线程。而在windows操作系统下,进程由多个线程组成,线程是进程的一部分。

    vxworks操作系统是多任务操作系统,调度原则是:抢占式和轮转式两种,不同优先级的任务将使用抢占式调度,而相同优先级的任务,采用轮转式,每个任务都会有一定的调度运行时间。抢占式调度方式会导致调度的优先级翻转的现象,所谓优先级翻转就是当一个高优先级任务运行时需要一个低优先级任务占用的资源,当在运行该低优先级任务时,出现一个中等优先级的任务需要运行。后面为了解决优先级翻转的问题,采用了优先级继承的处理方法,也就是在需要低优先级运行释放资源时,将该任务的优先级提高到和该高优先级一样,这样中等优先级不会再抢占到cpu。tasklock()和taskunlock()函数用于关闭调度和打开调度的功能,这两个函数时成对出现的。

    任务调度时涉及的有抢占、轮转,任务的上下文,所谓任务的上下文即表示任务的运行环境,如运行指令,sp地址,寄存器内值等。任务的上下文切换,在任务运行中被高优先级的任务打断时,将会有任务的上下文切换,核心运行区将正在运行的环境保存(压栈)。将另一个任务所需要运行的指令、数据等放入运行寄存器中,这就完成了任务上下文的切换。

    任务的同步和通信:

    1、共享内存   由于vxworks系统对内存的访问是全局的,因此可以有共享内存进行任务之间的通信,也就是我们常使用的,几个任务同时访问全局变量。在访问全局变量时需要考虑访问互斥的问题,互斥一般有三种方法采用:intlock() tasklock() 信号量 ,这在后面的信号量中会详细描述。

    2、消息队列  消息队列是任务间通信最常使用的方法,为一个任务创建一个消息队列,任务从消息队列中接收消息处理,在消息队列中无消息时,任务处于阻塞状态,通常的pend。而当有其它任务发送消息到该队列时,该任务就从阻塞队列中激活,进入ready状态。中断处理函数中允许使用发送消息到消息队列的函数,不会导致中断处理处阻塞而导致系统崩溃。

    3、套接字、管道设备   和消息队列的使用类似,套接字也是我们通常所说的socket,任务处理可以挂接在套接字上,通常这种用于系统之间的处理,即网络上通讯使用。socket套接字可创建三种方式:udp  tcp  raw,这在后面的socket会专门提及。

    4、信号量  作为同步使用的信号量,通常采用的是二进制信号量,作为二进制信号量又可以创建互斥信号量和同步信号量。同步信号量可以在中断处理程序中使用,而任务处理可以等待获取该信号量上,作为事件产生后的后续处理。

    5、信号   该方式目前没使用,使用的场所也较少。

   

   

   
阅读(837) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:博客已升级,请注意变更地址

给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图