操作系统02_3

进程同步、进程互斥

知识总览

image-20221120155520811.

什么是进程同步

image-20221120155838765.

image-20221120160017596.

什么是进程互斥

image-20221120160158227.

image-20221120160412657.

image-20221120160553403.

review

image-20221120160657614.

进程互斥的软件实现方法

知识总览

image-20221120161001481.

单标志法

image-20221120161431096image-20221120161602985.

双标志先检查法

image-20221120162042156.

双标志后检查法

image-20221120162337771.

Peterson 算法

image-20221120163021725image-20221120163218696image-20221120163327177.

review

image-20221120163431618.

进程互斥的硬件实现方法

知识总览

image-20221120163709417.

中断屏蔽方法

image-20221121183117297.

TS 指令

image-20221121183532184.

Swap 指令

image-20221121183748942.

review

image-20221121183838028.

信号量机制

知识总览

image-20221121184158479.

信号量机制

image-20221121184623162.

整型信号量

image-20221121185207390.

记录型信号量

image-20221121185507947.

image-20221121190140309image-20221121190253690.

image-20221121190544915.

review

image-20221121190748681.

用信号量机制实现进程互斥、同步、前驱关系

知识总览

image-20221121191430289.

信号量机制实现进程互斥

image-20221121191924896.

信号量机制实现进程同步

image-20221121192059875image-20221121192515865.

信号量机制实现前驱关系

image-20221121192942258

review

image-20221121193130799

生产者-消费者问题

问题描述

image-20221122085127798image-20221122085324117.

问题分析

image-20221122085902926image-20221122090008137image-20221122090144061

如何实现

image-20221122090419933.

思考:能否改变相邻 P、V 操作的顺序?

image-20221122090703435.

生产一个产品 和 使用产品 能否放到 PV 操作之间呢?

答:逻辑上看没有任何问题,但这会导致临界区的代码量变大,访问临界区就会耗费更长的时间,别的进程访问临界区就会被阻塞。因此非必要的代码不建议放在临界区中。(并发度降低)

review

image-20221122091222678.

多生产者-多消费者

问题描述

image-20221122091651914.

问题分析

image-20221122092142808.

如何实现

image-20221122092451815.

可不可以不同互斥信号量?

image-20221122092650490image-20221122092758254image-20221122092859575.

两个生产者进程同时访问缓冲区资源,有可能会导致数据覆盖的问题。

image-20221122093056703.

review

image-20221122093202423image-20221122093545806.

吸烟者问题

问题描述

image-20221122094128467.

问题分析

image-20221122094704371.

image-20221122094922752.

如何实现

image-20221122095315157.

review

image-20221122095528901.

读者-写者问题

问题描述

image-20221122100053650.

问题分析

image-20221122100322223.

如何实现

image-20221122100811203.

image-20221122101203314.

review

image-20221122101408551.

哲学家进餐问题

问题描述

image-20221122101748209.

问题分析

image-20221122101907431image-20221122102014323.

如何实现

image-20221122102304726.

提示

方案一:设置一个初始值为 4 的信号量。

方案二:哲学家拿筷子前先判断这个哲学家是奇数号还是偶数号。

image-20221122102856926image-20221122102956937image-20221122103111034image-20221122103230189.

review

image-20221122103331449.

管程

知识总览

image-20221122103510142.

为什么要引入管程

image-20221122103633682.

管程的定义和基本特征

image-20221122104019717.

管程:类似于面向对象中的 “”。

扩展 1:用管程解决生产者消费者问题

image-20221122105949881image-20221122110044048image-20221122110142033.

image-20221122110442301.

扩展 2:Java 中类似于管程的机制

image-20221122110604864.

review

image-20221122110731402.

posted @ 2022-11-22 20:23  软柠柠吖  阅读(41)  评论(0)    收藏  举报