并发控制课后答案
智慧树 计算机操作系统 网课章节测试答案

计算机操作系统在线学堂•得分: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组成。
数据库第四、五章习题及答案

第4、5章练习题(数据库的安全性、完整性)一、选择题1.下面哪个不是数据库系统必须提供的数据控制功能。
A.安全性B.可移植性C.完整性D.并发控制答案:B2.保护数据库,防止未经授权的或不合法的使用造成的数据泄漏、更改破坏。
这是指数据的。
A.安全性B.完整性C.并发控制D.恢复答案:A3.数据库的是指数据的正确性和相容性。
A.安全性B.完整性C.并发控制D.恢复答案:B4.在数据系统中,对存取权限的定义称为。
A.命令 B.授权 C.定义 D.审计答案:B5.数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的。
A.可靠性B.一致性C.完整性D.安全性答案:D6.下列SQL语句中,能够实现“收回用户ZHAO对学生表(STUD)中学号(XH)的修改权”这一功能的是A.REVOKE UPDATE(XH) ON TABLE FROM ZHAO B.REVOKE UPDATE(XH) ON TABLE FROM PUBLICC.REVOKE UPDATE(XH) ON TABLE STUD FROM ZHAO D.REVOKE UPDATE(XH) ON STUD FROM PUBLIC答案:C 7.把对关系SC的属性GRADE的修改权授予用户ZHAO的SQL语句是A)GRANT GRADE ON SC TO ZHAO B)GRANT UPDATE ON SC TO ZHAOC)GRANT UPDATE (GRADE) ON SC TO ZHAO D)GRANT UPDATE ON SC (GRADE) TO ZHAO 答案:C8.以下( D )不属于实现数据库系统安全性的主要技术和方法。
A. 存取控制技术B. 视图技术C. 审计技术D. 出入机房登记和加锁9.SQL中的视图提高了数据库系统的( D )。
A. 完整性B. 并发控制C. 隔离性D. 安全性10.安全性控制的防范对象是( B ),防止他们对数据库数据的存取。
数据库原理及应用第7章课后习题答案

习题71、试述事务的概念及事务的四个特性。
事务(Transaction)是用户定义的一个数据库操作序列,这些操作是一个完整的工作单元,一个事务内的所有语句被作为一个整体,这些操作要么全做,要么全不做。
事务是数据库环境的中的逻辑单元,相当于操作系统中的进程。
为了保证数据库中数据的正确性,一个事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability )。
这四个特性简称ACID 特性。
2、试述事务的状态及转换。
3、在数据库中为什么要并发控制并发控制能保证事务的哪些特性数据库的一个明显的特点是多个用户共享数据库资源,尤其是多用户可以同时存取相同的数据。
在这样的系统中,在同一时刻并发运行的事务数可达数百个。
若对事务的并发操作不加以控制,就会造成数据存、取的错误,破坏了数据的一致性和完整性。
并发控制可以防止数据不一致性出现。
4、并发操作可能会产生哪几类数据不一致用什么方法可以避免不一致性的情况并发操作带来的数据不一致性分为四种情况:丢失数修改、读“脏”数据、不可重复读和产生“幽灵”数据。
在数据库环境下,进行并发控制的主要技术有封锁(Locking)、时间戳(Timestamp)和乐观控制法。
商用的DBMS一般都采用封锁方法。
5、什么是封锁基本的封锁类型有哪些试述它们的含义。
封锁机制,即加锁(Locking),是一种并发控制机制,是用来调整对共享目标的并行存取的技术。
事务通过向封锁管理程序的系统组成部分发出请求而对事务加锁。
基本封锁类型有两种:共享锁(Share Locks,简记为S锁或读锁)和排它锁(Exclusive Locks,简记为X锁或写锁)。
6、如何用封锁机制保证数据的一致性在运用X锁和S锁对数据对象加锁时,还需要约定一些规则,这些规则为封锁协议或加锁协议(Locking Protocol)。
对封锁方式加不同的规则,就形成了各种不同级别的封锁协议。
智能控制原理与应用第三版课后答案

智能控制原理与应用第三版课后答案数据库原理与应用教程第三版课后答案第 1 章数据库概述 2.与文件管理相比,数据库管理有哪些优点?答:将相互关联的数据集成在一起,具有较少的数据冗余,程序与数据相互独立,保证数据的安全可靠,最大限度地保证数据的正确性,数据可以共享并能保证数据的一致性。
3.比较文件管理和数据库管理数据的主要区别。
请问:数据库系统与文件系统较之实际上就是在应用程序和存储数据的数据库之间减少了一个系则复软件,即为数据库管理系统,使以前在应用程序中由开发人员同时实现的很多繁杂的操作方式和功能,都可以由这个系统软件顺利完成,这样应用程序不再须要关心数据的存储方式,而且数据的存储方式的变化也不再影响应用程序。
而在文件系统中,应用程序和数据的存有储是密切有关的,数据的存储方式的任何变化都会影响至应用程序,因此有利于应用领域程序的保护。
4.数据库管理方式中,应用程序是否需要关心数据的存储位置和结构?为什么?答:不需要。
因为在数据库系统中,数据的存储位置以及存储结构保存在数据库管理系统中,从数据到物理存储位置的转换是由数据库管理系统自动完成的。
6.在数据库系统中,应用程序可以不通过数据库管理系统而轻易出访数据库文件吗?请问:无法。
7.数据独立性指的是什么?它能带来哪些好处?答:数据独立性指的是数据的逻辑独立性和物理独立性。
逻辑独立性带来的好处是当表达现实世界信息的逻辑结构发生变化时,可以不影响应用程序;物理独立性增添的好处就是当数据的存储结构发生变化时,可以不影响数据的逻辑非政府结构,从而也不影响应用程序。
8.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?答:数据库系统由三个主要部分组成,即数据库、数据库管理系统和应用程序。
数据库是数据的汇集,它以一定的组织形式存于存储介质上;数据库管理系统就是管理数据库的系统软件,它可以同时实现数据库系统的各种功能;应用程序指以数据库数据为核心的应用程序。
数据库原理课后习题答案

数据库原理课后习题答案码:工程号+材料号操作异常:数据冗余,插入异常,删除异常,修改异常分析原因:(工程号,材料号)?开工日期工程号?开工日期存在部分函数依赖,不满足2NF(工程号,材料号)?单价材料号?单价存在部分函数依赖,不满足2NF分解为:R1(工程号,材料号,数量)R2(材料号,单价)R3(工程号,开工日期,完工日期)第七章一、试说明事务的概念及四个特征。
答:事务是用户定义的数据操作系列,这些操作可作为一个完整的工作单元一个事务内的所有语句被作为一个整体,要么全部执行,要么全部不执行。
四个特征:原子性、一致性、隔离性和持续性三、在数据库中为什么要有并发控制机制?答:数据库系统一个明显的特点是多个用户共享数据库资源,尤其是多个用户可以同时存取相同数据。
在这样的系统中,在同一时刻同时运行的事务可达数百个。
若对多用户的并发操作不加控制,就会造成数据库存、取的错误,破坏数据的一致性和完整性。
所以数据库中要有并发控制机制。
四、并发控制的措施是什么?答:在数据库环境下,进行并发控制的主要方式是使用封锁机制,即加锁。
具体的控制由锁的类型决定。
基本的锁类型有两种:排它锁(X锁)和共享锁(S锁)。
共享锁:若事务T给数据对象A加了S锁,则事务T可以读A,但不能修改A,其他事务只能再给A加S锁,而不能加X锁,直到T释放了A上的S锁为止。
排他锁:若事务T给数据对象A加了X锁,则允许T读取和修改A,但不允许其他事务再给A加任何类型的锁和进行任何操作。
五、设有3个事务:T1、T2和T3,其所包含的动作为:T1:A=A+2T2:A=A某2T3:A=A某某2设A的初值为1,若这三个事务运行并行执行,则可能的调度策略有几种?A最终的结果分别是什么?答:6种策略。
分别是T1T2T3,T1T3T2,T2T1T3,T2T3T1,T3T1T2,T3T2T1结果分别是六、当一些事务对段数据加了S锁之后,在此事务释放锁之前,其他事物还可以对此段数据添加什么锁?答:S锁七、什么是死锁?如何预防死锁?答:如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁数据R2,由于T2已经封锁了数据R2,因此T1等待T2释放R2上的锁,然后T2又请求封锁数据R1,由于T1封锁了数据R1,因此T2也只能等待T1释放R1上的锁.这样就会出现T1等待T2先释放R2上的锁,而T2又等待T1先释放R1上的锁的局面,此时T1和T2都在等待对方先释放锁,因而形成死锁。
数据库原理与应用课后题及答案

的逻辑表示。
外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可
以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(DML)对这些数据记
录进行。外模式反映了数据库的用户观。
内模式又称存储模式,对应于物理级,它是数据库中全体数据的
内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式翱物理结构,对应着
答:是数据资源管理机构的一组人员,全名负责数据库系统的运行管理和控制。 职责:参与数据库系统设计,参
与觉得数据库的存储结构和存取策略,参与定义数据的安全性要求和完整性约束条件,监控数据库的使用和运行,
数据库的改进和重组。
19. 试论述模式、外模式、内模式的区别和联系。
答:模式又称概念模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构
数据库原理与应用
答:指不受系统控制、出于系统之外的事物、机构、人员等客观实体的统称; 包含:外部实体名称,别名,编号,简要描述,输入的数据流,输出的数据流,数量。 11. 什么是数据流?数据流词条一般包含哪些内容? 答:指系统中有着起点和终点的数据结构。 包含:数据流名称,别名,编号,说明,数据流来源,数据流去向,组成,平均流量,高峰期流量,相关元素。 12. 什么是数据存储?数据存储词条一般包含哪些内容? 答:是数据及其结构停留或保存的地方,是数据流的来源和去向之一。 含义:数据存储名称,别名,编号,说明,输入的数据流,输出的数据流,组成,数据量,存取频度,存取方式, 相关元素。 13. 什么是处理逻辑?处理逻辑词条一般包含哪些内容? 答:用于描述处理是如何工作的,有哪些输入和输出。 包含:处理名称,编号,说明,输入的数据流,输出的数据流,处理逻辑,平均执行频率,高峰期执行频率,相关 元素。 14. 什么是信息分类?信息分类要遵循哪些原则? 答:指将具有某种共同属性或特征的信息归并一起,把不具有上述共性的信息区别开来的过程。 原则:科学性原则,系统性原则,可扩展性原则,兼容性原则,综合实用性原则。 15. 什么是线分类法? 答:按选定的若干属性(或特征)将分类对象逐次地分为若干层级,每个层级又分为若干类目。 16. 什么是面分类法? 答:将分类对象按选定的若干个属性或特征,分成彼此之间互不相关的若干方面(简称面),每个面又可以分为许 多彼此独立的若干类目。 17. 简述信息编码的功能。 答:鉴别:编码是鉴别信息分类对象的唯一标识 分类:编码可以作为区分对象类别的标识 排序:编码有一定的顺序,股可方便的进行排序 专用含义:当采用一些专用符号代表特定事物或概念时,编码提供一定的专用含义 18. 简述信息编码的原则。 答:唯一性,正确性,可扩展性,规范性,稳定性。 19. 什么是顺序编码?区间编码?字母编码? 答:顺序编码:将要编码的对象按一定的规则分配给连续的顺序号码 区间编码:对编码对象分区间进行编码 字母编码:是用具有特定意义的字母代表某一类项目 20. 什么是数据定义分析? 答:指确定系统安装和正常运行起降数据库、基本表、视图、索引等对象的创建、修改与删除等需求。 21. 为什么要进行数据定义分析? 答:避免数据库运行期间定义、修改与删除有关对象容易造成冲突。 22. 数据操纵分析的主要任务是什么? 答:数据插入、修改、删除、查询、统计和排序。 23. 数据完整性分析的主要任务是什么? 答:找出保证数据库中数据满足一致性、正确性和有效性的需求,其目的是防止错误的数据进入数据库。 24. 并发处理分析的主要内容是哪些? 答: ·分析数据定义时产生的并发处理需求 ·分析数据操纵时产生的并发处理需求
并发控制

第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只能等待。
数据库试题及答案

数据库试题及答案一、选择题(每题2分,共20分)1. 数据库管理系统(DBMS)的主要功能是______。
A. 存储数据B. 管理数据C. 访问数据D. 以上都是答案:D2. 关系型数据库中,表与表之间的联系称为______。
A. 索引B. 视图C. 关系D. 约束答案:C3. SQL语言中的“SELECT”语句用于执行______。
A. 数据更新B. 数据查询C. 数据删除D. 数据插入答案:B4. 在数据库设计中,规范化的主要目的是______。
A. 提高查询速度B. 减少数据冗余C. 增强数据安全性D. 增加用户界面友好性答案:B5. 数据库事务的四个基本属性通常被称为ACID属性,其中“D”代表的是______。
A. 原子性B. 一致性C. 隔离性D. 持久性答案:D二、填空题(每空2分,共20分)6. 数据库系统由数据库、数据库管理系统、________和________组成。
答案:应用系统;数据库管理员7. 在关系数据库中,表的列称为________,行称为________。
答案:属性;元组8. SQL语言提供了数据定义、数据操纵和数据控制的功能,其中数据定义包括创建、修改和________表。
答案:删除9. 数据库的安全性主要体现在数据的________、________和________。
答案:完整性;机密性;可用性10. 触发器是一种特殊的存储过程,它在数据库中的数据发生变化时自动执行,用于维护数据的________。
答案:一致性三、简答题(每题10分,共20分)11. 简述数据库的三级模式结构。
答案:数据库的三级模式结构包括外模式、概念模式和内模式。
外模式是用户视图,是用户与数据库交互的接口;概念模式是全局逻辑结构,描述了数据库的总体结构;内模式是存储结构,描述了数据在存储介质上的物理存储方式。
12. 什么是数据库的并发控制?为什么需要并发控制?答案:数据库的并发控制是指在多用户环境下,数据库管理系统协调多个用户对数据库的访问,以保证数据的完整性和一致性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.试述两段锁协议的概念。
答:两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。
•在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;•在释放一个封锁之后,事务不再申请和获得任何其他封锁。
"两段"的含义是,事务分为两个阶段:第一阶段是获得封锁,也称为扩展阶段,在这阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁;第二阶段是释放封锁,也称为收缩阶段,在这阶段,事务释放已经获得的锁,但是不能再申请任何锁。