计算机操作系统——管程

本文介绍了管程的概念,由Hoare和Hanson在1973年提出,是集中管理共享变量和操作的模块。管程包含局部变量、相关操作过程及初始化语句。其特点是单一进程访问和同步控制,通过条件变量实现进程阻塞和唤醒。管程相比信号量更便于控制并发访问,提高了代码的可读性和模块独立性,但实际编程语言中支持较少。通过生产者-消费者问题的管程示例,进一步阐述了管程的应用。
摘要由CSDN通过智能技术生成

一.什么是管程

1.1973年,Hoare和Hanson提出管程思想:   

 将共享变量及对共享变量能够进行的所有操作集中在一个模块中。

(把信号量及其操作原语“封装”在一个对象内部)    

二.管程的组成

管程需要封装 (1)一组局部变量 (2)对局部变量操作的一组过程(2)对局部变量进行初始化的语句。

三.管程的特点

1.任何进程只能通过调用管程提供的过程入口才能进入管程访问共享数据;

  就如同使用临界资源,就要先通过其信号量的申请。

2.任何时刻,仅允许一个进程在管程中执行某个内部过程。

四.管程的同步控制(条件变量)

1.普通变量

2.条件变量(用于控制进程阻塞和唤醒)

  类似信号量变量,但不取具体值;相当于每个阻塞队列的队列指针。

  对条件变量的操作需结合对普通变量的条件判断,从而控制进程状态。

3.关于条件变量的操作

 x.wait将执行进程挂到x对应的等待队列上;

x.signal唤醒x相应的等待队列上的一个进程。

(signal操作,是重新启动一个被阻塞的进程,但如果没有进程被阻塞,则不产生任何效果 而信号量机制中的signal操作,若没有需要唤醒的进程,必须要做的还有修改信号量变量的值。)

五.管程的优缺点

优点:</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>