3.2 任务间通信

任务间通信机制是多任务间相互同步和通信,以协调各自活动的主要手段。VxWorks提供的任务间通信手段按其速度由快到慢依次是信号量、消息队列、管道和套接字。常用的通信机制是信号量和消息队列,套接字(Socket)用于网络编程。

(1) 信号量

信号量是实现任务互斥、同步操作的主要机制,VxWorks提供的信号量经过了高度优化,在所有任务间通信机制中,速度最快。对于互斥,信号量可以上锁对共享资源的访问,并且比禁止中断或禁止抢占提供更精确的互斥粒度。对于同步,信号量可以协调外部事件与任务的执行。

MBPLC使用二进制信号量来解决多个任务读写数据的互斥问题,使用计数器信号量来解决定时器计数问题;

(2) 消息队列

消息队列是VxWorks提供的单CPU中任务间通信的主要机制。消息队列允许以FIFO或基于优先级方式排队消息,消息的数目可变,消息的长度可变。任何任务都可以向消息队列发送消息,也可以从消息队列接收消息。多个任务允许从一个消息队列收发消息。但是,两个任务间的双向通信通常需要两个消息队列,各自用于一个方向。

MBPLC使用消息队列来实现任务间的数据交换。首先调用msgQCreate()函数创建消息队列,再用msgQSend()和msgQReceive()函数发送和接受消息,最后调用msgQDelete()函数中止消息队列。

3.3 中断处理程序

中断处理程序是实时系统的重要组成部分。系统通过中断机制了解外部世界,并对外部事件作出响应。实时系统的反应取决于系统对于中断的响应速度和中断处理程序的处理速度。由于在很短的时间内,可能产生很多中断,高优先级的中断将阻塞低优先级的中断,因此,必须使中断处理程序的处理时间最短。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查