某航空售票系统负责所有本地起飞航班的机票销售,并设有多个机票销售网点。各售票网点使用相同的售票程序。假设售票程序中用到的伪指令如表5-1所示。 假设某售票网点一次售出a张航班A的机票,则售票程序的伪指令序列为:R(A,x);W(A,X-a)。根据上述业务

admin2011-01-29  30

问题 某航空售票系统负责所有本地起飞航班的机票销售,并设有多个机票销售网点。各售票网点使用相同的售票程序。假设售票程序中用到的伪指令如表5-1所示。

假设某售票网点一次售出a张航班A的机票,则售票程序的伪指令序列为:R(A,x);W(A,X-a)。根据上述业务及规则,完成下列问题:
若两个售票网点同时销售航班A的机票,在数据库服务器端可能出现如下的调度:
   A:R1(A,x),R2(A,X),W1(A,x-1),W2(A,x-2);
   B:R1(A,x),R2(A,x),W2(A,x-2),W1(A,x-1);
   C:R1(A,x),W1(A,x-1),R2(A,X),W2(A,x-2);
   其中Ri(A,x),Wi(A,x)分别表示第i个销售网点的读写操作,其余类同。
   假设当前航班A剩余10张机票,分析上述三个调度各自执行完后的剩余票数,并指出错误的调度及产生错误的原因。

选项

答案调度A结果:8 调度B结果:9 调度C结果:7 调度A、B结果错误,因为破坏了事务的隔离性。一个事务的执行结果被另一个所覆盖。

解析 本问题考查并发情况下不同的调度可能产生不同结果的情况。针对两个并发执行的售票程序,会相互影响从而得到错误的结果。
转载请注明原文地址:https://jikaoti.com/ti/iPN7FFFM
0

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