视频资源可以参考王道考研
一、进程同步与互斥
1、什么是进程同步与互斥
(1)进程同步
- 看百度的:同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系就是源于它们之间的相互合作。
(2)进程互斥
- 同样的看百度的说法:互斥
互斥亦称间接制约关系。当一个进程进入临界区使用临界资源时,另一个进程必须等待, 当占用临界资源的进程退出临界区后,另一进程才允许去访问此临界资源
2、进程互斥的软件实现方法
(1)单标准法
(2)双标志法
(3)双标志后检查法
(4)Peterson算法
谁最后让,那就谁等待,让对方先使用。
(5)小结
3、进程实现的硬件实现方法
(1)中断屏蔽方法
(2)TestSet(TS)指令
(3)Swap指令
(4)小结
4、信号量机制实现线程同步和互斥
(1)相关概念
(2)信号量机制–整型信号量
(3)信号量机制-记录型信号量
(4)信号量机制-实现线程同步与互斥
- 实现互斥
- 实现同步
二、进程同步与互斥问题
1、生产者与消费者进程
(1)问题分析
(2)解决问题
2、多生成者和多消费者问题
(1)问题描述和分析问题
- 首先看问题描述(上一小结是生产的同一个产品)
- 分析问题
(2)解决问题
3、吸烟者问题
解决的是单生产者生产多个产品的问题
(1)问题描述和分析问题
- 问题描述
- 分析问题
(2)解决问题
4、读者和写者的问题
(1)问题描述和分析问题
- 问题分析
读进程和写进程都同时对共享文件进行操作的话,那可能造成错误问题
(2)解决问题
5、哲学家进餐问题
(1)问题描述与分析问题
- 问题描述
(2)解决问题
- 总结
三、管程(类似于类)
1、为什么要管程
2、定义和特征
3、管程解决生产者消费者问题
4、java中类似于管程的机制
四、死锁
1、死锁的概念
(1)什么是死锁
(2)死锁,饥饿,死循环的区别
(3)死锁产生的必要条件
(4)如何破坏死锁
2、破坏死锁----预防处理
(1)破坏互斥的条件
(2)破坏不剥夺条件
(3)破坏请求和保持条件
(4)破坏循环条件
(5)小结
3、破坏死锁----避免死锁
(1)安全序列
(2)安全序列,不安全状态,死锁的联系
(3)银行家算法
-
看无法分配的案例
-
总结
4、破坏死锁----检测和解除
(1)死锁的检测