Advertisement

vxvorks 3 (任务同步)

阅读量:

VxWorks任务间同步的机制以及通信方式

概念普及:

  • 资源删除保护:当进程A获取到某一资源的信号量后,若此时进程A被删除,该资源将无法被访问,因此必须采取相应的保护机制;
  • 优先级反转:假设有三个进程A、B和C,且其优先级关系为A高于B,B又高于C。此时进程A正在等待由进程C所持有的资源,在此情况下,由于资源未就绪,进程A进入阻塞状态。随后进程C开始执行,但由于其优先级低于进程B,导致进程B抢先执行。此时进程A仍需等待资源释放,而只有当进程B完成任务并释放资源后,才能使进程C获得执行机会,并最终释放该资源;
  • 死锁:当任务A和任务B分别持有资源a和资源b时,若任务A需要获取资源b而任务B需要获取资源a,则两者将陷入无法继续执行的状态,这种现象即为死锁;

1、共享内存+信息同步实现通信

  • 中断锁(直接屏蔽中断,防止任务调度及外部事件的接收);
    • 优先级锁。限制任务调度,但可对中断进行响应;
    • 信号量
      • 二值信号量
      • 互斥信号量
      • 计数信号量
        PS:二值信号量与互斥信号量均仅具备两种状态,其差异在于互斥信号量用于实现单个任务对共享资源的独占访问,而二值信号量则更像是一种标志位,在两个任务之间起到同步操作的

全部评论 (0)

还没有任何评论哟~