【操作系统】应该如何理解管程?

本文通过比喻阐述管程在操作系统中的作用,如ATM机管理计算机资源,实现进程互斥访问,避免死锁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【操作系统】应该如何理解管程?


打一个相对形象的比喻:人们到一家叫做计算机的银行取钱,这个银行里面就一个空窗口。最早之前,每个人需要从这个窗口爬进去取钱。这里,银行里面每一个需要取钱的人看作进程,而银行里面的钱可以看做计算机的共享资源,一般是硬件设备或一群共享变量。每个人都向窗口拥挤,场面混乱不堪。后面计算机银行不断改进,发明了一种叫ATM的机器(管程),ATM(管程)封装了钱和对外开放了一些存取钱的操作。这样一来,ATM(管程)在计算机银行的钱和客户之间担任了中介服务的角色。在一个相对封闭的屋子里面,一次只能服务一个人(让进程互斥使用)。ATM屋子里面有人的时候,其他需要依次排队使用。一个人(进程)在ATM使用的时间太长也不行,所以需要一个条件变量(condition)来约束他。条件变量可以让一个线程等待时让另一线程进入管程,这样可以有效防止死锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值