数据库系统概论高级篇45讲_第1页
数据库系统概论高级篇45讲_第2页
数据库系统概论高级篇45讲_第3页
数据库系统概论高级篇45讲_第4页
数据库系统概论高级篇45讲_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

11.4活锁和死锁

技术可以有效地解决并行操作的一致性问题,但也带来一些新的问题死锁活锁An

Introduction

toDatabaseAn

Introduction

toDatabase1.活锁2.死锁11.4活锁和死锁11.4.1

活锁T1T2T3T4Lock

R••••••••••Lock

R•等待Lock

R•等待等待Unlock

R等待•等待Lock

R•等待•Lock

R•等待•等待•等待Unlock

R•等待等待•Lock

R•An

Introduction

toDatabase11.4.1

活锁T1T2T3T4Lock

R••••••••••Lock

R•等待Lock

R•等待等待Unlock

R等待•等待Lock

R•等待•Lock

R•等待•等待•等待Unlock

R•等待等待•Lock

R•An

Introduction

toDatabase11.4.1

活锁T1T2T3

T4Lock

R••••

••

••

••Lock

R•等待Lock

R•等待等待Unlock

R等待•等待Lock

R•等待Lock

R•等待等待•等待Unlock

R

•等待等待Lock

R•活锁An

Introduction

toDatabase活锁(续)避免活锁:采用先来先服务的策略当多个事务请求

同一数据对象时按请求

的先后次序对这些事务排队该数据对象上的锁一旦 ,首先批准申请队列中第一个事务获得锁An

Introduction

toDatabaseAn

Introduction

toDatabase1.活锁2.死锁11.4活锁和死锁死锁(续)T1T2Lock

R1••••Lock

R2••••Lock

R2•等待等待等待Lock

R1等待等待等待等待••••••An

Introduction

toDatabase死锁(续)T1T2Lock

R1••••Lock

R2••••Lock

R2•等待等待等待Lock

R1等待等待等待等待••••••死锁An

Introduction

toDatabase解决死锁的方法两类方法死锁的预防死锁的

与解除An

Introduction

toDatabase1.死锁的预防产生死锁的原因是两个或多个事务都已了一些数据对象,然后又都请求对已为其他事务的数据对象加锁,从而出现死等待。预防死锁的发生就是要破坏产生死锁的条件An

Introduction

toDatabase死锁的预防(续)预防死锁的方法1一次法2顺序法An

Introduction

toDatabase(1)一次

法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行T1T2Lock

R1•••Lock

R2••••Lock

R2•等待等待Lock

R1等待等待••••T1T2Lock

R1Lock

R2•••Lock

R2••

等待等待ULockR1ULock

R2•Lock

R2Lock

R1••An

Introduction

toDatabase(1)一次

法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行T1T2Lock

R1•••Lock

R2••••Lock

R2•等待等待Lock

R1等待等待••••T1T2Lock

R1Lock

R2•••Lock

R2••等待等待ULockR1ULock

R2•Lock

R2Lock

R1••An

Introduction

toDatabase一次

法存在的问题过早加锁,降低系统并发度难于事先精确确定

对象数据库中数据是不断变化的,原来不要求的数据,在执行过程中可能会变成事先精确地确定每个

要对象,所以很难的数据对象。解决方法:将事务在执行过程中可能要

的数据对象全部加锁,这就进一步降低了并发度。An

Introduction

toDatabase(2)顺序

法顺序,所有事顺序

法是预先对数据对象规定一个务都按这个顺序实行

。顺序法存在的问题成本数据库系统中

的数据对象极多,并且随数据的删除等操作而不断地变化,要

这样的资源的、顺序非常,成本很高。难以实现事务的请求可以随着事务的执行而动态地决定,很难事先确定每一个事务要哪些对象,因此也就很难按规定的顺序去施加An

Introduction

toDatabase死锁的预防(续)结论在操作系统中广为采用的预防死锁的策略并不太适合数据库的特点数据库管理系统在解决死锁的问题上更普遍采用的是并解除死锁的方法An

Introduction

toDatabase2.

死锁的

与解除死锁的1超时法2等待图法An

Introduction

toDatabase(1)超时法如果一个事务的等待时间超过了规定的时限,就认为发生了死锁优点:实现简单缺点有可能误判死锁时限若设置得太长,死锁发生后不发现An

Introduction

toDatabase(2)等待图法用事务等待图动态反映所有事务的等待情况事务等待图是一个有向图G=(T,U)T为结点的集合,每个结点表示正运行的事务U为边的集合,每条边表示事务等待的情况若T1等待T2,则T1,T2之间划一条有向边,从T1指向T2An

Introduction

toDatabase等待图法(续)An

Introduction

toDatabase并发控制子系统周期性地(比如每隔数秒)生成事务等待图,检测事务。如果发现图中存在回路,则表示系统中出现了死锁。死锁的

与解除(续)解除死锁选择一个处理死锁代价最小的事务,将其撤消此事务持有的所有的锁,使其它事务能继续运行下去An

Introduction

toDatabase死锁的

与解除(续)解除死锁选择一个处理死锁代价最小的事务,将其撤消此事务持有的所有的锁,使其它事务能继续

温馨提示

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

评论

0/150

提交评论