第11章并发控制.ppt_第1页
第11章并发控制.ppt_第2页
第11章并发控制.ppt_第3页
第11章并发控制.ppt_第4页
第11章并发控制.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、并发控制、张吉赞、主要内容、问题块活动块和死锁协议块的粒度、问题、事务特性是什么? 什么是事务的调度,为什么同时调度事务,n个事务的多个并发调度,哪个是正确的,如何损害事务的特性,等同时执行,以及如果发生可能损害事务特性的调度,应该如何进行控制?本章的主要内容。 例1 :在飞机预定系统中,售票处甲(事务T1)读出某个航班的机票佟额a,A=16的售票处乙(事务T2)读出该航班的机票佟额a也应该是16,现在售票处甲(事务T1)应该有1张机票T1和T2的日程如下。 发生了什么现象? 中的组合图层性质变更选项。 例2 :现有两个事务的调度如下:结论:一个事务不能重复读取相同的数据。 不能重复阅读。 例

2、3 :发生的现象是什么? T2读取错误数据的“脏”数据,读取11.2个数据块,事务同时执行中,修改、不可重复的读取以及“脏”数据的最基本的原因是什么? 中的组合图层性质变更选项。 一个事务使用一个数据,同时另一个事务也使用该数据。 如果每个数据始终可用于一个事务,是否可以避免这些现象? 在处理具有事务的数据对象(表、记录等)之前,请求并锁定系统,以限制其他事务使用该数据。 在该事务完成执行之后,直到打开对数数据的封锁,其他事务才能处理该数据。 封锁。 在前面的三个示例中,事务T1应限制T2对数据的哪些操作,示例1 :限制T2对a的读取和写入。 因为T1需要修改对数数据,在此期间其他事务读取/写

3、入对数数据可能会发生错误。 例2 :限制T2对数据的写入,但T2可以读取数据。 why? 因为T1也只是读数据。 例3 :限制T2对数据的读取/写入。 因为T1需要修改对数数据,在此期间其他事务读取/写入对数数据可能会发生错误。 因此,假定存在两个事务T1、T2和数据a。 当事务T1需要修改对数据a时,T1需要限制T2对数据的所有操作来解除锁定(写锁定或x锁定)。 当事务T1只读取数据a时,T1限制T2对数据的写入,其中T2能够读取数据a共享锁(读取锁或s锁)。 中的组合图层性质变更选项。 如果事务T1中的对数数据被x锁定,则事务T1可以读取/写入该数据,而其他事务不能读取/写入该数据。 当s

4、锁定到事务T1中的对数数据时,事务T1可以读取数据,其他事务可以读取数据,所有事务(包括T1)将数据保存,以及前面三个示例T1将数据保存对例1 :T1数据施加x锁定。 此时,T2是否可以与T1同时执行? 不行。 因为在T1操作数据a的同时,事务T2的执行受到限制。 对例2 :T1数据施加s锁定。 此时,T2是否可以与T1同时执行? 不行。 因为在T1读取数据a和b的同时,事务T2的对数数据b的写入受到限制。 例3 :对T1数据施加x锁定。 此时,T2是否可以与T1同时执行? 不行。 因为在T1操作数据a的同时,事务T2的执行受到限制。 时,事务的调度会得出以下结论:如果两个事务都需要处理一个数

5、据,在什么情况下可以同时执行,在什么情况下不能同时执行。 中的组合图层性质变更选项。 如果两个事务读取相同的数据,则可以同时执行。 否则,不能同时执行。 因而,如下表所示,如果存在两个事务T1和T2并且一个事务已经被锁定为某个数据,则另一个事务是否能够请求对该数据的锁定(兼容矩阵)。 想一想:如果有一个数据a,系统连续发生操作数据a的事务,会怎么样呢?1,事务T1目的地操作数据a,T2,T3,等待Ti。 2、T1完成后,T3操作数据a、T2、T4、Ti等待。 完成3、T3后,T4操作数据a、T2、T5、Ti等待。 其结果,T2一直在等待,没有执行的机会。 这种现象称为活动块。解决方法:将要求操

6、作的事务处理排队(排队结构),根据队列的先进先出原则执行先进先出服务原则。 问题:假设有两个事务T1和T2,两个数据a和b,两个事务都需要处理两个数据。 调度结果是,T1区块a,T2区块b。 T1封锁b,T2封锁b,所以T1等待。 T2封锁a,T1封锁a,所以T2等待。 出现T1、T2相互等待的局面,谁也不能继续。 死锁,如下面的示例所示。 解决方法:从2个角度,预防1死锁的发生2死锁发生后的解除。 死锁的预防使用各种各样的技术避免死锁的发生。 一次封锁法:必须一次锁定每个事务使用的所有数据。 如果不锁定,则无法继续,封锁的范围会扩大。 顺序块法:对所有数据进行排序。 当任何事务阻塞数据时,必

7、须按顺序阻塞数据。 随着数据的追加/删除,维护成本变高。 死锁的解除,系统根据一定的政策,一旦发生规定的现象,就视为发生了死锁,进行解除。 超时法:一个事务的等待时间超过规定的时间,就会发生死锁。 等待图:在许多事务中,为了操作数据,一个事务锁定数据后,其他事务必须等待操作数据。 假定事务T1锁定了数据,T2被死锁,Why,如果在图中存在电路,其中,该电路需要等待T1对数据的锁定解除? 死锁发生后的解决方法:处理死锁成本最低的事务,取消其,释放该事务阻塞的资源(数据等),解除电路。11.3二级锁协议、问题: 1、事务的串行调度能保证事务的完整性和隔离性吗? 2 .如果一个并发调度是可冲突序列化

8、的调度,该调度是否可以保证事务的完整性和隔离性? 3 .如何控制并发计划是一种始终可以冲突序列化的计划,实际上如何利用信号中断来实现,什么是协议? 为达到一定目的而制定的规则、限制等。两级锁定协议规定事务应该如何锁定和解锁以实现并发调度的序列化,这个过程可以阻止多个数据。 事务解除封锁后,将无法申请事务,也无法获取数据的封锁。 t1:锁定- x (b ); 读(b ); B:=B-50; 写入(b ); 解锁(b ); 锁定- x (a ); 读(a ); A:=A 50; 写入(a ); 解锁(a ).t2:锁定- s (a ); 读(a ); 解锁(a ); 锁定- s (b ); 读(b

9、 ); 解锁(b ); 显示(a b ),t3:锁定- x (b ); 读(b ); B:=B-50; 写入(b ); 锁定- x (a ); 读(a ); A:=A 50; 写入(a ); 解锁(b ); 解锁(a ),t4:锁定- s (a ); 读(a ); 锁定- s (b ); 读(b ); 显示(a b ); 解锁(a ); Unlock(B ) .注意:两个锁定协议可以确保并发串行化,但不能确保不会发生死锁,如下面的计划所示。 11.4区块的粒度。 如果在student数据库中存在student、course、s_c表,并且一个事务将记录添加到s_c表中(s100021,c 34

10、03,89 ),则事务或事务锁定必须包含student数据2如果事务是s100023,则必须阻止student数据库,还是必须阻止student表中的数据项才能更改为s100034事务? 中的组合图层性质变更选项。 因为上述问题,如果事务阻塞了student数据库,会产生什么样的结果,而封锁的范围较大,而其他事务则无法阻塞数据库,同时性较小,开销较大。 封锁的粒度大。中的组合图层性质变更选项。 因为上述问题,如果事务阻塞了表或元组,会产生什么样的结果,而封锁范围较窄,而其他事务可以阻塞数据库中的其他数据,因此同时性大,开销小。 封锁的粒度很小。 中的组合图层性质变更选项。 需要处理一个关系中的

11、多个元组的事务可以是关系中的块粒度;需要处理多个关系的多个元组的事务可以是数据库中的少数元组的事务因此,事务以不同层级的数据对象的多粒度块、数据库、数据分区1、数据分区n、关系1、关系n、元组1、元组1-n、数据分区(数据如果需要更改数据,操作系统会在该页面上添加相应的标记(封锁)。 数据库文件的存储与其他文件类似,因此可以在数据分区上阻止。 因此,在对数数据分区的信号中断时(信号中断的粒度大时),存在显式的信号中断和隐式的信号中断,具有与设定包含文件和文件夹的文件夹的属性类似的继承性。 中的组合图层性质变更选项。 假设事务T1的对数资料档案库中的一个关系r1被阻止,事务T2在申请封锁时,确定该数据分区中的所有关系,即数据项是否被不兼容的锁定为了避免这个处理,导入了意向锁定。 意向锁的意思是,如果对一个节点施加意向锁,则表示该节点的下级节点处于锁定状态。 对任意节点施加锁定时,首先必须对其上位节点施加意义锁定。 1、IS锁,如果对一个数据对象施加IS锁,则该数据对象的下级节点施加s锁。 也就是说,如果需要对某个数据对象施加s锁定,则必须对其上级节点施加IS锁定。2、IX锁,如果对一个数据对象施加IX锁,则该数据对象的下级节点施加x锁。 也就是说,如果需要对某个数据对象施加x锁定,则需要对其上级节点施加IX锁定。 3、SIX锁表示在一个数据对象上加上SIX锁,再加上s锁,再加

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论