您的位置首页百科问答

.在飞机订票系统中,假定公共数据区的单元 Ai (i=1 , 2 , 3…)里存放着某月某日

.在飞机订票系统中,假定公共数据区的单元    Ai (i=1 , 2 , 3…)里存放着某月某日

解:从图中可以知道,公共数据区的单元 Ai (i=1 , 2 , 3…)里存放的某月某日第i次

航班的现有票数,是 j (j=1 , 2 , 3…)个售票处共享的数据。因此,这些售票处对公共数

据区的单元 Ai (i=1 , 2, 3…)的操作不能同时进行。正因为如此,图中把对 Ai的这些操

作,用名为S的信号量上的P、V操作,保证它们互斥进行。这样处理都是正确的。

关键是当判定没有第i次航班的机票时,图里仅安排了打印“票已售完! ”的动作。这

样,第j售票处只有进入临界区的 P(S),而没有执行退出临界区的 V(S)。它没有退出临界区,

别的售票窗口也就无法再进入这个临界区。 所以,这种安排是不对的。 应该把所给图改成为

F图,这样就正确了。

第j售票处要订 第i航班的飞机票

按旅客要求找到Ai

i

I P(S)]

(进入公共数据监界区)

Rj=Ai;

(取出该航班现有票数)

Rj> 1?

(还有这个班次的飞机票?)

Y i

Rj=Rj -; Ai = Rj;

(进行数据修改)

I

丨V(S门

(退出公共数据监界区)

I

售出一张飞机票

正确的第j售票处的售票程序