Chap3﹒4管程2013.pptVIP

  • 3
  • 0
  • 约 30页
  • 2017-05-06 发布于四川
  • 举报
Chap3﹒4管程2013

* 条件型变量是一个指针,它可以指向空,或者指向由进程控制块构成的队列的头部,初始为空。 对于条件变量,可以执行wait和signal两个操作,含义: wait(c): 如果紧急等待队列非空,则唤醒第一个等待者,否则释放管程的互斥权。执行此操作进程的进程控制块进入c链的尾部。 Signal(c): 如果c链为空,则相当于空操作,执行次操作的进程继续;否则唤醒第一个等待者,执行此操作的进程控制块进入紧急等待队列的尾部。 在进程进入和离开管程时,应当分别执行如下操作: 进入管程:申请管程的互斥权。 离开管程:如果紧急等待队列非空,则唤醒第一个等待者,否则释放管程的互斥权,包含各种队列的管程如图4.13所示。 * 如果A进程的signal在 (1) 先A.signal(x) 后B.wait(x), 那么 A.signal(x) 时候 x_count0 不成立,什么也不做。 (2)先B.wait(x) 后A.signal(x), 那么在B.wait(x) 时,x_count++到1,且此时 条件型变量是一个指针,它可以指向空,或者指向由进程控制块构成的队列的头部,初始为空。 对于条件变量,可以执行wait和signal两个操作,含义: wait(c): 如果紧急等待队列非空,则V(IM.next)唤醒第一个等待者,否则释放管程的互斥权。执行此操作进程的进程控制块进入c链的尾部。//

文档评论(0)

1亿VIP精品文档

相关文档