文章目录

一、管程

1、管程的概念
用信号量可以实现进程之间的同步与互斥,但要设置很多信号量,使用大量的P、V操作,还要仔细安排多个P操作的排列次序,否则将出现错误的结果或死锁现象。为了解决这个问题,便引入的管程,另一种高级同步工具。

管程是一个共享资源的数据结构以及一组能为并发进程在其上执行的针对该资源的一组操作,这组操作能同步进程和改变管程中的数据。

2、管程的基本思想
即把信号量及其操作封装在一个对象内部,将共享资源以及针对共享资源的所有操作都集中在一个模块中。管程可以用函数库的形式实现,一个管程就是一个基本程序单位,可以单独编译。

3、管程的组成

操作系统知识点大总结【管程与死锁】_程序人生

4、管程的特征

  • 管程有一个名字
  • 管程可以用于对共享数据的初始化
  • 局限于管程的共享变量(数据结构)只能被管程的过程的过程访问,任何外部过程都不访问。
  • 一个进程通过调用管程的一个进程进入管程,一次只允许一个进程进入。

5、管程的条件变量(进程阻塞的原因)

操作系统知识点大总结【管程与死锁】_死锁_02

二、死锁

1、死锁的定义
多个进程因竞争资源而造成的一种僵局。

2、死锁的产生条件

操作系统知识点大总结【管程与死锁】_经验分享_03

3、死锁的处理策略

操作系统知识点大总结【管程与死锁】_死锁_04