SCAU操作系统知识点之(五)并发:互斥和同步

1、互斥的概念

互斥:当一个进程在临界区访问共享资源时,其他进程不能进入该临界区访问任何共享资源。

用硬件实现进程互斥时,中断禁用适于单 CPU 系统,多 CPU 系统可使用专用机器指令

2、临界资源与临界区

临界区:一段代码,在这段代码中进程将访问共享资源,当一个进程已经在这段代码中运行时,另外一个进程就不能在这段代码中执行。
临界资源:一次仅允许一个进程使用的共享资源。

3、信号量含义,semWait,semSignal含义(重点

信号量含义:
信号量s的值表示可用资源个数。
s=1时:有一个临界资源可用,一个进程可进入临界区。
s=0时:临界资源已分配,一个进程已进入临界区。
s<0时:临界区已被占用,|s|是该资源的等待队列长度(阻塞进程个数)
S.count >= 0:可以执行semWait(s)而不被阻塞的进程数。
S.count < 0: 阻塞在s.queue中的进程数。

semSignal(s)(P(s)):本进程释放一个资源。
semWait(s)(V(s)):本进程请求一个资源。

==多个semWait()的次序不能颠倒,否则可能导致死锁。==多个semSignal()操作的次序可任意。
semWait(s)、semSignal(s)操作必须成对出现。

4、信号量原语定义

在这里插入图片描述

5、用信号量实现互斥与同步

在这里插入图片描述
在这里插入图片描述

6、有限缓冲的生产者/消费者问题

缓冲池一次只能让一个进程访问。设一信号量s,初值为1.
生产者需要空缓冲来发送数据,设一信号量empty,初值为k。
消费者需要满缓冲来获取数据。设一信号量full,初值为0.

在这里插入图片描述

7、进程间通过“消息传递”交换信息:无阻塞send和阻塞receive。

无阻塞send和阻塞receive:接收者阻塞,直到请求的信息到达。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值