当前位置:首页 科普知识 管程机制

管程机制

发布时间:2023-09-08 04:44:39

管程机制是一个数据结构和能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。

管程机制详细介绍

管程机制是一个数据结构和能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。

管程机制

管程机制管程的引入

信号量机制的引入解决了进程同步的描述问题,但信号量的大量同步操作分散在各个进程中不便于管理,还有可能导致系统死锁。如:生产者消费者问题中将P、V颠倒可能死锁。

为此Dijkstra于1971年提出:把所有进程对某一种临界资源的同步操作都集中起来,构成一个所谓的秘书进程。凡要访问该临界资源的进程,都需先报告秘书,由秘书来实现诸进程对同一临界资源的互斥使用。

管程机制管程的构成

局部于管程的共享数据结构

对共享数据结构进行操作的一组函数

对局部于管程的数据设置初始值的语句

管程机制管程的语法

Monitor monitor _name;

variable declarations;

void Entry P1(...)

{ … }

管程机制

void Entry P2(...)

{ … }

void Entry Pn(...)

{ … }

{

initialization code;

}

管程机制管程的基本特性

局部于管程的数据只能被局部于管程内的函数所访问。

一个进程只有通过调用管程内的函数才能进入管程访问共享数据。

每次仅允许一个进程在管程内执行某个函数。

管程机制

由于管程是一个语言成分,所以管程的互斥访问完全由编译程序在编译时自动添加上,无需程序员关心,而且保证正确。

管程机制条件变量

利用管程实现同步时,还应设置条件变量和在条件变量上进行操作的两个同步原语。

条件变量用于区别各种不同的等待原因。其说明形式为: condition : x,y;

同步原语wait和signal。wait使调用进程等待,并将它排在相应的等待队列上;signal唤醒等待队列的队首进程。使用方式为:x.wait,x.signal。

温馨提示:
本文【管程机制】由作者 爱百科 转载提供。 该文观点仅代表作者本人, 自学教育网 信息发布平台,仅提供信息存储空间服务, 若存在侵权问题,请及时联系管理员或作者进行删除。
(c)2008-2025 自学教育网 All Rights Reserved 汕头市灵创科技有限公司
粤ICP备2024240640号-6