信號量 和 互斥量

资源保护,简单的方法就是资源持有期间关闭中断。

长时间关闭终端会影响系统对中断事件的响应,解决的办法就是引入信号量、互斥量等资源保护机制。

仅将信号量、互斥量的获取和释放操作放在关中断状态下执行。

使用以上机制会有优先级反转现象发生。abc三个线程,优先级由高到低,如果a等待c占用的资源而挂起的过程中,b抢占了c获得执行,这就是优先级反转。

为了解决这种现象,内核增加了优先级继承的机制了预防:

a等待c挂起过程中,c的优先级临时提高和a相同。

使用关中断还是信号量、互斥量可以根据实际情况判断,如果仅仅修改一个值,关中断效率最高,如果长时间使用临界区资源,则使用信号量或者互斥量保护。

信號量量 對動態資源管理,生產者和消費者,釋放信號,資源增加,獲取 信號,資源減少。

資源獲取 不到,則挂起等待。释放资源,如果有 等待者,则唤醒一个,否则信号计数加一。

互斥量 管理唯一资源  资源获取先判断释放已经用于资源,有则计数加一,返回,否则,尝试占用资源,成功,则返回,否则,挂起。释放资源:计数减一,计数非0,返回;否则,清除占用标记,如果有等待线程,则唤起一个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值