假设同时有两个客户向同一账号发出存款请求,该程序会出现什么问题? (100字以内) 存款业务的伪代码程序为R(b),b=b+x,W(b)。现引入共享锁指令SLock(b)和独占锁指令XLock(b)对数据b进行加锁,解锁指令Unlock(b)对数据b进行

admin2009-05-15  51

问题 假设同时有两个客户向同一账号发出存款请求,该程序会出现什么问题? (100字以内)
存款业务的伪代码程序为R(b),b=b+x,W(b)。现引入共享锁指令SLock(b)和独占锁指令XLock(b)对数据b进行加锁,解锁指令Unlock(b)对数据b进行解锁。
   请补充上述存款业务的伪代码程序,使其满足2PL协议。

选项

答案伪代码程序:Xlock (b),R (b),b=b+x,W (b),Unlock(b)

解析 在做这道之前首先要明白2PL协议。
   两段封锁协议规定:A在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁,而且B在释放一个封锁之后,事务不再获得任何其他封锁。
   所谓“两段”锁的含义是,事务分为两个阶段,第一阶段是获得封锁,也称为扩展阶段,第二阶段是释放封锁,也称为收缩阶段。
   所以伪代码程序:Xlock(b),R(b),b=b+x,W(b),Unlock(b)。
转载请注明原文地址:https://kaotiyun.com/show/szTZ777K
0

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