并发控制 课后答案

合集下载

智慧树 计算机操作系统 网课章节测试答案

智慧树 计算机操作系统 网课章节测试答案

计算机操作系统在线学堂•得分:8••评语:••名称计算机操作系统•成绩类型百分制•截止时间2022-07-22 23:59•题目数5•总分数10说明第二次见面课课后测验提示:选择题选项顺序为随机排列•第1部分•总题数:51【单选题】 (2分)关于同步和互斥关系,以下叙述错误的是:A.并发进程推进过程中由于共享互斥资源可能形成互斥关系B.互斥表现的是一种竞争关系,互斥进程不能同时使用互斥资源C.并发进程推进过程中围绕共享资源可能形成合作关系D.同步表现的是进程之间的合作关系,同步进程可以同时使用临界资源2【单选题】 (2分)关于临界区和临界资源的说法,错误的是A.并发进程体中关于同一临界资源的临界区称为相关临界区B.临界区指的是进程体中使用临界资源的代码段C.一个进程体中只能有一块临界区D.临界资源指的是并发进程并发推进过程中需要共享但是不能同时共享的资源3【多选题】 (2分)PV操作可用来实现A.并发进程间的互斥B.进程间少量信息的传递C.并发进程间的同步D.进程间大量信息的传递4【判断题】 (2分)为了让用户进程互斥地进入临界区,可以把整个临界区实现成不可中断的过程,即让用户具有屏蔽所有中断的能力。

每当用户程序进入临界区的时候,屏蔽所有中断。

当出了临界区的时候,再开放所有中断A.对B.错5【判断题】 (2分)互斥是指不但不能同时用,谁先用谁后用也有严格约束A.错B.对总分8第1部分12345Copyright © 2003-现在Zhihuishu. All rights reserved.沪ICP备10007183号-5沪公网备31010402003974号电子营业执照计算机操作系统在线学堂•得分:10••评语:••名称计算机操作系统•成绩类型百分制•截止时间2022-07-22 23:59•题目数5•总分数10说明第一次见面课课后测验提示:选择题选项顺序为随机排列•第1部分•总题数:51【单选题】 (2分)以下关于进程的表述错误的是A.进程具有独立性,进程是分配资源和参与CPU调度的独立单位B.进程具有动态性,操作系统为了描述和管理程序动态的执行过程才引入了“进程”C.进程是一个程序的一次动态执行过程,进程由要执行的代码和要处理的数据组成D.进程具有并发性和异步性,每个进程的推进速度都是不可预知的2【单选题】 (2分)下列哪一种进程状态转换是不可能的A.阻塞态→运行态B.就绪态→运行态C.运行态→就绪态D.运行态→阻塞态3【判断题】 (2分)进程是按异步方式运行的,即,它的推进速度是不可预知的A.对B.错4【判断题】 (2分)一个进程由程序代码、数据集和进程控制块TCB组成。

并发控制

并发控制

第11章 并发控制一、选择题:1、.设有两个事务T1、T2,其并发操作如下所示,下面评价正确的是 。

A .该操作不存在问题B .该操作丢失修改C .该操作不能重复读D .该操作读“脏”数据 答案:B2、设有两个事务T1、T2,其并发操作如下所示,下面评价正确的是 。

A .该操作不存在问题B .该操作丢失修改C .该操作不能重复读D .该操作读“脏”数据答案:C3、设有两个事务T1、T2,其并发操作如下所示,下列评价正确的是 。

A .该操作不存在问题B .该操作丢失修改C .该操作不能重复读D .该操作读“脏”数据 答案:D4、解决并发操作带来的数据不一致性总是普遍采用 。

A .封锁B .恢复C .存取控制D .协商 答案:A5、若事务T 对数据R 已经加X 锁,则其他事务对数据R 。

A.可以加S锁不能加X锁B.不能加S锁可以加X锁 C.可以加S锁也可以加X锁D.不能加任何锁答案:D6、关于“死锁”,下列说法中正确的是。

A.死锁是操作系统中的问题,数据库操作中不存在 B.在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库C.当两个用户竞争相同资源时不会发生死锁 D.只有出现并发操作时,才有可能出现死锁答案:D7、对并发操作若不加以控制,可能会带来问题。

A.不安全B.死锁C.死机D.不一致答案:D8、并发操作会带来哪些数据不一致性。

A.丢失修改、不可重复读、脏读、死锁 B.不可重复读、脏读、死锁C.丢失修改、脏读、死锁 D.丢失修改、不可重复读、脏读答案:D二、填空题1、DBMS的基本工作单位是事务,它是用户定义的一组逻辑一致的程序序列;并发控制的主要方法是机制。

答案:封锁2、有两种基本类型的锁,它们是共享锁和排它锁。

答案:①共享锁②排它锁三、简答题1、叙述数据库中死锁产生的原因和解决死锁的方法。

答:死锁产生的原因:封锁可以引起死锁。

比如事务T1封锁了数据A,事务T2封锁了数据B。

T1又申请封锁数据B,但因B被T2封锁,所以T1只能等待。

数据库系统原理及应用教程第四版课后答案(苗雪兰刘瑞新)机械

数据库系统原理及应用教程第四版课后答案(苗雪兰刘瑞新)机械

数据库系统原理及应用教程第四版课后答案(苗雪兰刘瑞新)机械习题88.1答:数据库的安全性是指保护数据库,以防止不合法的使用数据泄密、更改或破坏。

8.2数据库安全性和计算机系统的安全性有什么关系?8.2答:数据库安全性是计算机系统的安全性的一部分,数据库系统不仅要利用计算机系统的安全性保证自己系统的安全性,同时还会提供专门的手段和方法,使安全性能更好。

例如,在用户要求进入计算机系统时,系统首先根据用户输入的用户标识进行身份鉴定,只有合法的用户才准许进入计算机系统;对已进入的用户,DBMS还要进行存取控制,只允许用户执行合法操作;操作系统也会提供相应的保护措施;数据最后还可以以密码形式存储到数据库中。

8.3答:①用户标识与鉴别;②存取控制;③自主存取控制方法;④强制存取控制方法;⑤视图机制;⑥审计;⑦数据加密。

8.4答:①GRANT(授权)语句例:GRANTSELECT,INSERTON学生TO张勇WITHGRANTOPTION;②REVOKE(收回)语句例:REVOKEINSERTON学生FROM张勇;8.5答:数据库的完整性是指数据的正确性和相容性。

8.6答:数据库的完整性是指数据的正确性和相容性。

数据库的安全性是指保护数据库,以防止不合法的使用造成的数据泄密、更改或破坏。

其相同点是两者都是对数据库中的数据进行控制,各自所实现的功能目标不同。

8.9答:①外码能够接受空值的问题;②在被参照关系中删除元组时,采用级联删除、受限删除或置空值删除的方法处理参照关系;③在参照关系中插入元组时,可以使用受限插入、递归插入两种方法处理参照关系;④修改关系的主码时,可以采用不允许修改主码、或允许修改关系主码,但必须保证主码的惟一性和非空性方法处理参照关系;⑤修改被参照关系时,可以采用级联修改、拒绝修改和置空值修改方法处理参照关系。

8.10答:数据库的并发控制就是为了控制数据库,防止多用户并发使用数据库时造成数据错误和程序运行错误,保证数据的完整性。

数据库基础与应用第二版课后答案王珊李盛恩编著

数据库基础与应用第二版课后答案王珊李盛恩编著

数据库基础与应用1.数据(DB):数据实际上是描述事物的符号纪录。

2.数据库: 数据库实际上是长期存储在计算机内的有组织的、可共享的数据集合。

3.从文件系统的视角上看去,文件是无结构的,文件只是一个字节流,因此,我们经常把文件叫做流式文件,实际上文件的数据是有结构的,数据的结构需要程序员通过编写程序来建立和维护。

4.数据库应用可以分为两大类:联机事务处理(OLTP),联机分析处理(OLAP).联机事务处理解决了组织结构业务自动化问题,而联机分析处理帮助管理层更好的分析组织结构的运站情况。

5. 数据库管理系统(DBMS):数据库管理系统是一类重要的软件,由一组程序组成。

其主要功能是完成对数据库的定义、数据操作。

提供给用户一个简明的接口,实现事务处理等。

6.数据库管理系统的基本功能:数据的定义功能数据操作功能数据库的运行和管理数据库的建立和维护功能7.数据库管理系统由两大部分组成:查询处理器存储管理器8.层次结构:应用层语言翻译层数据存取层数据存储层操作系统数据库9. 数据库系统:数据库系统是基于数据库的计算机应用的系统,有四部分组成数据库数据管理系统应用系统用户。

10. 数据库管理员的职责:(1)决定数据库中要存储的数据及数据结构(2)决定数据库的存储结构和存取策略(3)保证数据的安全性和完整性(4)监控数据库的使用和运行(5)数据库的改进和重组重构11.数据模型的三要素:数据结构数据操作完整性约束12. 数据结构是所研究的对象的类型的集合,这些对象是数据库的组成成分,他们包含两类:一类是与数据之间联系有关的对象。

一类是与数据之间联系有关的对象。

13. 数据操作:数据库主要有检索和更新(插入、删除、修改)两大类操作。

14.在关系模型中任何关系都要满足实体完整性和参照完整性。

15.三种数据模型:概念模型逻辑模型物理模型逻辑模型中有:层次模型网状模型关系模型面向对象模型对象关系模型其中层次模型和网状模型统称为非关系模型。

课后简答题答案 (1)

课后简答题答案 (1)

第一章三、简答题12、数据模型的主要作用是什么三类基本数据模型的划分依据是什么各自哪些优缺点答:数据模型对现实世界中的事物及其联系的一种模拟和抽象表示,对数据、数据间联系以及有关语义约束规程进行形式化描述。

三类基本数据模型划分的依据是它们的数据结构,按数据结构的不同分为层次模型、网状模型和关系模型。

层次模型的优点有:(1)、层次模型结构比较简单,层次分明,便于在计算机内实现。

(2)、结点间联系简单,从根结点到树中任何一结点均存在一天唯一的层次路径,因此其查询效率很高。

(3)、提供了良好的数据完整性支持。

层次模型的缺点有:(1)、不能直接表示两个以上的实体间的复杂联系和实体型间的多对多联系,只能通过引入沉于数据或创建虚拟结点的方法来解决,易产生不一致性。

(2)、对数据插入和删除的操作限制太多。

(3)、查询子女结点必须通过双亲结点。

网状模型的优点有:(1)、能更为直接地描述客观世界,可表示实体间的多种复杂联系。

(2)、具有良好的性能和存储效率。

网状模型的缺点有:(1)、数据结构复杂,并且随着应用环境的扩大,数据库的结构变得越来越复杂,不便于终端用户掌握。

(2)、器数据定义语言(DDL)、数据操纵语言(DML)语言极其复杂,不易使用户掌握。

(3)、由于记录间的联系本质上是通过存储路径实现的,应用程序再访问数据库时要指定存取路径,即用户需要了解系统结构的细节,加重了编写应用程序的负担。

关系模型的优点有:(1)、其有严格的数学理论依据。

(2)、数据结构简单、清晰,用户易懂易用,不仅用关系描述实体,而且用关系描述实体间的联系,此外,对数据的操纵结构也是关系。

(3)、关系模型的存取路径对用户是透明的,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库建立和开发工作。

关系模型的缺点有:查询效率不如非关系模型。

14解释模式、内模式、外模式的含义答:模式:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

数据库原理与技术课后答案

数据库原理与技术课后答案

数据库原理与技术课后答案1. 简述数据库管理系统(DBMS)的作用和优点。

数据库管理系统是一种软件工具,用于管理和控制数据库的创建、维护、访问和使用等各个方面。

其主要作用如下:- 数据组织:DBMS通过定义数据结构和类型,实现数据的有序组织和存储,提高数据的组织性和结构性。

- 数据共享:DBMS可以为多个用户提供并发访问数据库的能力,实现数据共享和协同工作。

- 数据安全:DBMS提供了权限管理、数据备份和恢复等功能,保护数据库的安全性和一致性。

- 数据一致性:DBMS能够确保数据的一致性,维护数据库中各个数据之间的联系和完整性。

- 数据查询和处理:DBMS提供了灵活的查询语言和数据处理功能,方便用户对数据库进行查询、分析和操作。

DBMS的优点包括:- 数据共享和协作:多个用户可以同时访问和使用数据库,提高了工作效率和资源利用率。

- 数据一致性和完整性:DBMS确保数据库中的数据一致性和完整性,避免了数据冗余和错误。

- 数据安全和可靠性:DBMS提供了权限管理、数据备份和恢复等功能,保护数据库的安全和可靠性。

- 数据的易管理性和可维护性:DBMS提供了管理和维护数据库的工具和功能,简化了数据管理和维护的工作。

- 数据的高效访问和处理:DBMS提供了高效的数据访问和处理能力,提高了数据的查询和处理效率。

2. 简述关系型数据库和非关系型数据库的特点和应用场景。

关系型数据库特点:- 数据存储:关系型数据库使用表格形式存储数据,表格由行和列组成,每行表示一个记录,每列表示一个字段。

- 结构化数据:关系型数据库要求数据先定义表结构,再进行数据录入,确保数据的一致性和完整性。

- 支持SQL查询:关系型数据库使用结构化查询语言(SQL)进行数据查询和操作,具有较高的查询灵活性和表达能力。

- ACID特性:关系型数据库支持ACID(原子性、一致性、隔离性和持久性)特性,保证数据的一致性和可靠性。

关系型数据库应用场景:- 需要严格的数据一致性和完整性的应用,如金融系统、电子商务系统等。

王珊《数据库系统概论》章节题库(并发控制)【圣才出品】

王珊《数据库系统概论》章节题库(并发控制)【圣才出品】

第11章并发控制一、选择题1.实现数据库并发控制的主要方法是()。

A.授权B.索引C.日志D.封锁【答案】D【解析】数据库管理系统对事务的并发执行进行控制,以保证数据库一致性,最常用的方法是封锁的方法,即当一个事务访问某个数据项时,以一定的方式锁住该数据项,从而限制其他事务对该数据项的访问。

2.在并发控制技术中最常用的是封锁,对于共享锁(S)和排他锁(X)来说,下面列出的相容关系中,哪一个是正确的()。

A.X-X:相容B.S-S:相容C.S-X:相容D.X-S:相容【答案】B【解析】为了避免发生并发操作引起的数据不一致性问题,则采用数据封锁技术实现并发控制。

封锁是防止存取同一资源的用户之间相互干扰的机制,即当一个用户对数据库某个数据对象执行修改操作时,对该部分数据加锁,拒绝其他用户对该部分的并发访问要求,直至该事务执行完毕才释放数据对象;所以只有当两事务都是读取数据且都加S锁时才相容。

3.如果系统发生死锁,参与死锁的进程的个数至少是()个。

A.3B.1C.2D.4【答案】C【解析】由于各进程互相独立地活动,不断申请和释放软硬件资源,可能会出现这样一种状态:两个或两个以上的进程彼此等待对方拥有的而又不会释放的资源,则所有进程都不能进一步向前运行,这种状态就称为死锁。

因此,参与死锁的进程至少是两个。

4.对数据对象施加封锁可能会引起活锁和死锁问题,避免活锁的简单方法是采用()的策略。

A.顺序封锁法B.依次封锁法C.优先级高先服务D.先来先服务【答案】D【解析】活锁:某个事务永远得不到对某个数据资源的封锁,从而永远处于等待状态的现象;采用先来先服务的策略可以有效地避免活锁。

5.二级封锁协议可防止()。

A.不可重复读、丢失修改B.读“脏”数据C.读“脏”数据、丢失修改D.不可重复读、读“脏”数据【答案】C【解析】一级封锁协议可防止丢失修改;二级封锁协议可以防止丢失修改和读“脏”数据;三级封锁协议可防止丢失修改、读“脏”数据和不可重复读。

安徽工业大学数据库第十一章习题解答

安徽工业大学数据库第十一章习题解答
T1 :A:= A + 2 ;
T2 :A:= A* 2 ;
T3 :A:= A* *2 ( A←A 2 )
设 A 得初值为 0。
⑴ 若这三个事务允许并发执行,则有多少种可能得正确结果,请一一列举出
来;
⑵ 请给出一个可串行化得调度,并给出执行结果;
⑶ 请给出一个非串行化得调度,并给出执行结果;
⑷ 若这三个事务都遵守两段锁协议,请给出一个不产生死锁得可串行化调
最后结 果 A 为 0, 为非 串行化 得调度 。

T1
Slock A Y=A=0 Xlock A A=Y+2 写回 A(=2) Unlock A
Unlock A
T2
Slock A 等待
等待 Y=A=2 Xlock A 等待 A=Y*2 写回 A(=4) Unlock A
Unlock A

T1
Slock A Y=A=0
第十一章 并发控制
1、 并发操作可能会产生哪几类数据不一致性?用什么方法能避免各种不一致
性得情况。
答 : 数据库得并发操作所带来得数据不一致性有三类 : 丢失更新问题、不一致性分析问题 与读“脏”数据问题。对于并发操作带来得问题 , 通常采用并发控制得方法调度并发操作 , 避 免造成数据得不一致性 , 使一个用户事务得执行不受其她事务得干扰。
2 、 为什么 D M L 锁只能提供解除 S 封锁得操作,而不提供解除 X 封锁得操作。
答 : 为防止由事务得 ROLLBAC操K 作引起得丢失更新操作 ,X 封锁必须保留到事务终点。即 X 封锁不就是用 UNLOCK操作解除得 , 而就是在事务结束得语义中包含了对 X 封锁得解除 , 因 此,DML不提供解除 X 封锁得操作。而为增加事务并发操作得程度 , 未到事务终点时 , 用户可以 使用 DML提供得专门解除 S 封锁得操作 , 随时解除事务得 S 封锁 , 这就是因为被 S 封锁得数据 不可能就是未提交得修改。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八章并发控制习题解答和解析1. 1.在数据库中为什么要并发控制?答:数据库是共享资源,通常有许多个事务同时在运行。

当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。

若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。

所以数据库管理系统必须提供并发控制机制。

2. 2.并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读"脏"数据。

(1)丢失修改(Lost Update)两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丢失。

(2)不可重复读(Non -Repeatable Read)不可重复读是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。

不可重复读包括三种情况:详见《概论》8.1(P266)。

(3)读"脏"数据(Dirty Read)读"脏"数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为"脏"数据,即不正确的数据。

避免不一致性的方法和技术就是并发控制。

最常用的技术是封锁技术。

也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。

3. 3.什么是封锁?答:封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。

加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。

封锁是实现并发控制的一个非常重要的技术。

4. 4.基本的封锁类型有几种?试述它们的含义。

答:基本的封锁类型有两种:排它锁(Exclusive Locks, 简称 X 锁 )和共享锁(Share Locks,简称 S 锁)。

排它锁又称为写锁。

若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。

这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。

共享锁又称为读锁。

若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。

这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。

5.如何用封锁机制保证数据的一致性 ?答:DBMS在对数据进行读、写操作之前首先对该数据执行封锁操作,例如下图中事务T1在对A进行修改之前先对A执行XLock(A),即对A加X锁。

这样,当T2请求对A加X锁时就被拒绝,T2只能等待T1释放A上的锁后才能获得对A的X锁,这时它读到的A是T1更新后的值,再按此新的A值进行运算。

这样就不会丢失T1的更新。

DBMS按照一定的封锁协议,对并发操作进行控制,使得多个并发操作有序地执行,就可以避免丢失修改、不可重复读和读"脏"数据等数据不一致性。

6.什么是封锁协议?不同级别的封锁协议的主要区别是什么?答:在运用封锁技术对数据加锁时,要约定一些规则。

例如,在运用X锁和S锁对数据对象加锁时,要约定何时申请X锁或S锁、何时释放封锁等。

这些约定或者规则称为封锁协议(locking Protocol)。

对封锁方式约定不同的规则,就形成了各种不同的封锁协议、不同级别的封锁协议,例如《概论》8.3中介绍的三级封锁协议,三级协议的主要区别在于什么操作需要申请封锁,何时申请封锁以及何时释放锁(即持锁时间的长短)。

一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。

二级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。

三级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。

7.不同封锁协议与系统一致性级别的关系是什么?答:不同的封锁协议对应不同的一致性级别。

一级封锁协议可防止丢失修改,并保证事务T是可恢复的。

在一级封锁协议中,对读数据是不加S锁的,所以它不能保证可重复读和不读"脏"数据。

二级封锁协议除防止了丢失修改,还可进一步防止读"脏"数据。

在二级封锁协议中,由于读完数据后立即释放S锁,所以它不能保证可重复读。

在三级封锁协议中,无论是读数据还是写数据都加长锁,即都要到事务结束才释放封锁。

所以三级封锁协议除防止了丢失修改和不读"脏"数据外,还进一步防止了不可重复读。

下面的表格清楚地说明了封锁协议与系统一致性的关系。

8.什么是活锁?什么是死锁?答: TI T2 T3 T4lock R . . .. lock R . .. 等待 lock R .Unlock 等待 . lock R. 等待 . 等待. 等待 . 等待. 等待 Unlock 等待. 等待 . lock R. 等待 . .如果事务T1封锁了数据R,事务T2飞又请求封锁R,于是T2等待。

T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。

然后T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求……T2有可能永远等待,这就是活锁的情形。

活锁的含义是该等待事务等待时间太长,似乎被锁住了,实际上可能被激活。

如果事务Tl封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2,因T2已封锁了R2,于是T1等待T2释放R2上的锁。

接着T2又申请封锁R1,因T1已封锁了R1,T2也只能等待T1释放Rl上的锁。

这样就出现了T1在等待T2,而T2又在等待Tl的局面,T1和T2两个事务永远不能结束,形成死锁。

T1 T2lock R1 .. lock R2. .lock R2 .等待 .等待 lock R1等待等待9.试述活锁的产生原因和解决方法。

答:活锁产生的原因:当一系列封锁不能按照其先后顺序执行时,就可能导致一些事务无限期等待某个封锁,从而导致活锁。

避免活锁的简单方法是采用先来先服务的策略。

当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释放就批准申请队列中第一个事务获得锁。

10.请给出预防死锁的若干方法。

答:在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求已被其他事务封锁的数据加锁,从而出现死等待。

防止死锁的发生其实就是要破坏产生死锁的条件。

预防死锁通常有两种方法:(1)一次封锁法,要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行;(2)顺序封锁法,预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。

不过,预防死锁的策略不大适合数据库系统的特点,具体原因可参见《概论》8.4。

11.请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁?答:数据库系统一般采用允许死锁发生,DBMS检测到死锁后加以解除的方法。

DBMS中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。

超时法是:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。

超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误认为发生了死锁。

若时限设置得太长,又不能及时发现死锁发生。

DBMS并发控制子系统检测到死锁后,就要设法解除。

通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去。

当然,对撤销的事务所执行的数据修改操作必须加以恢复。

12.什么样的并发调度是正确的调度?答:可串行化(Sertalizable)的调度是正确的调度。

可串行化的调度的定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行执行它们时的结果相同,称这种调度策略为可串行化的调度。

13.设T1,T2,T3是如下的3个事务:T1:A:=A+2;T2:A:=A*2;T3:A:=A**2;设A的初值为0。

(1)若这3个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。

答:A的最终结果可能有2、4、8、16。

因为串行执行次序有T1 T2 T3、T1 T3 T2、T2 T1 T3、T2 T3 T1、T3 T1 T2、T3 T2 T1。

对应的执行结果是16、8、4、2、4、2。

(2)请给出一个可串行化的调度,并给出执行结果答:T1 T2 T3slock AY=A=OUnlock AXlock ASlock AA=Y+2 等待写回 A(=2) 等待Unlock A 等待Y=A=2Unlock AXlock ASlock AA=Y*2 等待写回 A(=4) 等待Unlock A 等待Y=A=4Unlock AXlock A写回 A(=16)Unlock A最后结果A为16,是可串行化的调度。

(3)请给出一个非串行化的调度,并给出执行结果。

答:T1 T2 T3Slock AY=A=0Unlock ASlock AY=A=0Xlock A等待 Unlock AA=Y+2写回 A(=2) Slock AUnlock A 等待Y=A=2Unlock AXlock AXlock A等待 A=Y**2等待写回 A(=4)等待 Unlock AA=Y*2写回 A(=0)Unlock A最后结果 A 为 0, 为非串行化的调度。

(4)若这3个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度。

答: T1 T2 T3Slock AY=A=OXlock AA=Y+2 Slock A写回 A(=2) 等待Unlock A 等待Y=A=2Xlock A等待 Slock AA=Y*2 等待写回A(=4) 等待Unlock A 等待Y=A=4Xlock AA=Y**2写回 A(=16)Unlock A(5)若这3个事务都遵守两段锁协议,请给出一个产生死锁的调度。

答:T1 T2 T3Slock AY=A=0Slock AY=A=0Xlock A等待Xlock A等待Slock AY=A=0Xlock A等待14.试述两段锁协议的概念。

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

•在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;•在释放一个封锁之后,事务不再申请和获得任何其他封锁。

"两段"的含义是,事务分为两个阶段:第一阶段是获得封锁,也称为扩展阶段,在这阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁;第二阶段是释放封锁,也称为收缩阶段,在这阶段,事务释放已经获得的锁,但是不能再申请任何锁。

相关文档
最新文档