当前位置:文档之家› 第三章死锁

第三章死锁

第三章死锁
第三章死锁

单多项选择题

判断题

填空题

名词解释

1死锁

是指在一个进程集合中的每个进程都在等待仅由该集合中的另一个进程才能引发的事件而无限期地僵持下去的局面。

2饥饿

在系统中,每个资源占有者都在有限时间内释放它所占有的资源,但资源中存在某些申请者由于某种原因却永远得不到资源的一种错误现象。

3死锁防止

要求进程申请资源时遵循某种协议,从而打破产生死锁的四个必要条件中的一个或几个,保证系统不会进入死锁状态。

4死锁避免

对进程所发出的每一个申请资源命令加以动态地检查,并根据检查结果决定是否进行资源分配。就是说,在资源分配过程中若预测有发生死锁的可能性,则加以避免。这种方法的关键是确定资源分配的安全性。

5安全序列

针对当前分配状态来说,系统至少能够按照某种次序为每个进程分配资源(直至最大需求),并且使他们依次成功地运行完毕,这种进程序列{p1,p2,…,pn}就是安全序列。

简答题

1计算机系统中产生死锁的根本原因是什么?死锁发生的四个基本条件是什么?

答: 计算机系统中产生死锁的根本原因是:资源有限且操作不当。死锁发生的四个基本条件有互斥条件、请求保持条件(占有且等待条件)、非剥夺条件(不可抢占条件)和环路条件(循环等待条件)。

2简述发生死锁的四个必要条件?

答:四个必要条件是:互斥条件、占有且等待条件(请求保持条件)、不可抢占条件(非剥夺条件)和循环等待条件(环路条件)。

互斥条件——某个资源在一段时间内只能由一个进程占有,不能同时被两个及其以上的进程占有。

占有且等待条件——进程至少已经占有一个资源,但又申请新的资源。

不可抢占条件——一个进程所占有的资源再用完之前,其他进程不能强行夺走资源,只能由该进程用完之后主动释放。

循环等待条件——存在一个进程等待序列{P1,P2,…,Pn},其中,P1等待P2所占有的某个资源,P2等待P3所占有的某个资源,……,而Pn等待P1所占有的某个资源,从而形成一个进程循环等待。

3什么是死锁?解决死锁的方法一般有那几种?

答: 死锁是指在一个进程集合中的每个进程都在等待仅由该集合中的另一个进程才能引发的事件而无限期地僵持下去的局面。

解决死锁问题的一般方法为:死锁的预防、死锁的避免、死锁的检测和恢复。

4死锁预防的基本思想是什么?死锁避免的基本思想是什么?

答:死锁预防的基本思想是:要求进程申请资源是遵循某种协议,从而打破产生思索的四个必要条件中的一个或几个,保证系统不会进入死锁状态.

死锁避免的基本思想是:对进程所发出的每一个申请资源命令加以动态地检查,并根据检查结果决定是否进行资源分配.就是说,在资源分配过程中若预测有发生死锁的可能性,则加以避免.这种方法的关键是确定资源分配的安全性.

5什么是死锁的安全序列?何谓系统是安全的?

答:进程的安全序列{P1,P2,…,P N}是这样组成的:若对于每个进程Pi(1<=I<=n),它需要的附加资源可以被系统中当前可用资源加上所有进程Pj(j

“系统是安全的”是指系统中的所有进程能够按照某种次序分配资源,并且依次运行完毕。即系统中的进程处于安全序列中。

6资源按序分配法为什么能够预防死锁?

证明:采用反证法来证明。

若存在循环等待,设在环路上的一组进程为{P0,P1,P2,…,Pn},这里Pi等待进程Pi+1占有资源Ri(下角标取模运算,从而,Pn等待p0占有的资源)。由于Pi+1占有资源Ri,又申请资源Ri+1,从而一定存在F(i)

F(R0)

由传递性得到:

F(R0)

显然,这是不可能的,因而,上述假设不成立,表明不会出现循环等待条件。

7死锁和“饥饿”之间的主要差别是什么?

答:死锁:多个并发进程相互等待对方占用的资源而产生的错误现象。

饿死:在系统中,由于系统采用的资源分配算法不当,虽然每个资源占有者都在有限时间内释放它所占的资源,但仍然使一些进程永远得不到资源的一种错误现象。

综合题

1设系统中有三种类型的资源(A,B,C)和五个进程(P1,P2,P3,P4,P5),A资源的数量为17,B资源的数量为5,C资源的数量为20。在T0时刻系统状态如表3-9所试。系统采用银行家算法来避免死锁。

①T0时刻是否为安全状态?若试,请给出安全序列。

②在T0时刻,若进程P2请求资源(0,3,4),能否实现资源分配?为什么?

③在②的基础上,若进程P4请求资源(2,0,1),能否实现资源分配?为什么?

④在③的基础上,若进程P1请求资源(0,2,0),能否实现资源分配?为什么?

表3-9 T0时刻系统状态

进程最大资源需求量已分配资源数量系统剩余资源数量

A B C A B C A B C

P1 5 5 9 2 1 2 2 3 3

P2 5 3 6 4 0 2

P3 4 0 11 4 0 5

P4 4 2 5 2 0 4

P5 4 2 4 3 1 4

解:

①T0时刻是安全状态,因为存在一个安全序列{P4,P5,P1,P2,P3} (2’)

②不能实现资源分配,因为所剩余的资源数量不够。(2’)

③可以分配。当分配完成后,系统剩余的资源向量为(0,3,2),这时,仍可找到一个安全序列{P4,P5,P1,P2,P3} (3’)

④不能分配。如果分配的话,则系统剩余的资源向量为(0,1,2),这时无法找到一个安全序列。(3’)

2在银行家算法中,系统有5个进程和3个资源。若出现以下资源分配情况:

进程资源最大请求已分配资源

p0 7, 5, 3 0, 1, 0

p1 3, 2, 2 2, 1, 0

p2 9, 0, 2 3, 0, 2

p3 2, 2, 2 2, 1, 1

p4 4, 3, 3 0, 0, 2

系统剩余资源数量为(3,2,2)。

1)该状态是否安全(给出详细的检查过程)?

2)如果进程依次有如下资源请求

p1:资源请求Request(1,0,2)?

p4:资源请求Request(3,3,0)?

p0:资源请求Request(0,1,0)?

则系统如何进行资源分配,才能避免死锁?

解:

1)该系统状态是否安全,主要看能否找到一个进程完成序列.若能找到,系统只要按照这个序列为进程分配资源,所有进程就都可顺利完成;若找不到,系统状态就是不安全的.为此,可先求出进程的剩余请求矩阵.

进程资源最大需求已分配资源剩余资源请求

P0 7, 5, 3 0, 1, 0 7, 4, 3

P1 3, 2, 2 2, 1, 0 1, 1, 2

P2 9, 0, 2 3, 0, 2 6, 0, 0

P3 2, 2, 2 2, 1, 1 0, 1, 1

P4 4, 3, 3 0, 0, 2 4, 3, 1

系统剩余资源向量A=(3,2,2),在进程剩余资源请求矩阵中找,是否有一行,其值都小于或等于A.若有,选进程P1,满足它的全部资源请求,它在有限时间内能释放全部资源,并标记它为完成使系统剩余资源向量A=(5,3,2).之后再重复上述过程,从而找到了一个进城完成序列为:P1,P3,P4,P2,P0 (2’)。由此可见,系统状态是安全的(2’)。

2)p1:资源请求Request(1,0,2)时,由1)可知,可以立即满足它,使得A=(2,2,0),P1的分配向量为(3,1,2),其剩余向量变为(0,1,0). (2’)

p4:资源请求Request(3,3,0)时,由于系统剩余资源向量A=(2,2,0),显然不能满足它的请求,因为系统剩余资源向量A小于P4的请求(2’)

p0:资源请求Request(0,1,0)时,由于系统剩余资源向量A=(2,2,0),若满足它的请求,使得系统剩余资源向量A=(2,1,0)。之后,系统仍可以找到一个进程完成序列P1,P4,P0,P4,P2。故可以满足它的请求。(2’)

3系统有同类资源10个,进程p1、p2和p3需要该类资源的最大数量分别为8,6,7。它们使用资源的次序和数量如下图所示。

1)试给出采用银行家算法分配资源时,进行第5次分配后各进程的状态及各进程占用资源情况。

2)在以后的申请中,那次的申请可以得到最先满足?给出一个进程完成序列。

次序进程申请量次序进程申请量

1 P1 3 5 P

2 2

2 P2 2 6 P1 3

3 P3

4 7 P3 3

4 P1 2 8 P2 2

解:1)计算第5次分配后进程的状态和占用资源情况:(`5’=1’*5)

①p1申请3个,满足,系统还剩7个

②p2申请2个,满足(因为系统的7个可以使p2运行完),系统还剩5个

③p3申请4个,因为若满足它的请求,可能使以后的任何进程都不能运行完,故p3等

④p1申请2个,满足(系统还剩5个可以满足p1的最大请求),系统还剩3个

⑤p2申请2个,不能满足,等待。此时系统的分配情况如下:

p1分配5个后正在运行,p2分配2个后等待分配2个,p3等待分配4个,系统还剩3个。

2)p1接着运行,p1申请3个可满足(2’)。P1运行完成后,释放资源,使系统的资源数量变为8个。首先将p3唤醒,满足它的4个资源,系统还剩4个,可以唤醒p2,满足它的2个请求。系统还剩2个。

P3申请3个,不能满足,等待。

P2申请2个,系统满足它,p2接着运行;p2完成,释放资源,使系统资源变为6个。系统唤醒p3,满足它的资源请求,最终p3完成,释放资源,使资源数量恢复为10个。 找到的进程完成序列为p1,p2,p3。 (3’)

4设系统中有150个可用的同类资源。在某时刻系统中的进程已获得的资源和最大请求资源如下所示,请用银行家算法分别判断完成下列请求时,系统是否安全?若安全,请给出进程的完成序列。如不安全,请说明原因。

进程 最大需求量 当前已分配量

p1 70 25

p2 60 40

p3 60 45

p4 60 0

(1) 进程p4当前请求25个资源;

(2) 之后p4又提出35个资源的请求。

解答:系统当前剩余资源量为:150 – 25 – 40 – 45 = 40 (2’)

(1) 可以满足(2’),假定先分配p4的25个资源,系统还剩15个。将这15个资源可先分配

给p3,p3达到最大请求,释放60个;之后可以分配给其他任何进程,系统中的进程都能顺利完成。由此可见,p2请求的25个资源可以满足,且能找到完成序列:p3,p1,p2,p4,…(4’)

(2) 当p4再提出35个资源请求时,系统还剩15,显然不能满足它的请求,让其阻塞等待。

(2’)

5系统中有五个进程,分别为p1\p2\p3\p4\p5,四类资源分别为r1\r2\r3\r4。某一时刻,系统剩余资源向量A=(1,2,3,0)。

(1) 用银行家算法试判断系统当前状态是否安全?

(2) 当进程p3提出对资源r3的剩余请求时,能否满足她?

(3) 系统初始配置的各类资源分别为多少?

?????????????

???=6360

2580

653205712121MAX , ????????????????41002360441100012100 . 解答:系统剩余资源向量 A=(1, 2, 3, 0) 。现在需求出各进程的剩余资源请求矩阵: ???????

?????????=22600220

212105700021N E E D (2’) (1) 详细步骤省略。由于系统存在一个进程完成的安全序列P1\P3\P4\P2\P5(2’),故系统状态

是安全的(2’)。

(2) 进程P3提出对资源R3的剩余请求为1,由于系统剩余资源向量A=(1,2, 3, 0),故可以

假定分配给它。如果能找到一个安全序列,就可以真正进行分配。当分配给P3一个资源时,系统剩余资源向量A=(1 ,2 ,2 , 0)。由此可见,仍然可以找到一个与(1)相同的安全序列。故可以满足P3的请求。(3’)

(3)系统初始配置的各类资源分别为(3 ,9 , 12 , 12 )。(1’)

第3章死锁习题及答案

第三章死锁习题 一、填空题 1.进程的“同步”和“互斥”反映了进程间①和②的关系。 【答案】①直接制约、②间接制约 【解析】进程的同步是指在异步环境下的并发进程因直接制约而互相发送消息,进行相互合作、相互等待,使得各进程按一定的速度执行的过程;而进程的互斥是由并发进程同时共享公有资源而造成的对并发进程执行速度的间接制约。 2.死锁产生的原因是①和②。 【答案】①系统资源不足、②进程推进路径非法 【解析】死锁产生的根本原因是系统的资源不足而引发了并发进程之间的资源竞争。由于资源总是有限的,我们不可能为所有要求资源的进程无限地提供资源。而另一个原因是操作系统应用的动态分配系统各种资源的策略不当,造成并发进程联合推进的路径进入进程相互封锁的危险区。所以,采用适当的资源分配算法,来达到消除死锁的目的是操作系统主要研究的课题之一。 3.产生死锁的四个必要条件是①、②、③、④。 【答案】①互斥条件、②非抢占条件、③占有且等待资源条件、④循环等待条件 【解析】 互斥条件:进程对它所需的资源进行排它性控制,即在一段时间内,某资源为一进程所独占。 非抢占条件:进程所获得的资源在未使用完毕之前,不能被其它进程强行夺走,即只能由获得资源的进程自己释放。 占有且等待资源条件:进程每次申请它所需的一部分资源,在等待新资源的同时,继续占有已分配到的资源, 循环等待条件:存在一进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。 4.在操作系统中,信号量是表示①的物理实体,它是一个与②有关的整型变量,其值仅能由③原语来改变。 【答案】①资源,②队列,③P-V 【解析】信号量的概念和P-V原语是荷兰科学家E.W.Dijkstra提出来的。信号量是一个特殊的整型量,它与一个初始状态为空的队列相联系。信号量代表了资源的实体,操作系统利用它的状态对并发进程共享资源进行管理。信号量的值只能由P-V原语来改变。 5.每执行一次P原语,信号量的数值S减1。如果S>=0,该进程①;若S<0,则②该进程,并把它插入该③对应的④队列中。 【答案】①继续执行,②阻塞(等待),③信号量,④阻塞(等待) 【解析】从物理概念上讲,S>0时的数值表示某类资源可用的数量。执行一次P原语,意味着请求分配一个单位的资源,因此描述为S=S-1。当S<0时,表示已无资源,这时请求资源的进程将被阻塞,把它排在信号量S的等待队列中。此时,S的绝对值等于信号量队列上的阻塞的进程数目。 6.每执行一次V原语,信号量的数值S加1。如果①,Q进程继续执行;如果S<=0,则从对应的②队列中移出一个进程R,该进程状态变为③。 【答案】①S>0,②等待,③就绪 【解析】执行一次V原语,意味着释放一个单位的资源。因此,描述为S=S+1。当S<0时,表示信号量请求队列中仍然有因请求该资源而被阻塞的进程。因此,应将信号量对应的阻塞队列中的第一个进程唤醒,使之转至就绪队列。 7.利用信号量实现进程的①,应为临界区设置一个信号量mutex。其初值为②,表示该资源尚未使用,临界区应置于③和④原语之间。

第八章1 数据库复习

第八章并发控制 1.在数据库中为什么要并发控制? 答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。 2.并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况? 答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏”数据。 (1)丢失修改(Lost Update) 两个事务T1和T2读人同一数据并修改飞提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丢失。 (2)不可重复读(Non-Repeatable Read) 不可重复读是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。不可重复读包括三种情况:详见《概论》8.l的P66。 (3)读“脏”数据(Dirty Read) 读“脏”数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。 避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。 3.什么是封锁? 答:封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。 封锁是实现并发控制的一个非常重要的技术。 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做任何修改。在T释放A上的锁之前不能再读取和修改A。 5.如何用封锁机制保证数据的一致性? 答:DBMS在对数据进行读、写操作之前首先对该数据执行封锁操作,例如下图中事务T;在对A进行修改之前先对A执行Xlock(A),即对A加X锁。这样,当T2请求对A加X

计算机操作系统(习题集)第三章_答案

第三章处理机调度与死锁 一、单项选择题 1、操作系统中的作业管理是一种(A )。 A.宏观的高级管理 B.宏观的低级管理 C.系统刚开始加电 D.初始化引导完成 2、作业调度又称为[1A],它决定将哪些在外存储器上的处于[2D]状态的作业调入主机内存。 系统经作业调度程序选中一个或多个作业后,就为它们分配必要的内存、设备及软资源。然后控制权就交给了[3B],由[3]将它们变为一个或一组[4C],并[5A]。 供选择的答案: [1]:A、高级调度B、低级调度C、中级调度 D、进程调度 [2]:A、就绪B、阻塞C、提交D、后备 [3]:A、存储管理模块B、处理机管理模块C、文件管理模块D、设备管理模块 [4]:A、指令B、子程序C、进程D、程序段 [5]:A、把它们挂到就绪队列上B、为它们分配处理机 C、把它们挂到后备队列上 D、为它们分配设备 3、处于后备状态的作业存放在(A )中。

A.外存 B.内存 C.A和B D.扩展内存 4、在操作系统中,JCB是指(A )。 A.作业控制块 B.进程控制块 C.文件控制块 D.程序控制块 5、作业在系统中存在与否的唯一标志是(C)。 A.源程序 B.作业说明书 C.作业控制块 D.目的程序 6、按照作业到达的先后次序调度作业,排队等待时间最长的作业被优先调度,这是指(A)调度算法。 A.先来先服务法 B. 短作业优先法 C.时间片轮转法 D. 优先级法 7、在批处理系统中,周转时间是(B )。 A.作业运行时间 B.作业等待时间和运行时间之和 C.作业的相对等待时间 D.作业被调度进入内存到运行完毕的时间 8、为了对紧急进程或重要进程进行调度,调度算法应采用(B)。 A.先来先服务法 B. 优先级法 C.短作业优先法 D. 时间片轮转法 9、操作系统中,(A)负责对进程进行调度。 A.处理机管理 B. 作业管理 C.高级调度管理 D. 存储和设备管理

第八章 数据库并发控制练习和答案教学内容

第八章数据库并发控制 一、选择题 1.为了防止一个用户的工作不适当地影响另一个用户,应该采取()。 A. 完整性控制 B. 访问控制 C. 安全性控制 D. 并发控制 2. 解决并发操作带来的数据不一致问题普遍采用()技术。 A. 封锁 B. 存取控制 C. 恢复 D. 协商 3.下列不属于并发操作带来的问题是()。 A. 丢失修改 B. 不可重复读 C. 死锁 D. 脏读 4.DBMS普遍采用()方法来保证调度的正确性。 A. 索引 B. 授权 C. 封锁 D. 日志 5.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放, 这是()。 A. 一级封锁协议 B. 二级封锁协议 C. 三级封锁协议 D. 零级封锁协议 6.如果事务T获得了数据项Q上的排他锁,则T对Q()。 A. 只能读不能写 B. 只能写不能读 C. 既可读又可写 D. 不能读也不能写 7.设事务T1和T2,对数据库中地数据A进行操作,可能有如下几种情况, 请问哪一种不会发生冲突操作()。 A. T1正在写A,T2要读A B. T1正在写A,T2也要写A C. T1正在读A,T2要写A D. T1正在读A,T2也要读A 8.如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是()。 A. 一个是DELETE,一个是SELECT B. 一个是SELECT,一个是DELETE C. 两个都是UPDATE D. 两个都是SELECT 9.在数据库系统中,死锁属于()。 A. 系统故障 B. 事务故障 C. 介质故障 D. 程序故障 二、简答题 1. 在数据库中为什么要并发控制? 答:数据库是共享资源,通常有许多个事务同时在运行。 当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。 2. 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况? 答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏”数据。

第三章处理机调度与死锁 (2)

考点一调度的基本概念和基本准则 一、单项选择题 1.假设就绪队列中有10个进程,系统将时间片设为200ms,CPU进行进程切换要花费10ms。则系统开销所占的比率约为()。 A.1% B.5% C.10% D.20% 2.下面关于进程的叙述不正确的是()。 A.进程申请CPU得不到满足时,其状态变为就绪状态 B.在单CUP系统中,任一时刻有一个进程处于运行状态 C.优先级是进行进程调度的重要证据,一旦确定不能改变 D.进程获得处理机而运行的是通过调度实现的 二、综合应用题 1.分析调度的三种形式:短期调度、中期调度和长期调度的差别。 2.引起进程调度的原因有哪些? 3.高级调度与低级调度的主要任务是什么?为什么要引入中级调度? 4.选择调度方式和调度算法时,应遵循的准则是什么? 5.下列问题应由哪一些调度程序负责? (1)发生时间片中断后,决定将处理机分给哪一个就绪进程? (2)在短期繁重负荷情况下,应将哪个进程挂起? (3)一个作业运行结束后,从后备作业队列中选具备能够装入内存的作业。 6.CPU调度算法决定了进程执行的顺序。若有n 个进程需要调度,有多少种可能的调度算法顺序? 7.有些系统如MS-DOS没有提供并发处理手段。引入并发处理会导致操作系统设计的复杂性。试分析引入并发处理后导致的操作系统设计的三个主要的复杂性。 8.说明抢占式调度与非抢占式调度的区别。为什么说计算中心不适合采用非抢占式调度? 考点二典型调度算法 一、单项选择题 1.以下哪一种说法对剥夺式系统来讲结论正确()。 A.若系统采用轮转法调度进程,则系统采用的是剥夺式调度。 B.若现行进程要等待某一事件时引起调度,则该系统是剥夺式调度。 C.实时系统通常采用剥夺式调度。 D.在剥夺式系统中,进程的周转时间较之非剥夺式系统可预见。 2.既考虑作业的等待时间又考虑作业的执行时间的调度算法是()。 A.相应比高者优先 B.端作业优先 C.优先级调度 D.先来先服务 3.关于作业优先权大小的论述中,正确的论述是()。 A.计算型作业的优先级,应高于I/O型作业的优先权。 B.用户进程的优先权,应高于系统进程的优先权。 C.长作业的优先权,应高于短作业的优先权。 D.资源要求多的作业,其优先权应高于资源要求少的作业。 E.在动态优先权中,随着作业等待时间的增加,其优先权将随之下降。 F.在动态优先权中,随着进程执行时间的增加,其优先权降低。 二、综合应用题 1.设有一组进程,它们需要占用CPU的时间及优先级如下所示:

操作系统课后答案——第三章

第三章处理机调度与死锁 1. 高级调度与低级调度的主要任务是什么?为什么要引入中级调度? 高级调度的主要任务:用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程,分配必要的资源,然后,再将新创建的进程插入就绪队列上,准备执行。 低级调度的主要任务:用于决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行将处理机分配给该进程的具体操作。 引入中级调度的主要目的:是为了提高系统资源的利用率和系统吞吐量。 10. 试比较FCFS和SPF两种进程调度算法 相同点:两种调度算法都是既可用于作业调度,也可用于进程调度; 不同点:FCFS调度算法每次调度都是从后备队列中选择一个或是多个最先进入该队列的作业,将它们调入内存,为它们分配资源,创建进程,然后插入到就绪队列中。该算法有利于长作业/进程,不利于短作业/进程。 SPF调度算法每次调度都是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存中运行。该算法有利于短作业/进程,不利于长作业/进程。 15. 按调度方式可将实时调度算法分为哪几种? 按调度方式不同,可分为非抢占调度算法和抢占调度算法两种。 18. 何谓死锁?产生死锁的原因和必要条件是什么? a.死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进; b.产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法; c.必要条件是: 互斥条件,请求和保持条件,不剥夺条件和环路等待条件。 19.在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法是资源利用率最高? 解决/处理死锁的方法有预防死锁、避免死锁、检测和解除死锁,其中预防死锁方法最容易实现,但由于所施加的限制条件过于严格,会导致系统资源利用率和系统吞吐量降低;而检测和解除死锁方法可是系统获得较好的资源利用率和系统吞吐量。 20. 请详细说明可通过哪些途径预防死锁? a.摒弃"请求和保持"条件:系统规定所有进程开始运行之前,都必须一次性地申请其在整个运行过程所需的全部资源,但在分配资源时,只要有一种资源不能满足某进程的要求,即使其它所需的各资源都空闲,也不分配给该进程,而让该进程等待; b.摒弃"不剥夺"条件:系统规定,进程是逐个地提出对资源的要求的。当一个已经保持了某些资源的进程,再提出新的资源请求而不能立即得到满足时,必须释放它已经保持了的所有资源,待以后需要时再重新申请; c.摒弃"环路等待"条件:系统将所有资源按类型进行线性排序,并赋予不同的序号,且所有进程对资源的请求必须严格按序号递增的次序提出,这样,在所形成的资源分配图中,不可能再出现环路,因而摒弃了"环路等待"条件。 22. 在银行家算法中,若出现下述资源分配情:

第三章 调度和死锁

第三章调度和死锁 一、单选题 1、在就绪队列中有n个进程等待使用一个cpu,那么如果采用拥有同一种调度算法,总共可能有()种调度顺序 A. n B. n2 C. n( n-1)/2 D. n! 2、现在有三个同时到达的作业A,B,C,它们的执行时间分别是t1,t2,t3,且t1

第三章 处理机调度与死锁习题及答案 新

第三章处理机调度与死锁 一.选择题 1.下列算法中,操作系统用于作业调度的算法是。 A.先来先服务算法B.先进先出算法 C.最先适应算法D.时间片轮转算法 2.在批处理系统中,周转时间是指。 A.作业运行时间B.作业等待时间和运行时间之和 C.作业的相对等待时间D.作业被调度进入内存到运行完毕的时间3.在作业调度中,排队等待时间最长的作业被优先调度,这是指调度算法。 A.先来先服务B.短作业优先 C.响应比高优先D.优先级 4.下列算法中,用于进程调度的算法是。 A.最先适应B.最高响应比优先 C.均衡资源调度D.优先数调度 5.两个进程争夺同一个资源。 A.一定死锁B.不一定死锁 C.只要互斥就不会死锁D.以上说法都不对 6.下列各项中,不是进程调度时机的是。 A.现运行的进程正常结束或异常结束B.现运行的进程从运行态进入就绪态C.现运行的进程从运行态进入等待态D.有一进程从等待态进入就绪态 7.进程调度算法有多种,不是进程调度算法。 A.先来先服务调度算法B.最短查找时间优先调度算法 C.静态优先数调度算法D.时间片轮转调度算法 8.作业调度程序从状态的队列中选取适当的作业投入运行。 A.就绪B.提交C.等待D.后备 9.在实时操作系统中,经常采用调度算法来分配处理器。 A.先来先服务 B.时间片轮转 C.最高优先级 D.可抢占的优先级10.采用时间片轮转调度算法主要是为了。 A.多个终端都能得到系统的及时响应 B.先来先服务 C.优先权高的进程及时得到调度 D.需要CPU时间最短的进程先做 11.下面关于优先权大小的论述中,不正确的论述是。 A.计算型作业的优先权,应低于I/O型作业的优先权 B.系统进程的优先权应高于用户进程的优先权 C.资源要求多的作业,其优先权应高于资源要求少的作业 D.在动态优先权时,随着进程运行时间的增加,其优先权降低 12.产生死锁的原因是有关。 A.与多个进程竞争CPU B.与多个进程释放资源 C.仅由于并发进程的执行速度不当 D.除资源分配策略不当外,也与并发进程执行速度不当 13.有关产生死锁的叙述中,正确的是。 A.V操作可能引起死锁B.P操作不会引起死锁 C.PV操作使用得当不会引起死锁D.以上说法均不正确 14.有关死锁的论述中,是正确的。 A.“系统中仅有一个进程进入了死锁状态”

第八章数据流计算机结构

第八章数据流计算机结构 为了设计高性能的计算机系统结构,其中一个方法是突破冯·诺依曼型的结构,采用数 据流执行方式而形成的数据流计算机。冯·诺依曼型计算机的基本特点是在程序计数器的集中控制下顺序地执行指令,因此是以控制流(control flow)方式工作的.美国MIT实验室的Jack Dennis 及其助手于1972年首先提出了数据流模型,并证明由此而设计的数据流计算机,其性能价格比高,较好的跟踪工艺技术进步的速度,能较方便地在应用领域中进行可编程应用. 第一节数据流计算机的基本原理 传统的冯·诺依曼计算机与数据流计算机的工作原理根本不同,它是在中央控制器控制下顺序执行的,而数据流计算机是在数据的可用性控制下并行执行的.数据流计算机里没有指令计数器,其指令执行靠数据记号(数据令牌data token)的可用性来进行,也就是指令的执行由数据来驱动,把控制流变为数据流,数据流计算机里没有常规的变量概念,也就不存在共享数据单元的问题,程序顺序性仅是指令部内部数据相关性控制,也就是只要当操作所需要的数据可用时,即启动指令执行(异步性)和所有操作都具有函数性,即所有指令都可以任何次序并发执行.正是这些特性,数据流计算机可以使许多指令同时异步执行,预计隐含的并行度是很高的. 总之,数据流计算机当指令所需数据可用时,该指令即可执行.这说明指令的操作不受其他控制的约束.任何一条指令只要它所需要的数据齐全,且可用时都可以执行.数据流计算中没有变量的概念,也不设置状态,在指令间直接传送数据,因此操作结果不产生副作用,不改变机器的状态.从而具有纯函数的特点.由此可见数据流计算机,第一,对指令来说,摆脱了外界强加于它的控制,多条指令在数据可用性驱动下同时并行;第二,它可以直接支持函数语言,不仅有利于开发程序中各级的并发性,而且也有利于改善软件环境,提高软件的生产力. 第二节数据流计算机的指令 一、数据流计算机的指令 在数据流计算机中,一条指令包含操作包(operation packet )和数据令牌(data token)两部分,如图8-1所示. 操作包(或指令包─instruction cell)通常由操作码、源操作数、后继指令地址组成,又可以看成是由操作型和受处理单元影响的部分则包括已经接收到的操作数值、数据令牌已到的标志、正在等待的数据令牌等信息.数据包在存储器中将占据一定大小的空间. 数据令牌通常由结果值和目标地址等组成.数据令牌的实质是一种表示某一操作数或参数已准备就绪的标志.一旦执行某一操作的所有操作数令牌到齐,则标志这一操作是什么操作,以及操作结果所得出的数据令牌,将发送到哪一些等待此数据令牌的操作的第几个操作数部位等有关信息,都将作为一个消息包(message packet),传送到处理单元或操作部分予以执行.这样的消息包也称为操作包. 二、数据流计算机指令的执行 在数据流计算机中,用数据令牌传送并激活指令,用一种有向图表示数据流程序.一条指令由一个操作符、一个或几个操作数及后继指令地址组成,后继指令地址也可以有几个,它的作用是把本指令的执行结果送往需要它的地指令中,例如X=(a+ b)*(a-b)这个函数中,其数据流程图如图8-2所示,为了表示数据在程序图中的流动状态,利用图中实心的圆点代表

第三章处理机调度与死锁习题及答案新

第三章处理机调度与死锁 ?选择题 1下列算法中,操作系统用于作业调度的算法是 ________________ 。 A .先来先服务算法 B .先进先出算法 C .最先适应算法 D .时间片轮转算法 2.在批处理系统中,周转时间是指 ______________ 。 A .作业运行时间 B .作业等待时间和运行时间之和 C .作业的相对等待时间 D .作业被调度进入内存到运行完毕的时间 3?在作业调度中,排队等待时间最长的作业被优先调度,这是指 __________ 调度算法。 A .先来先服务 B .短作业优先 C .响应比高优先 D .优先级 4.下列算法中,用于进程调度的算法是 ______________ 。 A .最先适应 B .最高响应比优先 C .均衡资源调度 D .优先数调度 5?两个进程争夺同一个资源 ____________ ■ A .一定死锁 C .只要互斥就不会死锁 6?下列各项中,不是进程调度时机的是 ______________ 。 A .现运行的进程正常结束或异常结束 B .现运行的进程从运行态进入就绪态 C .现运行的进程从运行态进入等待态 D .有一进程从等待态进入就绪态 7. ____________________________ 进程调度算法有多种, 不是进程调度算法。 A .先来先服务调度算法 B .最短查找时间优先调度算法 C .静态优先数调度算法 D .时间片轮转调度算法 8. _____________________ 作业调度程序从 状态的队列中选取适当的作业投入运行。 A .就绪 B .提交 C .等待 D .后备 9?在实时操作系统中,经常采用 ___________ 调度算法来分配处理器。 A. 先来先服务 B.时间片轮转 C.最高优先级 D.可抢占的优先级 10. _________________________________________ 采用时间片轮转调度算法主要是为了 。 A .多个终端都能得到系统的及时响应 B .先来先服务 C .优先权高的进程及时得到调度 D .需要CPU 时间最短的进程先做 11. __________________________________________________ 下面关于优先权大小的论述中,不正确的论述是 ___________________________________________________________ 。 A .计算型作业的优先权,应低于 I/O 型作业的优先权 B .系统进程的优先权应高于用户进程的优先权 C .资源要求多的作业,其优先权应高于资源要求少的作业 D .在动态优先权时,随着进程运行时间的增加,其优先权降低 12. 产生死锁的原因是 有关。 A .与多个进程竞争CPU B .与多个进程释放资源 C .仅由于并发进程的执行速度不当 D .除资源分配策略不当外,也与并发进程执行速度不当 13. ______________________________________ 有关产生死锁的叙述中,正确的是 。 A . V 操作可能引起死锁 B . P 操作不会引起死锁 C . PV 操作使用得当不会引起死锁 14. ___________________________ 有关死锁的论述中, 是正确的。 B .不一定死锁 D .以上说法都不对 D .以上说法均不正确

第八章+练习题及答案

第八章练习题及答案 1.什么是中断?什么叫中断处理?什么叫中断响应? 2.什么叫关中断?什么叫开中断?什么叫中断屏蔽? 3.描述中断控制方式时的CPU动作过程。 4.设备管理中为什么要引入缓冲? 5.何谓虚拟设备,实现虚拟设备是依赖的关键技术是什么? 6.设备分配的原则是什么?设备分配的方式以及常用的分配策略是什么? 7.在I/O设备控制的发展过程中,最主要的推动因素是____,提高I/O速度和设备利用率, 在操作系统中主要依靠____功能;使用户所编制的程序与实际使用的物理设备无关是由____功能实现的。 8.为什么要引入设备的独立性?如何实现设备的独立性? 9.SPOOLING的组成和工作原理? 10.磁盘请求以10、22、20、2、40、6、38柱面的次序到达磁盘驱动器。移动臂移动一个 柱面需要6ms,假定磁臂起始时定位于柱面18,而且运动趋势为由里向外移动,则采用电梯算法时需要总的查找时间为多少ms? 参考答案: 1.答:中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理的事件, 使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行的过程。 CPU转去执行相应的事件处理程序的过程称为中断处理。 CPU收到中断请求后转到相应的事件处理程序称为中断响应。 2.答:把CPU内部的处理机状态字PSW的中断允许位清除从而不允许CPU响应中断叫关中 断。设置CPU内部的处理机状态字PSW的中断允许位,从而允许CPU响应中断叫做开中断。中断屏蔽是指在中断请求产生之后,系统用软件方式有选择地封锁部分中断而允许其余部分的中断仍能得到响应。 3.答:(1)首先,CPU检查响应中断的条件是否满足。如果中断相应条件不满足,则中断 处理无法进行。(2)如果CPU响应中断,则CPU关中断。(3)保存被中断进程现场。(4)分析中断原因,调用中断处理子程序。(5)执行中断处理子程序。(6)退出中断,恢复被中断进程的现场或调度新进程占据处理机。(7)开中断,CPU继续执行。 4.答:1)缓和CPU与I/O设备间速度不匹配的矛盾;2)减少中断CPU次数,放宽对中断 响应的要求;3)提高CPU、通道和I/O设备之间的并行性。 5.答:虚拟设备是指通过某种虚拟技术,将一台物理设备变换成若干台逻辑设备,后者实 际上并不存在,只是给用户一种感觉。实现的关键技术是分时技术。 6.答:设备分配的原则是:1)充分发挥设备的使用效率;2)避免不合理的分配算法造成进 程死锁;3)把用户程序和具体的物理设备隔离开来。从进程安全性上考虑,分配方式有:静态分配方式和动态分配方式。常用的分配策略有:先来先服务和优先级高者优先。 7.答:减少主机对I/O的干预;缓冲管理;设备独立性。 8.答:引引入设备独立性,可使应用程序独立于物理设备。此时,进程只需用逻辑设备名 去请求使用某类设备,当系统中有多台该类设备时,系统可将任一台分配给进程,可显著地提高资源利用率和可适应性。独立性还可使用户程序独立于设备类型。为实现设备独立性,在应用程序中应使用逻辑设备名。系统应为每个用户或进程配置一张用于联系逻辑设备和物理设备的映射表,内容有逻辑设备名、物理设备名和驱动程序的入口地址。

第三章死锁

1死锁 是指在一个进程集合中的每个进程都在等待仅由该集合中的另一个进程才能引发的事件而无限期地僵持下去的局面。 2饥饿 在系统中,每个资源占有者都在有限时间内释放它所占有的资源,但资源中存在某些申请者由于某种原因却永远得不到资源的一种错误现象。 3死锁防止 要求进程申请资源时遵循某种协议,从而打破产生死锁的四个必要条件中的一个或几个,保证系统不会进入死锁状态。 4死锁避免 对进程所发出的每一个申请资源命令加以动态地检查,并根据检查结果决定是否进行资源分配。就是说,在资源分配过程中若预测有发生死锁的可能性,则加以避免。这种方法的关键是确定资源分配的安全性。 5安全序列 针对当前分配状态来说,系统至少能够按照某种次序为每个进程分配资源(直至最大需求),并且使他们依次成功地运行完毕,这种进程序列{p1,p2,…,pn}就是安全序列。 简答题 1计算机系统中产生死锁的根本原因是什么?死锁发生的四个基本条件是什么? 答: 计算机系统中产生死锁的根本原因是:资源有限且操作不当。死锁发生的四个基本条件有互斥条件、请求保持条件(占有且等待条件)、非剥夺条件(不可抢占条件)和环路条件(循环等待条件)。 2简述发生死锁的四个必要条件? 答:四个必要条件是:互斥条件、占有且等待条件(请求保持条件)、不可抢占条件(非剥夺条件)和循环等待条件(环路条件)。 互斥条件——某个资源在一段时间内只能由一个进程占有,不能同时被两个及其以上的进程占有。 占有且等待条件——进程至少已经占有一个资源,但又申请新的资源。 不可抢占条件——一个进程所占有的资源再用完之前,其他进程不能强行夺走资源,只能由该进程用完之后主动释放。 循环等待条件——存在一个进程等待序列{P1,P2,…,Pn},其中,P1等待P2所占有的某个资源,P2等待P3所占有的某个资源,……,而Pn等待P1所占有的某个资源,从而形成一个进程循环等待。 3什么是死锁?解决死锁的方法一般有那几种?

软工题第八章

第八章习题 一、选择题 1.软件复用的目的是要使软件开发工作进行得( A )。软件复用的实际效益除了( B )之外,在企业的经营管理方面也可望达到理想的效益。 新的应用软件开发技术和工具是以( C )作为关键,复用大粒度的( D ),为的是快速开发应用软件。这些新技术包括微软的( E )、( F )、( G ),SUN公司的Java,OMG公司的CORBA、IDL等。 供选择的答案: A. ①更简捷②更方便③更快、更好、更省④更丰富 B. ①复用率②功能扩充③效率④空间利用率 C, D. ①软件②固件③构件④属性 ⑤对象⑥事物⑦数据⑧代码 E~G. ① office ② Visual Basic ③ Active X ④ Photoshop ⑤ OLE ⑥ Fortran ⑦ COBOL ⑧ Delphi 2. 以往的软件工程技术不能满足复用的需要,体现在工程、( A )、( B )、经营业务等4个方面。“工程”指软件开发工程,表现在缺乏( C )手段,缺乏( D )构件,缺乏对潜在可复用的( E ),缺乏实施复用的工具。 供选择的答案: A, B. ①需求②过程③环境④组织管理 C ~ E. ①复用②可靠性③灵活性④界定 ⑤工具⑥互连性 3. 软件体系设计的一个中心问题是能否( A ),以及采用何种软件体系结构风格。有原则地使用体系结构风格可带来一些实际的好处: (1) 它促进了对设计的( B ); (2) 它可以带来显著的( C )(体系结构风格的不变部分使它们可以共享同一个实现代码); (3) 只要系统是使用常用的、规范的方法组织起来的,就可以让其它设计者很容易地理解软件的体系结构; (4) 对标准或规范风格的使用也支持了( D ),例如像CORBA这样的面向对象的架构和基于事件机制的工具的集成; (5) 在限制了设计空间的情况下体系结构风格通常允许进行特殊的与风格有关的分析; (6) 通常可以对特定的风格提供( E )手段。 供选择的答案: A ~ C. ①使用特定的体系模式②使用重复的体系模式 ③复用④专用⑤代码复用⑥结构复用

二级封锁协议能否避免死锁

竭诚为您提供优质文档/双击可除二级封锁协议能否避免死锁 篇一:数据库中的封锁协议 并发产生的数据不一致有:丢失修改,读脏数据,不可重复读 两种锁:s锁(共享锁,读锁),x锁(排它锁,写锁)加s锁后,本事务就只能读取数据而不能修改。其他事务可以加s锁来读取数据,但不能加x锁修改数据。 即:只要数据上有s锁,任何事务都只能再对其加s锁读取,而不能加x锁修改。 加x锁后,本事务可以读取和修改数据。其他事务不能加任何锁,从而也不能读取和修改数据。 封锁协议有:三级封锁协议以及两段锁协议 一级封锁协议:写数据前加x锁,事务结束释放x锁。解决丢失修改问题。 二级封锁协议:一级之上,读数据前加s锁,读完释放s锁。一级之上解决读脏数据问题。三级封锁协议:二级之上,事务结束才释放s锁。二级之上解决不可重复读问题。 两段锁协议(2pl):读数据前加s锁,写数据前加x锁,

事务结束时才释放。当要修改数据时,事务应对已加的s锁升级为x锁。 事务释放一个封锁后,不再申请其它任何封锁。即一个事务如果对不同数据加锁,解锁都是放到后面一块儿进行的。注意,以前一直弄错,这儿是一个事务,如果是并发事务,a事务的解锁可以放到b事务之前。 两段锁协议解决的是事务并发时的正确调度,并不能解决死锁。 注意:如果两个事务都对同一数据有读和写,那么可以不加s锁,直接上x锁。 篇二:并发控制课后答案 第八章并发控制 习题解答和解析 1.1.在数据库中为什么要并发控制 答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修 改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理 系统必须提供并发控制机制。 2.2.并发操作可能会产生哪几类数据不一致用什么方 法能避免各种不一致的情况答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读"脏"数据。

第3章处理机调度与死锁-选择题

第3章处理机调度与死锁(处理机调度)-选择题 1.时间片轮转调度算法是为了() A.多个用户能及时干预系统 B.使系统变得高效 C.优先级较高的进程得到及时响应 D.需要CPU时间最少的进程最先做 2.在单处理器多进程系统中,进程什么时候占用处理器及决定占用时间的长短是由()决定的 A.进程相应的代码长度 B.进程总共需要运行的时间 C.进程特点和进程调度策略 D.进程完成什么功能 3.()有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业。 A.时间片轮转调度算法 B.先来先服务调度算法 C.短作业(进程)优先算法 D.优先权调度算法 4.下面有关选择进程调度算法的准则中,不正确的是() A.尽快响应交互式用户的请求 B.尽量提高处理器利用率 C.尽可能提高系统吞吐量 D.适当增长进程就绪队列的等待时间 5.设有4个作业同时到达,每个作业的执行时间均为2h,它们在一台处理器上按单道式运行, 则平均周转时间为() A.1h B.5h C.2.5h D.8h 6.若每个作业只能建立一个进程,为了照顾短作业用户,应采用();为了照顾紧急作业用户,应采用();为了能实现人机交互,应采用();而能使短作业、长作业和交互作业用户都满意,应采用() A.FCFS调度算法 B.短作业优先调度算法 C.时间片轮转调度算法 D.多级反馈队列调度算法 E.剥夺式优先级调度算法 7.()优先级是在创建进程时确定的,确定之后在整个运行期间不再改变 A.先来先服务 B.动态 C.短作业 D.静态

8.现在有三个同时到达的作业J1、J2和J3,它们的执行时间分别是T1、T2、T3且T1P2>P3 B. P3>P2>P1 C. P2>P1=P3 D. P1>P2=P3 11.采用时间片轮转调度算法分配CPU时,当处于运行态的进程完一个时间片后,它的状态是()状态 A.阻塞 B.运行 C.就绪 D.消亡 12.一个作业8:00到达系统,估计运行时间为1h。若10:00开始执行该作业,其响应比是() A.2 B.1 C.3 D.0.5 13.关于优先权大小的论述中,正确的是() A.计算型作业的优先权,应高于I/O型作业的优先权 B.用户进程的优先权,应高于系统进程的优先权 C.在动态优先权中,随着作业等待时间的增加,其优先权将随之下降 D.在动态优先权中,随着进程执行时间的增加,其优先权降低

第八章课后习题参考答案

1. 试说明运输层的作用。运输层的通信和网络层的通信有什么重要区别?为什么运输层是必不可少的?网络层提供数据报或虚电路服务对上面的运输层有何影响? 答:(1)在TCP/IP协议栈中,运输层是面向用户功能的最低层,同时又是面向通信功能的最高层,是资源子网与通信子网的界面和桥梁,负责端到端的通信。 (2)运输层必须提供端到端的可靠的传输服务及流量控制、差错控制和拥塞控制服务,同时提供服务点寻址等其它运输层的服务;而网络层主要提供路由功能,只负责将分组送到目标主机,但它只是提供尽力传输服务,不能保证数据通信的正确性,同时也不进行拥塞控制。 (3)端到端之间的通信实际上是进程之间的通信,网络层不负责将分组送到目标主机,而不负责送到对应的目标进程,这项任务只能由运输层完成。运输层同时还提供“复用”和“分用”功能,可将上层不同进程发送来的数据使用同一运输层协议传送,在目标方,再将这些不同进程的数据分发到不同的目标进程,完成数据通信。 (4)若通信子网所提供的服务越多,运输协议就可以做得越简单。若网络层提供虚电路服务,那就能保证报文无差错、不丢失、不重复且按序地进行交付,因而运输协议就很简单。但若网络层提供的是不可靠的数据报服务,则就要求主机有一个复杂的运输协议。在极端情况下可以不需要运输层。 2. 当应用进程使用面向连接的TCP和无连接的IP时,这种传输是面向连接的还是无连接的? 答:当应用进程使用IP协议传输时,由于IP只是为TCP提供尽力而为的网络转发能力,是不可靠的,可能丢包或乱序,这时传输是无连接的。应用程序使用TCP协议时,TCP实现了端到端的可靠的传输控制、差错控制服务,这时传输便是面向连接的传输。 3. 接收方收到有差错的UDP用户数据报时应如何处理? 答:(1)丢弃;(2)附上差错警告信息,传给上层。 6. 解释为什么突然释放运输连接就可能丢失用户数据而使用TCP的连接释放方法就可保证不丢失数据。 答:当主机1和主机2之间连接建立后,主机1发送了一个TCP数据段并正确抵达主机2,接着主机1发送另一个TCP数据段,这次很不幸,,主机2在收到第二个TCP数据段之前发出了释放连接请求,如果就这样突然释放连接,显然主机1发送的第二个TCP报文段会丢失。而使用TCP的连接释放方法,主机2发出了释放连接的请求,那么即使收到主机1的确认后,只会释放主机2到主机1方向的连接,即主机2不再向主机1发送数据,而仍然可接收主机1发来的数据,所以可保证不丢失数据。 7. 试用具体例子说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况。 答:我们知道,3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。 现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机A和B之间的通信,假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。

数据库 第八章 并发控制

并发控制 习题 1.在数据库中为什么要并发控制? 2.并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况? 3.什么是封锁? 4.基本的封锁类型有几种?试述他们的含义。 5.如何用封锁机制保证数据的一致性? 6.什么是封锁协议?不同级别的封锁协议的主要区别是什么? 7.不同封锁协议与系统一致性级别的关系是什么? 8.什么是活锁?什么是死锁? 9.试述活锁的产生原因和解决方法。 10.请给出预防死锁的若干方法。 11.请给出预测死锁发生的一种方法,当发生死锁后如何接触死锁? 12.什么样的并发调度是正确的调度? 13.设T1,T2,T3是如下3个事务: T1:A:=A+2; T2:A:=A*2; T3:A:= A**2;(A A2) 设A的初值为0。 (1)若这3个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。 (2)请给出一个可串行化的调度,并给出执行结果。 (3)请给出一个非串行化的调度,并给出执行结果。 (4)若这3个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度。 (5)若这3个事务都遵守两段锁协议,请给出一个产生死锁的调度。 14.试述两段锁协议的概念。 15.试证明,若并发事务遵守两段锁协议,则对这些事务的并发调度是可串行化的 16.举例说明,对并发事务的一个调度是可串行化的,而这些事务不一定遵守两段锁协议。 17.为什么要引进意向锁?意向锁的含义是什么? 18.试述常用的意向锁:IS锁、IX锁、SIX锁,给出这些锁的相容矩阵。 19.理解并解释下列术语的含义:封锁、活锁、死锁、排他锁、共享锁、并发事务的调度、可串行化的调度、两段锁协议。 *20.试述你了解的某一个实际的DBMS产品的并发控制机制。 参考答案 1.答:数据库是共享资源,通常有许多个事务同时在运行。 当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。 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读到的数据就为“脏”数据,即不正确的数据。 避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。

相关主题
文本预览
相关文档 最新文档