问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

.简述两段锁协议的含义。

发布网友 发布时间:2022-04-27 12:26

我来回答

2个回答

懂视网 时间:2022-05-05 04:09

1.可串行性 并行操作对并行事务的操作的调度是随机的,不同的调度可能产生不同的结果。在这些不同的调度中,肯定有些调度的结果是正确的,究竟哪些调度是正确的呢? 若每个事务的基本操作都串连在一起,没有其它事务的操作与之交叉执行,这样的调度称为串行

1.可串行性
  并行操作对并行事务的操作的调度是随机的,不同的调度可能产生不同的结果。在这些不同的调度中,肯定有些调度的结果是正确的,究竟哪些调度是正确的呢?
  若每个事务的基本操作都串连在一起,没有其它事务的操作与之交叉执行,这样的调度称为串行调度,多个事务的的串行调度,其执行结果一定是正确的。但串行调度限制了系统并行性的发挥,而很多并行调度又不具有串行调度的结果,所以我们必须研究具有串行调度效果的并行调度方法。
  定义:当且仅当某组并发事务的交叉调度产生的结果和这些事务的某一串行调度的结果相同,则称这个交叉调度是可串行化。
可串行化是并行事务正确性的准则,一个交叉调度,当且仅当它是可串行化的,它才是正确的。两段锁协议是保证并行事务可串行化的方法。
  2.两段锁协议(Two-Phase Locking――2PL)
  两段锁协议规定所有的事务应遵守的规则:
  ① 在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。
  ② 在释放一个封锁之后,事务不再申请和获得其它任何封锁。
  即事务的执行分为两个阶段:
  第一阶段是获得封锁的阶段,称为扩展阶段。
  第二阶段是释放封锁的阶段,称为收缩阶段。
  例如

            

  在这两个例子中T1遵守两段锁协议,T2释放锁后又获取锁,没有遵守两段锁协议。
  定理:若所有事务均遵守两段锁协议,则这些事务的所有交叉调度都是可串行化的。
  对于遵守两段协议的事务,其交叉并发操作的执行结果一定是正确的。值得注意的是,上述定理是充分条件,不是必要条件。一个可串行化的并发调度的所有事务并不一定都符合两段锁协议,存在不全是2PL的事务的可串行化的并发调度。
  同时我们必须指出,遵循两段锁协议的事务有可能发生死锁。
 

  此时事务T1 、T2同时处于扩展阶段,两个事务都坚持请求加锁对方已经占有的数据,导致死锁。
  为此,又有了一次封锁法。一次封锁法要求事务必须一次性将所有要使用的数据全部加锁,否则就不能继续执行。因此,一次封锁法遵守两段锁协议,但两段锁并不要求事务必须一次性将所有要使用的数据全部加锁,这一点与一次性封锁不同,这就是遵守两段锁协议仍可能发生死锁的原因所在。

热心网友 时间:2022-05-05 01:17

概念
两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁: 

1. 在对任何数据进行读、写操作之前,要申请并获得对该数据的封锁。

2. 每个事务中,所有的封锁请求先于所有的解锁请求。 

例如事务T1遵守两段锁协议,其封锁序列是:

Lock A, Read A, A:=A+100, Write A, Lock B, Unlock A, Read B,
Unlock B, Commit;[1]

可以证明,若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。
另外要注意两段锁协议和防止死锁的一次封锁法的异同之处。一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议;但是两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁。来自:求助得到的回答
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
篮球里假摔算不算犯规 月球和地球上的时间一样吗 网线插入路由器亮绿灯,马上又亮红灯 为什么华为路由器有时绿灯一直闪? 急求助 孩子在读高二 每晚失眠 有什么好办法快解决吗 急急急!!!_百度... 从高二开始失眠,已经9年了。那一晚没睡着,以后一直是浅度睡眠,白天精神... 睡眠太浅要怎么办啊? 我高二,每天睡眠时间很少,上课老想睡觉,如果上课中想睡觉可以吃点什么不... 儿子高三了晚上睡眠不深 怎么办啊 很担心因为睡眠不好影响学习_百度知 ... 房产纠纷确权借名买房 为什么在酒泉红蜘蛛白粉虱等微小刺吸式口器害虫严重? 在郑州,有好吃的地方在哪里? 两阶段封锁的两段锁协议与三级封锁协议 红蜘蛛的防治方法 郑州什么东西最好吃? 两段锁协议的介绍 两阶段封锁的两段锁协议与防止死锁的一次封锁法 杀灭花盆白粉虱的有效方法? 什么是两阶段锁机制 薄荷招白色虫怎么办薄荷长满盆后招白虫子怎么办 那些种植高手,都是用什么方法防治白粉虱的? 盆栽薄荷长虫子怎么办啊? 红蜘蛛、白粉虱用什么成分的药打比较好 各位国内考研容易还是国外读研容易 ps 我说的都不是名校级别 还有自己成绩一般吧 考研网上确认照片,2020考研网上确认证件照可以稍微PS吗? 考研网上确认照片求问2020考研网上确认证件照可以稍微PS? 考研报名照片能不能ps啊? 我ps了研究生的成绩单怎么办 可以做一张假的考研成绩电子版么 你好 还可以做考研成绩单吗? 郑州有什么好吃好玩的地方 植物长红蜘蛛怎么办? 郑州有什么好玩好吃的地方? 怎样治红蜘蛛 三级封锁协议与两段锁协议互相遵循么? 郑州有什么好玩好吃的地方 为什么蚜虫红蜘蛛白粉虱等害虫在夏季和初秋时容易暴发成灾? 数据库中,锁有哪几种类型,分别表示什么涵义?什么是两段领协议? 我的花上面长了好多白色的虫,应该用什么药水喷 遵循两段锁协议的进程一定是可串行的,是正确的 又说 遵循两段锁协议的... 一品红花上生白粉虱和红蜘蛛怎么治? 数据库事务里的原子性和一致性的区别 养的滴水观音叶子上好像生了白蜘蛛和红蜘蛛,求治愈方法 郑州西郊哪有特色好吃的店? 下图的调度是否遵守两段锁协议的,我认为不遵守两段锁协议,因为在收缩阶 ... mysql 可重复读如何实 mysql的学习之序列化和可重复读的区别 怎么转到事务SM12删除锁定的查询 求教,怎么网上购物的详细的步骤!详细点的 网购的步骤是什么?