若x是管程内的条件变量,则当进程执行x.wait( )时所做的工作是( )。

admin2019-08-17  35

问题 若x是管程内的条件变量,则当进程执行x.wait(          )时所做的工作是(          )。

选项 A、实现对变量x的互斥访问
B、唤醒一个在x上阻塞的进程
C、根据x的值判断该进程是否进入阻塞状态
D、阻塞该进程,并将之插入x的阻塞队列中

答案D

解析 “条件变量”是管程内部说明和使用的一种特殊变量,其作用类似于信号量机制中的“信号量”,都是用于实现进程同步的。需要注意的是,在同一时刻,管程中只能有一个进程在执行。如果进程A执行了x.wait(          )操作,那么该进程会阻塞,并挂到条件变量x对应的阻塞队列上。这样,管程的使用权被释放,就可以有另一个进程进入管程。如果进程B执行x.signal(          )操作,那么会唤醒对应的阻塞队列队头进程。在Pascal语言的管程中,规定只有一个进程要离开管程时才能调用signal(          )操作。
转载请注明原文地址:https://kaotiyun.com/show/n7Ci777K
0

相关试题推荐
最新回复(0)