互斥锁与信号量机制

一、互斥锁

1.锁:是用于实现互斥的一种方法,本质是一个布尔型的变量,只有true+false两种是否上锁状态。

2.操作:通过acquire(获得锁)与release(释放锁)方法对锁进行操作,方法的执行必须是原子操作

3.缺点:当进程无法进入临界时,会一直执行acquire方法中的循环(也称自旋锁),造成忙等待;适用于多处理器系统。

二、信号量机制-解决进程互斥与同步问题

1.相关概念:

信号量-即变量,表示系统中某种资源的数量,用户进程通过原语对信号量进行操作.

原语-执行过程中不能被中断的特殊程序段,由关/开中断指令实现。

一对原语-wait(信号量)+signal(信号量),简写为P(S)、V(S)

操作=初始化+P操作+V操作

2.整型信号量-用整数型的变量作为信号量,表示资源数量

具体进程操作-wait进入区,申请资源,数量减1——>使用,临界区,访问资源——>signal退出区,释放资源,数量加1

缺点-可能会一直在wait方法中循环,发生忙等的现象,不满足让权等待。

3.记录型信号量-用记录型数据结构表示作为信号量,默认为信号量

包括剩余资源数+等待队列

具体进程操作:资源分配完毕,其它进程申请时会被加入等待队列中,当其它进程使用完该资源执行signal指令后,等待队列中的进程会通过wake up唤醒原语使其退出等待队列进入就绪状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值