首页 > 试题广场 >

下列关于管程的叙述中,错误的是( )

[单选题]
下列关于管程的叙述中,错误的是( )
  • 管程有数据结构,但不包含对数据的操作
  • 管程内部定义函数的具体实现对于外部来说是不可见的
  • 管程是一个基本程序单位,可以单独编译
  • 管程中引入了面向对象的思想
推荐
选A
【分析】

从定义上来看:一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。【A❌】
管程主要有以下特性:
(1)模块化。管程是一个基本程序单位,可以单独编译; 【C✔】
(2)抽象数据类型。管程是中不仅有数据,而且有对数据的操作; 
(3)信息掩蔽。管程外可以调用管程内部定义的一些函数,但函数的具体实现外部不可见; 【B✔】(4)互斥。每次仅允许一个进程在管程内执行某个内部过程。

如果不看互斥性的话,可以看出管程非常类似于面向对象语言中的对象。【D✔】
编辑于 2019-05-23 14:21:57 回复(0)
&amp;<p>1⃣️管程包含面向对象的思想,将表征共享资源的数据结构及其对数据结构操作的一组过程,包括同步机制,都封装在一个对象内部,隐藏了实现细节。</p><p><br></p><p>2⃣️封装于管程内部的数据结构只能被封装于管程内部的过程所访问,管程内部的过程也只能访问管程内部的数据结构。</p><p><br></p><p>3⃣️所以进程访问临界资源时,都只能通过管程访问,而管程每次只允许一个进程进入管程,执行管程的过程,实现了进程互斥。</p>
发表于 2020-05-02 09:00:55 回复(0)
选A。
管程把信号量及其操作原语封装在一个对象内部,由关于共享资源的数据结构一组针对该资源的操作过程构成的软件模块。所以D正确。
管程主要有以下特性
  • 模块化:管程是一个基本程序单位,可以单独编译; 所以C正确。
  • 抽象数据类型:管程是中不仅有数据,而且有对数据的操作; 所以A错误。
  • 信息掩蔽:管程外可以调用管程内部定义的一些函数,但函数的具体实现外部不可见;所以B正确

编辑于 2019-05-22 22:34:40 回复(0)
管程是一种程序结构,结构内的多个子程序(​​对象​​​或​​模块​​​)形成的多个​​工作线程​​​互斥访问共享资源。这些共享资源一般是​​硬件设备​​​或一群​​变量​​​。管程实现了在一个时间点,最多只有一个​​线程​​​在执行管程的某个​​子程序​​。
发表于 2023-04-18 07:25:36 回复(0)