若某航空公司的飞机订票系统有n个订票终端,系统为每个订票终端创建一个售票终端的进程。假设Pi(i=1,2,…,n)表示售票终端的进程,Hj(j=1,2,…,m)表示公共数据区,分别存放各个航班的现存票数,Temp为工作单元。系统初始化时将信号量3赋值为(7

admin2019-05-04  40

问题 若某航空公司的飞机订票系统有n个订票终端,系统为每个订票终端创建一个售票终端的进程。假设Pi(i=1,2,…,n)表示售票终端的进程,Hj(j=1,2,…,m)表示公共数据区,分别存放各个航班的现存票数,Temp为工作单元。系统初始化时将信号量3赋值为(75)。Pi进程的工作流程如图 7-10所示,a、b和c处将执行P操作和V操作,则图7-10中a、b和c应填入(76)。


选项 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)操作。
转载请注明原文地址:https://kaotiyun.com/show/AuLZ777K
0

最新回复(0)