- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
死锁的检测/诊断与恢复 等待图法: 是一有向图G=(T, U). 节点表示正在执行的事务, 边表示等待情况。T1?T2: T1等待T2 死锁诊断: 如果图中存在回路, 系统中发生死锁 T2等待T3 T2→T3 T3等待T1 T3→T1 T1 T2 T3 若 T1等待T2 T1→T2 死锁的检测/诊断与恢复 死锁恢复 选择一个处理死锁代价最小的事务, 将其撤销, 释放锁 该事务计算的时间、使用多少数据项、完成事务还需多少数据项、撤销该事务需要牵涉多少其他事务 决定rollback多远 彻底撤销,或 rollback到可以解决死锁为止 避免饥饿 避免由于某个事务rollback的代价最小,而总是rollback该事务。 常用的方法:在代价因素中包括rollback的次数 并发调度的可串行性 对并发事务的调度是随机的 ?结果可能不同 ?哪个结果是正确的 合法的数据库状态?正确的结果 串行的事务?合法的数据库状态 事务的串行执行: 串行执行一定是正确的 并发事务的不同调度 T1 T2 T1 T2 T1 T2 Slock B Y=B=2 Unlock B Xlock A A=Y+1 写回A=3 Unlock A Slock A X=A=3 Unlock A Xlock B B =X+1 写回B=4 Unlock B Slock B Y=B=2 Unlock B Xlock A A=Y+1 写回A=3 Unlock A Slock A X=A=2 Unlock A Xlock B B =X+1 写回B=3 Unlock B 不可串行化调度 可串行化调度 Slock B Y=B=2 Unlock B Xlock A A=Y+1 写回A=3 Unlock A Slock A 等待 等待 等待 X=A=3 Unlock A Xlock B B =X+1 写回B=4 Unlock B 串行化调度 设初始值A=2, B=2 并发调度的可串行性 可串行化: 多个事务的并发执行是串行的, 当且仅当其结果和这些事务的某一次串行执行的结果相同的 可串行性: 是并发事务正确性准则 正确调度: 给定的一个并发调度, 当且仅当它是可串行化的, 才认为是正确的 确保并发事务执行可串行化的方法: 2PL, 时间戳等 2 Phase Lock 两阶段封锁协议 两阶段封锁协议: 所有事务必须分两个阶段对所要存取的数据项加锁和解锁 (Eswaran等人1976年提出的) 在对任何数据进行读写操作之前, 首先申请并获得对该数据项的封锁 在释放一个封锁之后, 事务不再申请和获得任何其他的封锁 可以证明, 若并发执行的所有事务都遵循两段封锁协议, 则对这些事务的任何并发调度策略都是正确的 事务遵守两段封锁协议是可串行化调度的充分条件 遵守两段封锁协议的事务可能发生死锁, 与防止死锁的一次封锁法不同 两阶段封锁协议 阶段1:加锁阶段 ?事务在读写一个数据项之前,必须对其加锁; ?如果该数据项被其它使用者已加上不相容的锁,则必须等待。 阶段2:解锁阶段 ?事务在释放锁之后,不允许再申请其它锁; 锁 的 个 数 时间 事务开始执行 事务结束执行 操作 表示解锁 表示加锁 阶段1 阶段2 两段封锁协议(2PL)的加锁、解锁示意图 避免丢失修改错误 当事务T1、T2申请写锁时,均申请不到,必等待,直到另一事务释放对数据项x的锁为止。如:T2废弃,释放读锁;则T1得到写锁,完成写操作。事务T2重启动后,读取x(事务T1执行的结果),直至完成操作。因此,不会出现丢失修改错误。 T1 T2 读锁 Slock(x) 读锁 Slock(x) 写锁 Xlock(x) 写锁 Xlock(x) 等待 abort (释放锁) T2重启 读锁Slock(x) 死锁 两阶段封锁协议 时间 获得写锁 (x=90) 提交 T1: x = x-10; T2: x = x-20; x 100 90 避免不可重复读错误 当事务T2申请写锁时,不能申请成功,必等待,当事务T1再次读数据项x时,读取的x值与第一次读到的值相同,不会出现重复读错误。 T1 T2 读锁 Slock(x) 写锁 Xlock(x) 读锁 Slock(x) 等待 冲突 时间 两阶段封锁协议 100 x T1: r(x) r(x) T2: x = x-20; 100 避免读脏数据错误 事务T1申请写锁后,写x=80。此时,事务T2申请读锁失败,必须等待。当事务T1产生故障中断时,废弃事务T1的执行,即执行反做,使x恢复为原值100,并释放对x的写锁。此时事务T2等待读锁,读取x值,x值为原值100,而不是事务T1的脏数据80。 T1 T2 写锁 Xl
您可能关注的文档
- 数据结构-高职计算机-97484-第六章图幻灯片.pptx
- 暨南大学课件幻灯片.ppt
- 数控机床教学作者任立军精品课件学习项目4课件幻灯片.ppt
- 数据结构-高职计算机-97484-第七章查找幻灯片.ppt
- 数据结构-高职计算机-97484-第四章串和数组幻灯片.ppt
- 数据结构-高职计算机-97484-第五章树幻灯片.ppt
- 数据结构-高职计算机-97484-第一章绪论幻灯片.ppt
- 数控机床教学作者任立军精品课件学习项目5课件幻灯片.ppt
- 数据结构与算法2课件幻灯片.ppt
- 数据结构与算法Java版教学作者罗文劼电子教案第3章节线性结构课件幻灯片.ppt
- 五位一体教案教学教案设计.docx
- 思修与法基-教学教案分享.pptx
- 大学军事之《中国国防》题库分享.docx
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章-中国特色社会主义理论体系的形成发展.pdf
- 思修与法基 教学全案分享.docx
- 大学军事之《军事思想》题库分享.docx
- 《经济思想史》全套课件-国家级精品课程教案课件讲义分享.pdf
- 厦门大学国际金融全套资料(国家级精品课程)--全套课件.pdf
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章-中国特色社会主义理论体系的形成发展.docx
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章中国特色社会主义理论体系的形成发展分享.pdf
最近下载
- 2024聊城高级财经职业学校工作人员招聘考试试题及答案.docx VIP
- 1.1正数和负数 说课稿 2024—2025学年人教版数学七年级上册.docx
- 一种浓香型白酒发酵容器.pdf VIP
- 湖北大学《模拟电子技术基础》2018-2019年第一学期期末试卷B卷.pdf
- 事业单位考试职业能力倾向测验试卷及解答参考.docx VIP
- 详解SR220C电气说明书_20070822.doc
- 大班数学活动数玉米.pptx
- 与法治》六年级下册第8课《科技发展造福人类》精品教案.pdf
- 《网络管理与维护》课程标准 .pdf VIP
- 第一单元《刨削及其他工具》课件北京出版社七年级劳动技术《木工设计与制作》.pptx VIP
文档评论(0)