第二章 进程管理(part6).pptVIP

  • 20
  • 0
  • 约1.01万字
  • 约 42页
  • 2017-10-05 发布于上海
  • 举报
*   说明: 局部于管程内部的数据结构,仅能被局部于管程内部的过程所访问,任何管程外的过程都不能访问它; 反之,局部于管程内部的过程也仅能访问管程内的数据结构。 由此可见,管程相当于围墙,它把共享变量和对它进行操作的若干过程围了起来,所有进程要访问临界资源时,都必须经过管程(相当于通过围墙的门)才能进入,而管程每次只准许一个进程进入管程,从而实现了进程互斥。 *   管程是一种程序设计语言结构成分,它和信号量有同等的表达能力,从语言的角度看,管程主要有以下特性:   (1) 模块化。管程是一个基本程序单位,可以单独编译。   (2) 抽象数据类型。管程中不仅有数据,而且有对数据的操作。   (3) 信息掩蔽。管程中的数据结构只能被管程中的过程访问,这些过程也是在管程内部定义的,供管程外的进程调用,而管程中的数据结构以及过程(函数)的具体实现外部不可见。 * 管程的要素: ⑴管程中的共享变量在管程外部是不可见的,外部只能通过调用管程中所说明的外部过程(函数)来间接地访问管程中的共享变量。 ⑵为了保证管程共享变量的数据完整性,规定管程互斥进入。 ⑶管程通常是用来管理资源的,因而在管程中应当设有进程等待队以及相应的等待及唤醒操作 * 问题:多个进程出现在管程中 当一个进入管程的进程执行等待操作时,它应当释放管程的互斥权;当一个进入管程的进程执

文档评论(0)

1亿VIP精品文档

相关文档