阅读下列说明,回答问题1至问题3,将解答填入对应栏内。 【说明】 飞机票售票系统,可以同时为多个顾客提供售票服务。一次售票交易主要由查询(R)和购买(W)两个操作组成,而这两个操作之间的间隔可能需要几分钟。 现有两位顾客同时到达一号和二号售票窗口购买机票,一号窗口的查询和购买操作用R1和W1表示,二号窗口的查询和购买操作用R2和W2表示。
问答题
根据问题描述,依照下面给出的处理序列,给出可能出现的所有序列。 (1)R1-----W1-----R2-----W2
【正确答案】正确答案:可能出现的所有处理序列: (1)R1-----R2-----Wl-----W2 (2)R1-----R2-----W2-----Wl (3)R2-----W2-----R1-----Wl (4)R2-----R1-----W2-----W1 (5)R2-----R1-----Wl-----W2
【答案解析】解析:由于购车票的前提是有车票才能买,因此必须先进行查询,然后才能购买。这样可能出现的所有序列为: (1) R1-----R2-----W1-----W2 (2) R1-----R2-----W2-----W1 (3) R2-----W2-----R1-----W1 (4) R2-----R1-----W2-----W1 (5) R2-----R1-----W1-----W2 但是,序列“R1-----W2-----W1-----W2”不对。因为二号售票窗口还没有进行查询R2操作,就进行购买W2操作。 序列“R2-----W1-----R1-----W2”不对。因为一号售票窗口还没有进行查询R1操作,就进行购买W1操作。 其余序列的分析略。
问答题
现假设航班MU2211只剩一张2007年2月25日的机票,并有两位顾客同时到达一号和二号售票窗口购买该票,请问在进行系统设计时,若不做必要的处理会产生什么问题?要避免该问题发生,应采用何种技术?
【正确答案】正确答案:会产生的问题:可能会将这一张同时卖给两个顾客。 应采用的技术;采用并发控制技术或采用事务。(写出二者之一即可)
【答案解析】解析:如果航班MU2211只剩一张2007年2月25日的机票,当一号售票窗口和二号售票窗口分别执行查询R1和R2操作时,导致两个窗口查询的结果都为1。此时若两个窗口分别执行W1和W2操作,导致一张票卖了两次。为了避免该问题发生,应采用并发控制技术或采用事务。
问答题
给出采取措施后可能出现的处理序列。
【正确答案】正确答案:采取措施后可能出现的处理序列: (1)R1-----W1-----R2 (写成R1-----W1-----R2------W2不扣分) (2)R2-----W2-----R1 (写成R2-----W2-----R1-----Wl不扣分)
【答案解析】解析:采取措施后可能出现的处理序列: (1)R1-----W1-----R2(或R1-----W1-----R2-----W2) (2)R2-----W2-----R1(或R2-----W2-----R1-----W1)