UCOS学习-信号量

信号量是用于控制并发访问共享资源的机制,互斥信号量能解决优先级反转问题。博客讨论了ISR不使用信号量的原因,并提出了防止死锁的五个策略,包括避免同一时间申请多个锁、在获取所有所需锁后再开始处理等。这些策略有助于维护系统的稳定和高效运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

信号量也是资源管理的一种方法
信号量相当于一把锁。锁住共享资源,代码需要获取钥匙才能使用共享资源
只有任务才能使用信号量,ISR不能使用

互斥信号量是解决优先级反转的问题,通过提高任务的优先级,任务时候互斥信号只能提供给一个任务

死锁,就是两个任务互相等待对方所占用的资源的情况
防止死锁:
1、同一个时间不要申请多于一个互斥锁
2、不要直接地申请互斥锁,改申请放到机器间驱动和可重入函数中
3、在处理之前先获得全部所需要的互斥锁
4、任务间以同样的顺序顺序申请资源
5、当申请信号量或互斥锁时,允许设置期限,这样能防止死锁,但是同样的死锁可能稍后再次出现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值