【复习笔记】操作系统之进程的同步和互斥

网友投稿 244 2022-11-01


【复习笔记】操作系统之进程的同步和互斥

一、基本概念

进程同步: 同步亦称直接制约关系,是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上 协调 它们的 工作次序 而产生的制约关系。进程间的直接制约关系源于他们之间的合作。

进程互斥: 指当一个进程访问某临界资源时,另一个进程想要访问就必须等待,当前访问 临界资源 的进程访问结束,释放该资源后,另一个进程才能访问临界资源。

二、信号量机制

1. 整型信号量

2. 记录型信号量

三、信号量机制实现进程同步

信号量机制实现前驱关系

四、信号量机制的应用

1. ​​生产消费和读写者问题​​

多(类)生产者——多(类)消费者问题

代码实现:

思考:如果不要互斥信号量是否可以满足题目要求?

3. 哲学家进餐问题

解决办法:

五、管程

1. 管程的组成

2. 管程的基本特征

管程的定义:

管程的调用:

关于管程的总结:

六、死锁(Dead Lock)

1. 定义: 在并发环境下,各进程因竞争资源而造成一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进 的现象。

2. 死锁、饥饿、死循环的区别:

死锁和饥饿不占用处理机,而死循环一定占用处理机。

可以是一个或多个进程饥饿,而死锁只能是多个进程同时死锁。

3. 死锁产生的必要条件

产生死锁必须同时满足以下四个条件,只要有一个不成立,就不会发生死锁。

4. 死锁的处理策略

破坏不可剥夺条件

破坏请求和保持条件

破坏循环等待条件

按编号顺序申请,不可逆向或者随意申请

七、银行家算法(避免死锁)

代码实现的数据结构:

八、死锁的检测与解除

此时需要解除死锁


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【复习笔记】操作系统之进程调度
下一篇:C++设计模式总结
相关文章

 发表评论

暂时没有评论,来抢沙发吧~