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

[复制链接]
852|10
 楼主| 键盘手没手 发表于 2023-11-30 22:51 | 显示全部楼层 |阅读模式
资源管理和同步机制:
使用RTOS提供的信号量、互斥体等同步机制来管理共享资源。这有助于防止数据竞争和确保多任务间的安全通信。

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

有助于防止数据竞争吗?

一秒落纱 发表于 2023-12-19 22:07 | 显示全部楼层
对啊 ,加锁是为了防止数据被篡改
夜阑风雨 发表于 2023-12-20 01:00 | 显示全部楼层
一般不都是要加互斥锁的么
远山寻你 发表于 2023-12-20 03:00 | 显示全部楼层
这种是防止一个进程没处理完数据,被下一个进程改了数据,就麻烦了
光辉梦境 发表于 2023-12-20 05:00 | 显示全部楼层
这就是OS的最终意义啊
三生万物 发表于 2023-12-20 07:00 | 显示全部楼层
对的,就是这么个方式实现的数据共享和管理
淡漠安然 发表于 2023-12-20 09:00 | 显示全部楼层
加互斥锁一般是为了实现对共享资源的互斥访问,以避免并发访问导致的数据竞争和不一致性。
暖了夏天蓝了海 发表于 2023-12-20 09:00 | 显示全部楼层
多个任务或线程同时对共享资源进行读写操作,导致结果的不确定性和不一致性。
江河千里 发表于 2023-12-20 11:00 | 显示全部楼层
线程同时对共享资源进行写操作,可能导致数据的损坏或丢失。
别乱了阵脚 发表于 2023-12-20 13:00 | 显示全部楼层
一般来说多个任务或线程相互等待对方释放资源,导致系统无法继续执行。这是死锁,要是有互斥锁就能大大避免这种现象
冰春彩落下 发表于 2023-12-20 22:00 | 显示全部楼层
互斥锁是一种同步机制,它可以确保在任意时刻只有一个任务或线程可以访问共享资源。当一个任务或线程获得了互斥锁后,其他任务或线程需要等待该锁释放才能继续访问共享资源。这样可以有效地避免竞态条件、数据损坏和死锁等问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

104

主题

1260

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部