单选题 若某航空公司的飞机订票系统有行个订票终端,系统为每个订票终端创建一个售票终端的进程。假设Pi(i=1,2,…,n)表示售票终端的进程,Hj(j=1,2,…,m)表示公共数据区,分别存放各个航班的现存票数,Temp为工作单元。系统初始化时将信号量S赋值为{{U}} {{U}} 66 {{/U}} {{/U}}。Pi进程的工作流程如图所示,a、b和c处将执行P操作和v操作,则图中a、b和c应填入{{U}} {{U}} 67 {{/U}} {{/U}}。
单选题
  • A.0
  • B.1
  • C.2
  • D.3
【正确答案】 B
【答案解析】
单选题
  • A.P(S)、V(S)和V(S)
  • B.P(S)、P(S)和V(S)
  • C.V(S)、P(S)和P(S)
  • D.V(S)、V(S)和P(S)
【正确答案】 A
【答案解析】因为该航空公司的飞机订票系统有n个订票终端,多个客户可能在不同的终端同时订购某一航班的票,导致售票出错。例如,当某航班只剩下一张票时,有3个客户在3个不同的终端订购,则3个终端可能同时售出这张票,而这是不允许的,因此,必须要设置一个信号量S,用来表示某航班当前是否有客户在订票或者待订票的人数。该信号量的初值为1,表示同时只能有一个客户订购某个航班的票。 当有客户在某个终端订购某航班的票时,首先要执行P(S)操作,使其他客户等待。当完成订票或者票已售完时,再执行V(S)操作。