【操作系统】2.3 进程同步

在这里插入图片描述

1 基本概念

在这里插入图片描述

1.1 进程同步

在这里插入图片描述

1.2 进程互斥

1.2.1 进程互斥的概念

在这里插入图片描述

1.2.2 临界资源互斥访问的4步骤

在这里插入图片描述

1.2.3 临界资源互斥访问的4原则

在这里插入图片描述

2 进程互斥的实现

2.1 软件实现

在这里插入图片描述

2.1.1 单标志法

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

2.1.2 双标志先检查法

在这里插入图片描述

2.1.3 双标志后检查法

在这里插入图片描述

2.1.4 Peterson法

在这里插入图片描述
在这里插入图片描述
· 不满足让权等待原则的原因:当无法进入临界区时,没有立即从处理机CPU上下来,而是一直在CPU上while循环,看似是没有进入临界区,但一直占用着CPU资源

2.2硬件实现

在这里插入图片描述

2.2.1 中断屏蔽方法

在这里插入图片描述

2.2.2 TestAndSet

在这里插入图片描述

2.2.3 Swap指令

在这里插入图片描述

3 信号量机制

在这里插入图片描述

3.1 原理

在这里插入图片描述

3.1.1 整型信号量

在这里插入图片描述

3.1.2 记录型信号量

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

3.2 应用理论

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

3.2.1 实现进程互斥

在这里插入图片描述

3.2.2 实现进程同步

在这里插入图片描述

多级前驱

在这里插入图片描述

4 信号量机制应用典型问题

在这里插入图片描述

4.1 同步

4.1.1 单类单产品生产者- - 单类单产品消费者

问题描述

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

问题分析

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

如何实现

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

拓展思考

在这里插入图片描述

问题总结

在这里插入图片描述

4.1.2 多类单产品生产者- - 多类单产品消费者

问题描述

在这里插入图片描述

问题分析

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

如何实现

在这里插入图片描述

拓展思考

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

问题总结

在这里插入图片描述

4.1.3 吸烟者(单类多产品生产者- - 多类消费者)

问题描述

在这里插入图片描述

问题分析

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

如何实现

在这里插入图片描述

问题总结

在这里插入图片描述

4.2 互斥

4.2.1 读写(单个临界资源)

问题描述

在这里插入图片描述

问题分析

在这里插入图片描述

如何实现

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

在这里插入图片描述

问题总结

在这里插入图片描述

4.2.2 哲学家进餐(多个临界资源)

问题描述

在这里插入图片描述

问题分析

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

如何实现

在这里插入图片描述

问题总结

在这里插入图片描述

5 管程

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

5.1 概念及组成

在这里插入图片描述

5.2 特征

在这里插入图片描述

5.3 实例拓展

5.3.1 进程同步互斥

在这里插入图片描述
· 当有2个生产者进程并发执行,第一个生产者进程进入管程调用insert过程,当第一个生产者还未执行完,第二个生产者进程也要进入,那么会由编译器将第二个生产者进程阻塞在过程入口,也就是把第二个生产者进程挂在阻塞队列上
在这里插入图片描述

5.3.2 Java类似机制

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值