《操作系统》习题集参考答案:第6章 死锁

合集下载

操作系统--精髓与设计原理(第八版)第六章复习题答案

操作系统--精髓与设计原理(第八版)第六章复习题答案

操作系统--精髓与设计原理(第⼋版)第六章复习题答案操作系统--精髓与设计原理(第⼋版)第六章复习题答案6.1 给出可重⽤资源和可消耗资源的例⼦。

可重⽤资源是指⼀次仅供-⼀个进程安全使⽤且不因使⽤⽽耗尽的资源。

进程得到资源单元并使⽤后,会释放这些单元供其他进程再次使⽤。

可重⽤资源的例⼦包括处理器、I/O 通道、内存和外存、设备,以及诸如⽂件、数据库和信号量之类的数据结构。

可消耗资源是指可被创建(⽣产)和销毁(消耗)的资源。

某种类型可消耗资源的数量通常没有限制,⽆阻塞⽣产进程可以创建任意数量的这类资源。

消费进程得到-⼀个资源时,该资源就不再存在。

可消耗资源的例⼦有中断、信号、消息和I/O缓冲区中的信息。

6.2 产⽣死锁的三个必要条件是什么?互斥。

⼀次只有⼀个进程可以使⽤⼀个资源。

其他进程不能访问已分配给其他进程的资源。

占有且等待。

当⼀个进程等待其他进程时,继续占有已分配的资源。

不可抢占。

不能强⾏抢占进程已占有的资源。

6.3 产⽣死锁的 4个条件是什么?循环等待。

存在⼀个闭合的进程链,每个进程⾄少占有此链中下⼀个进程所需的⼀个资源。

6.4 如何防⽌占有且等待条件?为预防占有且等待的条件,可以要求进程⼀次性地请求所有需要的资源,并阻塞这个进程直到所有请求都同时满⾜。

这种⽅法有两个⽅⾯的低效性。

⾸先,⼀个进程可能被阻塞很长时间,以等待满⾜其所有的资源请求。

⽽实际上,只要有⼀部分资源,它就可以继续执⾏。

其次,分配给⼀个进程的资源可能会在相当长的⼀段时间不会被该进程使⽤,且不能被其他进程使⽤。

另⼀个问题是⼀个进程可能事先并不知道它所需要的所有资源。

6.5 给出防⽌不可抢占条件的两种⽅法。

1. 占有某些资源的⼀个进程进⼀步申请资源时若被拒绝,则该进程必须释放其最初占有的资源,必要时可再次申请这些资源和其他资源。

2. ⼀个进程请求当前被另⼀个进程占有的⼀个资源时,操作系统可以抢占另⼀个进程,要求它释放资源。

(只有在任意两个进程的优先级都不同时,这种⽅案才能预防死锁)。

《操作系统》习题集:第6章 死锁

《操作系统》习题集:第6章 死锁

第6章死锁-习题集一、选择题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. 系统中没有采用SPOOLing技术B. 使用的P、V操作过多C. 有共享资源存在D. 资源分配不当7.产生死锁的4个必要条件是:互斥、()、循环等待和不剥夺。

【*,联考,?】A. 请求与阻塞B. 请求与保持C. 请求与释放D. 释放与阻塞8.一个进程在获得资源后,只能在使用完资源后由自己释放,这属于死锁必要条件的()。

【*,联考】A. 互斥条件B. 请求和释放条件C. 不剥夺条件D. 环路等待条件9.死锁的预防是根据()而采取措施实现的。

【*,★,联考】A. 配置足够的系统资源B. 使进程的推进顺序合理C. 破坏死锁的四个必要条件之一D. 防止系统进入不安全状态10.资源的有序分配策略可以破坏死锁的()条件。

【**,★,联考】A. 互斥B. 请求和保持C. 不剥夺D. 循环等待11.发生死锁的必要条件有4个,要防止死锁的发生,可以通过破坏这4个必要条件之一来实现,但破坏()条件是不太实际的。

操作系统第6章习题带答案

操作系统第6章习题带答案

操作系统第6章习题带答案第六章一、问答题1、什么是文件的逻辑结构?什么是文件的物理结构?2、为了能够查找到文件的位置,在采用连续文件、链接文件和索引文件时,在目录中需要登记哪些内容?3、磁盘容错技术可以分为哪三级?4、目前最广泛采用的目录结构是哪种?它有什么优点?5、文件在磁盘上存放的形式有几种?它们与存取方法有何关系?物理结构顺序结构链接结构索引结构直接文件存取方法顺序顺序(显式\隐式)顺序顺序随机(显式)随机随机按键6、简述以下移臂调度算法的思想:先来先服务调度算法、最短查找时间优先算法、电梯调度算法。

7、简述文件控制块中包含的内容。

8、假设多个用户共享一个文件目录系统,用户甲要用文件A、B、C、E,用户乙要用文件A、D、E、F。

已知用户甲的文件A与用户乙的文件A实际上不是同一个文件;用户甲的文件C与用户乙的文件F 实际上是同一个文件;甲、乙两用户的文件E是同一个文件。

试问你是否可以拟定一种文件目录组织方案,使得甲、乙两用户既能共享文件而又不造成混乱?答:采用多级目录结构,文件目录分解为基本目录和符号目录,只要在不同文件符号目录中使用相同文件内部标识符,甲、乙两用户既能共享文件而又不造成混乱。

画图并简要说明二、计算题1、假定盘块的大小为1KB,硬盘的大小为10GB,采用显示链接分配方式时,请问文件分配表只是占用多大空间?磁盘块数:10GB/1KB=10M表达10M盘块,FAT每项至少需要24位,即3个字节所以文件分配表至少占用3B*10M=30M2、系统中磁头停留在磁道号为70的磁道上,这时先后有4个进程提出了磁盘访问请求,要访问磁盘的磁道号按申请到达的先后顺序依次为:45,68,28,90。

移动臂的运动方向:沿磁道号递减的方向移动。

若分别采用FCFS磁盘调度算法、SSTF算法,SCAN算法时,所需寻道长度分别为多少(走过多少柱面)?0号磁道是最里面还是最外面的一个磁道?提示:FCFS磁盘调度算法:70->45->68->28->90SSTF算法:70->68->90->45->28SCAN算法:70->68->->45->28->903、某系统采用UNIX操作系统的专用块内容为:空闲块数3,然后依次登记的空闲块号为77,89,60,问此时若一个文件A需要5个盘块,系统进行分配后有个文件B被删除,它占用的盘块块号为100,101,109,500,则回收这些盘块后专用块的内容是什么?写出整个分析过程。

操作系统第六章作业答案

操作系统第六章作业答案

赵盈盈 2011210593 第六章作业1、什么是文件系统?其主要功能是什么?答:文件系统:是操作系统中统一管理信息资源的一种软件。

它管理文件的存储、检索、更新,提供安全可靠的共享保护手段,并且方便用户使用。

从用户的角度来看,文件系统是用户在计算机上存储信息、使用信息的接口。

从系统的角度来看,文件系统是负责文件存储空间管理的机构。

主要功能:从用户角度:实现“按名存取”从系统角度:是对文件存储器的存储空间进行组织、分配、负责文件的存储并对存入的文件实施保护、检索的一组软件集合。

(1)、统一管理文件的存储空间,实施存储空间的分配和回收。

(2)、实现文件从名字空间到外存地址的映射,即实现文件的按名存取,以对用户透明的方式管理名字空间。

(3)、实现文件的共享,并提供文件的保护和保密措施。

(4)、向用户提供一个方便实用的接口(提供对文件系统操作命令,以及提供对文件的操作命令,信息存取、加工)。

(5)、系统维护及向用户提供相关信息。

(6)、保持文件系统的执行效率。

文件操作系统接口中占的比例最大,用户使用操作系统的感觉在很大程度上取决于对文件系统的使用效果。

(7)、提供I/O统一接口。

2、文件的逻辑结构形式有哪两种?答:从用户角度看,按文件的逻辑结构可以把文件分为两大类:无结构的字符流式文件和记录式文件(定长记录文件和不定长记录文件)。

3、对文件的存取有哪两种基本方法?各有什么特点?答:文件的存取方法是指读取外存上一个物理块的方法,常用的存取方法有两种:顺序存取和随机存取。

顺序存取特点:严格按照外存中物理记录的排列顺序依次进行存取的,如果当前存取的记录为Ri,则下次存取的记录自动地确定为Ri+1。

随机存取特点:又名为直接存取,它允许用户随意寻去外存文件中的任意一个物理记录,而不管上次存取了哪一个记录。

4、什么是连续文件?设某文件由四个逻辑记录组成,每个逻辑记录的大小与磁盘块大小相等,均为512B。

若第一个逻辑记录存放在第100号磁盘块上,试画出此连续文件的结构。

操作系统课后习题总结(清华大学出版社)

操作系统课后习题总结(清华大学出版社)

习题二参考答案4、答:在生产者—消费者问题中,Producer进程中P(empty)和P(mutex)互换先后次序。

先执行P(mutex),假设成功,生产者进程获得对缓冲区的访问权,但如果此时缓冲池已满,没有空缓冲区可供其使用,后续的P(empty)原语没有通过,Producer阻塞在信号量empty 上,而此时mutex已被改为0,没有恢复成初值1。

切换到消费者进程后,Consumer进程执行P(full)成功,但其执行P(mutex)时由于Producer正在访问缓冲区,所以不成功,阻塞在信号量mutex上。

生产者进程和消费者进程两者均无法继续执行,相互等待对方释放资源,会产生死锁。

在生产者和消费者进程中,V操作的次序无关紧要,不会出现死锁现象。

5、答:6、答:设信号量sp用于控制对盘子的互斥操作,信号量sg1用于计数,表示盘子中的苹果数目,信号量sg2用于计数,表示盘子中的桔子数目。

Semaphore sp=1,sg1=0,sg2=0dad(){while(1){ prepare an apple;p(sp);put an apple on the plate;v(sg2);}}mom(){while(1){prepare an orange;p(sp);put an orange on the plate;v(sg1);}}son(){while(1){p(sg1);take an orange from the plate;v(sg);eat the orange;}}daughter(){while(1){p(sg2);take an apple from the plate;v(sg);eat the apple;}}7、答:为了使写者优先,在原来的读优先算法基础上增加一个初值为1的信号量S,使得当至少有一个写者准备访问共享对象时,它可使后续的读者进程等待写完成;初值为0的整型变量writecount,用来对写者进行计数;初值为1的互斥信号量wmutex,用来实现多个写者对writecount的互斥访问。

操作系统第六章

操作系统第六章

1、产生死锁的四个条件是什么?
互斥、占有且等待、不可抢占、循环等待
2、死锁避免、检测和预防之间的区别是什么?
死锁避免通过限制进程启动或资源分配,预防通过运用某种策略来消除产生死锁的四个条件之一,来保证不让死锁状态出现;而检测允许死锁出现,定期检测死锁的存在并从死锁中恢复出来。

3、说明:
6个进程:P0…P5
4种资源:A(15)、B (6)、C (9)、D (10)
T0时刻状态如图所示
问题:
(1)验证可用资源向量的正确性。

(2)计算需求矩阵。

(3)指出一个安全的进程序列来证明当前状态的安全性。

同时指出每个进程结束时可用资源向量的变化情况。

(4)假设P5请求资源(3,2,3,3),该请求应该被允许吗?请说明理由。

4、如下的代码涉及3个进程竞争6种资源(A~F)。

a. 使用资源分配图来指出这种实现中可能存在的死锁。

b. 改变某些请求的顺序来预防死锁。

注意不能夸函数移动请求,只能在函数内部调整请求的顺序。

使用资源分配图来证明你的答案。

5、考虑一个有4个进程和1种资源的系统。

当前的资源请求和分配矩阵如下:C=(3 2 9 7), A=(1 1 3 2)
最少需要多少单位的资源才能保证当前的状态是安全的?。

操作系统习题及答案

操作系统习题及答案

操作系统习题及答案操作系统习题及答案操作系统是计算机科学中的一个重要领域,它负责管理和控制计算机系统的硬件和软件资源。

对于学习操作系统的同学来说,解决一些习题是巩固知识和提高技能的有效方式。

本文将介绍一些常见的操作系统习题,并提供相应的答案和解析。

习题一:进程与线程的区别是什么?答案:进程和线程都是操作系统中的执行单位,但两者有着明显的区别。

进程是程序的一次执行过程,具有独立的内存空间和系统资源。

而线程是进程中的一个执行流,共享进程的内存空间和系统资源。

进程之间相互独立,而线程之间可以共享数据。

另外,进程的切换开销较大,而线程的切换开销较小。

习题二:什么是死锁?如何避免死锁?答案:死锁是指两个或多个进程因争夺系统资源而无法继续执行的状态。

死锁发生时,进程将无法进行下去,导致系统资源的浪费。

为了避免死锁,可以采取以下方法:1. 避免使用多个资源:尽量减少系统中资源的数量,从而减少死锁的可能性。

2. 使用资源有序性:对系统中的资源进行编号,所有进程按照编号顺序请求资源,释放资源时按相反顺序释放。

3. 引入资源抢占:当一个进程请求资源时,如果该资源已被其他进程占用,则可以抢占资源并暂停占用者的执行。

4. 引入超时机制:当一个进程等待资源的时间超过一定阈值时,放弃等待并释放已占用的资源。

习题三:什么是页面置换算法?请列举几种常见的页面置换算法。

答案:页面置换算法是操作系统中用于管理虚拟内存的一种技术。

当物理内存不足时,操作系统需要将某些页面从内存中换出,以便为新的页面腾出空间。

常见的页面置换算法包括:1. 先进先出(FIFO):选择最早进入内存的页面进行置换。

2. 最近最久未使用(LRU):选择最长时间未被使用的页面进行置换。

3. 最不经常使用(LFU):选择使用次数最少的页面进行置换。

4. 时钟(Clock):使用一个类似于时钟的数据结构来记录页面的使用情况,选择未被使用的页面进行置换。

习题四:什么是文件系统?请简要介绍几种常见的文件系统。

操作系统精髓及设计原理-第6章 并发性_死锁及饥饿

操作系统精髓及设计原理-第6章 并发性_死锁及饥饿

第六章习题翻译第一部分复习题6.1给出可重用资源和可消费资源的例子。

答:可重用资源:处理器,I/O通道,主存和辅存,设备以及诸如文件,数据库和信号量之类的数据结构。

可消费资源:中断,信号,消息和I/O缓冲区中的信息。

6.2可能发生死锁所必须的三个条件是什么?答:互斥,占有且等待,非抢占。

6.3产生死锁的第4个条件是什么?答:循环等待。

6.4如何防止占有且等待的条件?答:可以要求进程一次性地请求所有需要的资源,并且阻塞这个资源直到所有请求都同时满足。

6.5给出防止无抢占条件的两种方法。

答:第一种,如果占有某些资源的一个进程进行进一步资源请求被拒绝,则该进程必须释放它最初占用的资源,如果有必要,可再次请求这些资源和另外的资源。

第二种,如果一个进程请求当前被另一个进程占有的一个资源,则操作系统可以抢占另一个进程,要求它释放资源。

6.6如何防止循环等待条件?答:可以通过定义资源类型的线性顺序来预防。

如果一个进程已经分配到了R类型的资源,那么它接下来请求的资源只能是那些排在R类型之后的资源类型。

6.7死锁避免,检测和预防之间的区别是什么?答:死锁预防是通过间接地限制三种死锁必要条件的至少一个或是直接地限制循环等待的发生来避免死锁的出现。

死锁避免允许可能出现的必要条件发生,但是采取措施确保不会出现死锁的情况。

而死锁检测允许资源的自由分配,采取周期性的措施来发现并处理可能存在的死锁情况。

第二部分习题6.1写出图6.1(a)中死锁的四个条件。

解:互斥:同一时刻只有一辆车可以占有一个十字路口象限。

占有且等待:没有车可以倒退;在十字路口的每辆车都要等待直到它前面的象限是空的。

非抢占: 没有汽车被允许挤开其他车辆。

循环等待: 每辆汽车都在等待一个此时已经被其他车占领的十字路口象限。

6.2按照6.1节中对图6.2中路径的描述,给出对图6.3中6种路径的简单描述。

解:1.Q 获得 B 和A, 然后释放 B 和 A. 当 P 重新开始执行的时候, 它将会能够获得两个资源。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第6章死锁-习题集
一、选择题
1. C
2. C
3. C
4. C //产生死锁的原因是系统资源不足及进程推进顺序不正确
5. B
6. D
7. B
8. C
9. C
10. D //有序资源分配法的实现思想是将系统中的所有资源都按类型赋予一个编号(如打
印机1,磁带机为2等),要求每一个进程均严格按照编号递增的次序来申请资源,同类资源一次申请完。

这样不会造成循环等待。

11. A //互斥条件是资源本身固有的特性。

12. B //当每个都获得2台打印机且系统中剩余打印机不少于1台时,系统不会发生死锁,
即11-2N>=1,由此知N<=5。

//本注:
N=1,空闲11-3*1=8,不死锁
N=2,空闲11-3*2=5,不死锁
N=3,空闲11-3*3=2,不死锁
N=4,每个2台,空闲11-2*4=3,不死锁
N=5,每个2台,空闲11-2*5=1,不死锁
N=6,5个进程2台,1个进程1台,无空闲,死锁!
13. C //同上例。

8-2K>=1,K<=3.5,向上取整为4。

14. B
15. B
16. B //本注:破坏了死锁必要条件“环循等待”,属于“死锁预防”
17. C
18. D //本注:P2和P3无法满足资源需要,都需资源R2三个。

二、综合应用题
1.所谓死锁是指多个进程因竞争系统资源或相互通信而处于永久阻塞状态,若无外力作
用,这些进程都将无法向前推进。

产生死锁的原因是:一是由多进程共享的资源不足而引起竞争资源;二是由于进程在运行过程中具有异步性,进程推进顺序非法。

2.必要条件如下:
●互斥条件。

指在一段时间内某资源仅为一个进程所占有。

●不剥夺条件。

指进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,
而只能由该进程自己释放。

●部分已分配条件(Hold and Wait):指进程每次申请它所需要的一部分资源,在等待
分配新资源的同时,进程继续占有已分配到的资源。

●环路等待条件。

指存在一种进程资源的循环等待链,链中每一个进程已获得的资源
同时被链中下一个进程所请求。

解决死锁问题常采用的措施有:
●死锁预防。

通过破坏死锁产生的四个必要条件中之一来预防死锁的发生。

●死锁避免。

在资源动态分配进程中,用某种方法防止系统进程不安全状态,从而避
免死锁。

●死锁的检测及解除。

通过系统的检测机构及时地检测出死锁的发生,然后采取某种
措施解除死锁。

3.有可能。

例如在系统死锁的状态下,进程处于占有等待资源的状态,应当即不属于运行
态也不属于就绪态,即都处于阻塞状态时。

4.在资源分配系统中,死锁发生的原因是由于多个进程共享有限的独占型资源。

当多个进
程占有了部分资源又需要更多的资源时,就可能形成循环等待链而导致死锁。

死锁情况分析:每个进程都占有W-1个资源,需再分配1个资源,为保证不死锁,系统必须至少有一个可分配的资源,取M满足:
M>=N(W-1)+1
因此保证系统不发生死锁的最小M什可以从下面公式获得:
M=N(W-1)+1
1)2*0+1=1,而M=3,不会死锁
2)2*1+1=3,而M=3,不会死锁
3)2*2+1=5,而M=3,可能死锁。

出现死锁情况是:一个进程占有2个资源,另一占
1个资源
4)3*1+1=4,而M=5,不会死锁
5)3*2+1=7,而M=7,可能死锁。

出现死锁情况是:3个进程各占2个资源
5.1个进程,不会死锁
2个进程,2*(3磁带机-1)+1=5,而有8台磁带机,不会死锁
3个进程,3*(3磁带机-1)+1=7,而有8台磁带机,不会死锁
4个进程,4*(3磁带机-1)+1=9,而有8台磁带机,可能死锁
所以,N<=3时,不会死锁。

6.银行家算法是避免死锁的一种方法,其实现思想是:允许进程动态地申请资源,系统在
每次实施资源分配之前,先计算资源分配的安全性,若此次资源分配安全(即资源分配后,系统能按某种顺序来为每个进程分配其所需的资源,直至最大需求,使每个进程都可以顺利地完成),便将资源分配给进程,否则不分配资源,让进程等待。

银行家算法具有较好的理论意义,但在实际系统中却难以实施。

其原因是:难以预先获得进程申请的最大资源数;运行过程上进程的个数是不断变化的,所以银行家算法难以解决实际中的死锁问题。

7.
1)剩余单元数=150-(25+40+45)=40。

P4需求60,当前请求25。

若满足P4当前请
求,则剩余单元数=40-25=15,可以满足P3的需求,所以是安全的。

其中一个安全
序列{P3,P2,P1,P4}。

2)剩余单元数=150-(25+40+45)=40。

P4需求50,当前请求35。

若满足P4当前请求,
则剩余单元数=40-35=5,每个进程都不够分配,找不到一个安全序列,所以是不安
全状态。

8.
1)存在一个安全序列{P0,P3,P4,P1,P2},故该系统是安全的。

2)满足P2提出请求(1,2,2,2)后,可利用资源为(0,4,0,0)已不能满足任
何进程的需要,故系统进入不安全状态,此时系统不能将资源分配给P2。

9.不会。

4个进程每个得1个,仍剩一个资源,可满足4个进程中的任意一个的最多需要,
从而可以将它占有的2个资源归还给系统,其余3个进程能顺利运行完毕。

10.由题目所给出的最大资源需求量和已分配资源数量,可计算出T0时刻各进程的资源需
求量Need,Need=最大资源需求量-已分配资源数量。

1) T0时刻的安全性检测表,存在安全序列{P5,P4,P3,P2,P1},故状态是安全的。

2) P2请求资源(0,3,4)大于剩余资源(2
,3,3),所以不能分配。

3) 状态是安全的。

可以立即分配P4所申请的资源。

理由:略(参考1)做法) 4) 进入不安全状态,系统不能将资源分配给P4。

理由:略 11. 略
12. 当两个进程都执行完第1步后,即进程P1和进程P2都申请到了一个R1类资源时,系
统进入不安全状态。

随差两个进程的向前推进,无论哪个进程执行完第2步,系统都将进入死锁状态。

下图一种死锁点的资源分配图。

13. (a )中的进程-资源图不会产生死锁。

(b )会产生死锁。

相关文档
最新文档