VxWorks如何实现任务间的同步互斥?

作者:佚名 上传时间:2023-04-28 运行软件:Wind River Systems, Inc. 软件版本:VxWorks 6.9 版权申诉

本文介绍了VxWorks如何使用信号量(semaphore)实现任务间的同步互斥,避免了任务间的竞争和冲突,保证了系统的正确性和稳定性。

#include <vxWorks.h>
#include <semLib.h>

SEM_ID mysem; //定义信号量

void task1()
{
    while(1)
    {
        semTake(mysem, WAIT_FOREVER); //任务1先等待信号量
        printf("Task 1 running\n");
        semGive(mysem); //执行完毕后将信号量归还
        taskDelay(100); //等待100个系统节拍
    }
}

void task2()
{
    while(1)
    {
        semTake(mysem, WAIT_FOREVER); //任务2先等待信号量
        printf("Task 2 running\n");
        semGive(mysem); //执行完毕后将信号量归还
        taskDelay(100); //等待100个系统节拍
    }
}

int main()
{
    mysem = semBCreate(SEM_Q_PRIORITY, SEM_EMPTY); //创建优先级信号量
    taskSpawn("t1", 100, 0, 4096, (FUNCPTR)task1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
    taskSpawn("t2", 100, 0, 4096, (FUNCPTR)task2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
    while(1);
    return 0;
}

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
VxWorks任务同步互斥
VxWorks任务间的同步与互斥
PDF
0B
2018-12-09 17:15
VxWorks如何实现任务同步互斥
本文介绍了VxWorks如何使用信号量(semaphore)实现任务间的同步互斥,避免了任务间的竞争和冲突,保证了系统的正确性和稳定性。#include <vxWorks.h>#inc
VxWorks 6.9
Wind River Systems, Inc.
2023-04-28 13:47
线程实现同步互斥方法
NULL博文链接:https://t240178168.iteye.com/blog/1749315
RAR
0B
2019-07-12 22:40
如何用PV原语实现进程互斥同步
如何用PV原语实现进程间的互斥与同步P操作和V操作是不可中断的程序段,称为原语。PV原语及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的。信号量sem是一整数,sem大于等于零时代表可供并
TXT
0B
2019-07-12 22:14
进程同步互斥
关于系统之间使用的api的使用和进程的同步互斥的有关处理,非常有用。
PPT
0B
2019-09-09 02:50
VxWorks任务同步互斥示例
本示例展示了在VxWorks实时操作系统中如何使用任务同步和互斥机制,确保多个任务之间的安全访问共享资源。通过使用信号量和互斥锁,可以有效避免竞态条件和数据不一致性问题。#include <v
VxWorks 7.0
VxWorks实时操作系统
2023-11-19 20:21
线程实现同步互斥方法合集
特别详细的整理出的几篇线程间同步互斥的文章,代码基本能用,文章很全面,值得一读.
DOC
0B
2019-01-13 16:17
任务同步互斥
实验报告五:(1)编程实现哲学家就餐问题。五个哲学家坐在圆桌前,每人一碗面条,每个哲学家两侧各有一支筷子,哲学家处于吃饭和思考两种状态,哲学家吃面条要用他两侧的两只筷子。提示:设计5个任务:Task0
DOCX
0B
2019-09-13 22:38
VxWorks任务通信
VxWorks task communication
PDF
0B
2019-06-23 10:01
Vxworks任务通信
Vxworks任务间通信 哈工大嵌入式操作系统讲义 主要内容 共享数据结构 四种信号量 两种消息队列 管道
PDF
0B
2018-12-09 17:15