首页 > 试题广场 >

以下关于管程的说法中不正确的是()。

[单选题]
以下关于管程的说法中不正确的是()。
  • 管程是一种进程间同步机制
  • 管程比信号量更容易保证并行编程的正确性
  • 共享变量的初始化语句是管程的组成部分
  • 进程必须调用访管指令才能互斥地进入管程
访管指令用于触发访管中断,向操作系统请求服务,故D说法不正确,选D。
编辑于 2019-01-02 22:18:32 回复(0)

1.     管程可以看做一个软件模块,它是将共享的变量和对于这些共享变量的操作封装起来,形成一个具有一定接口的功能模块,进程可以调用管程来实现进程级别的并发控制。

2.     进程只能互斥得使用管程,即当一个进程使用管程时,另一个进程必须等待。当一个进程使用完管程后,它必须释放管程并唤醒等待管程的某一个进程。

3.     在管程入口处的等待队列称为入口等待队列,由于进程会执行唤醒操作,因此可能有多个等待使用管程的队列,这样的队列称为紧急队列,它的优先级高于等待队列。
管程外的进程或其他软件模块只能通过管程对外的接口来访问管程提供的操作,管程内部的实现细节对外界是透明的。
发表于 2017-05-18 12:48:55 回复(2)
https://en.wikipedia.org/wiki/Monitor_(synchronization) 管程,这个中文名字好尴尬,半天不知道是啥。
发表于 2017-08-18 14:07:10 回复(0)
管程(Monitor)是一种高级的同步机制,它封装了共享资源和对这些资源的操作,确保了对共享资源的互斥访问。管程通常包含以下几个方面:

条件变量:用于进程间的同步。
互斥锁:确保一次只有一个进程可以进入管程中的临界区。
操作:定义在管程中的操作,用于对共享资源进行操作。
A. 管程确实是一种进程间同步机制,因此这个选项是正确的。
B. 管程设计时考虑了同步和互斥,因此它确实比信号量更容易保证并行编程的正确性,这个选项也是正确的。
C. 共享变量的初始化语句是管程的组成部分,这是正确的,因为管程通常包含对共享资源的初始化和操作。
D. 进程不需要调用特定的访管指令来互斥地进入管程。管程的设计确保了一旦进程进入管程,其他进程将被阻塞直到管程被释放。因此,D选项是不正确的。

发表于 2024-05-29 15:11:05 回复(0)
访管指令是中断陷入指令而管程是共享数据结构和共享的方法实现
发表于 2022-05-20 19:06:26 回复(0)
管程是进程同步的工具,解决信号量机制之中大量同步操作分散的问题。
管城每次只允许一个进程进入管城。
管城是被进程调用的,管城是语法范围,无法创建和销毁、
管城是编程语言支持的进程同步机制
管城中定义的变量只能被管城中的过程访问
发表于 2021-08-15 20:22:28 回复(0)
管程的互斥访问完全由编译程序在编译时自动添加,无需程序员关注,而且保证正确。
发表于 2020-07-27 15:10:45 回复(0)