打印
[STM32H7]

可以使用RTOS提供的信号量、互斥体等同步机制来管理共享资源?

[复制链接]
426|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
键盘手没手|  楼主 | 2023-11-30 22:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
资源管理和同步机制:
使用RTOS提供的信号量、互斥体等同步机制来管理共享资源。这有助于防止数据竞争和确保多任务间的安全通信。

osSemaphoreId sem_id;
osSemaphoreDef(sem);
sem_id = osSemaphoreCreate(osSemaphore(sem), 1);

有助于防止数据竞争吗?

使用特权

评论回复
沙发
一秒落纱| | 2023-12-19 22:07 | 只看该作者
对啊 ,加锁是为了防止数据被篡改

使用特权

评论回复
板凳
夜阑风雨| | 2023-12-20 01:00 | 只看该作者
一般不都是要加互斥锁的么

使用特权

评论回复
地板
远山寻你| | 2023-12-20 03:00 | 只看该作者
这种是防止一个进程没处理完数据,被下一个进程改了数据,就麻烦了

使用特权

评论回复
5
光辉梦境| | 2023-12-20 05:00 | 只看该作者
这就是OS的最终意义啊

使用特权

评论回复
6
三生万物| | 2023-12-20 07:00 | 只看该作者
对的,就是这么个方式实现的数据共享和管理

使用特权

评论回复
7
暖了夏天蓝了海| | 2023-12-20 09:00 | 只看该作者
多个任务或线程同时对共享资源进行读写操作,导致结果的不确定性和不一致性。

使用特权

评论回复
8
淡漠安然| | 2023-12-20 09:00 | 只看该作者
加互斥锁一般是为了实现对共享资源的互斥访问,以避免并发访问导致的数据竞争和不一致性。

使用特权

评论回复
9
江河千里| | 2023-12-20 11:00 | 只看该作者
线程同时对共享资源进行写操作,可能导致数据的损坏或丢失。

使用特权

评论回复
10
别乱了阵脚| | 2023-12-20 13:00 | 只看该作者
一般来说多个任务或线程相互等待对方释放资源,导致系统无法继续执行。这是死锁,要是有互斥锁就能大大避免这种现象

使用特权

评论回复
11
冰春彩落下| | 2023-12-20 22:00 | 只看该作者
互斥锁是一种同步机制,它可以确保在任意时刻只有一个任务或线程可以访问共享资源。当一个任务或线程获得了互斥锁后,其他任务或线程需要等待该锁释放才能继续访问共享资源。这样可以有效地避免竞态条件、数据损坏和死锁等问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

104

主题

1179

帖子

0

粉丝