《操作系统》习题集参考答案:第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 操作系统的功能有哪些?答案:操作系统的功能主要包括:进程管理、存储管理、文件管理、网络管理和用户接口。

习题1-2 请简述进程和线程的区别。

答案:进程是计算机中程序执行的基本单位,每个进程都有独立的内存空间。

线程是进程内部的一个执行流程,线程共享进程的内存空间和其他资源。

进程和线程的主要区别在于资源占用和调度级别。

第二章处理器管理习题2-1 请解释什么是进程调度。

答案:进程调度是指操作系统根据某种策略,决定哪个进程获得处理器资源进行执行的过程。

习题2-2 常用的进程调度算法有哪些?答案:常用的进程调度算法包括:先来先服务(FCFS)、短作业优先(SJF)、优先级调度、轮转调度(RR)和多级反馈队列调度。

第三章存储管理习题3-1 什么是虚拟存储器?答案:虚拟存储器是操作系统提供给用户的一种抽象的存储资源,它将物理内存和硬盘空间扩展成一个连续的地址空间,使得每个进程都好像拥有全部内存一样。

习题3-2 请解释分页存储管理和分段存储管理的主要区别。

答案:分页存储管理和分段存储管理都是虚拟存储器的实现方式。

主要区别在于地址结构,分页存储管理将逻辑地址分为页号和页内偏移,而分段存储管理将逻辑地址分为段号和段内偏移。

第四章文件管理习题4-1 什么是文件系统?答案:文件系统是操作系统中负责数据持久存储和管理的软件结构。

习题4-2 常用的文件访问控制方式有哪些?答案:常用的文件访问控制方式包括:顺序访问、随机访问和直接访问。

第五章网络管理习题5-1 什么是网络操作系统?答案:网络操作系统是一种特殊类型的操作系统,它支持网络中的计算机资源共享,并提供网络通信和网络管理功能。

习题5-2 请列举出常见的网络协议。

答案:常见的网络协议包括:TCP/IP、HTTP、FTP、SMTP、DNS等。

第六章用户接口习题6-1 什么是命令行接口(CLI)?答案:命令行接口(CLI)是用户与操作系统交互的一种方式,用户通过输入命令来执行操作系统的各种功能。

操作系统第六章答案

操作系统第六章答案

操作系统第六章答案第六章⽂件管理1、何谓数据项、记录和⽂件?P203 P204答:数据项:数据项是最低级的数据组织形式,是数据组中可以命名的最⼩逻辑数据单位,若⼲个基本数据项组成的。

记录:记录是⼀组相关数据项的集合,⽤于描述⼀个对象在某⽅⾯的属性。

⽂件:⽂件是指由创建者所定义的、具有⽂件名的⼀组相关元素的集合,可分为有结构⽂件和⽆结构⽂件两种。

在有结构的⽂件中,⽂件由若⼲个相关记录组成;⽽⽆结构⽂件则被看成是⼀个字符流。

⽂件在⽂件系统中是⼀个最⼤的数据单位,它描述了⼀个对象集。

2、⽂件系统的模型可分为三层,试说明其每⼀层所包含的基本内容。

P206图答:1、对象及其属性:⽂件、⽬录、硬盘(磁带)存储空间;2、对对象操纵和管理的软件集合:⽂件管理系统的核⼼部分;3、⽂件系统的接⼝:命令接⼝、程序接⼝;3、试说明⽤户可以对⽂件施加的主要操作有哪些。

P207答:1、最基本的⽂件操作:创建⽂件、删除⽂件、读⽂件、写⽂件、截断⽂件、设置⽂件的读/写位置;2、⽂件的“打开”和“关闭”操作;3、其它⽂件操作;4、何谓逻辑⽂件?何谓物理⽂件?P208答:逻辑⽂件:这是从⽤户观点出发所观察到的⽂件组织形式,是⽤户可以直接处理的数据及其结构,它独⽴于⽂件的物理特性,⼜称为⽂件组织。

物理结构:⼜称为⽂件的存储结构,是指⽂件在外存上的存储组织形式。

这不仅与存储介质的存储性能有关,⽽且与所采⽤的外存分配⽅式有关。

5、如何提⾼对变长记录顺序⽂件的检索速度?P210答:对于变长记录的顺序⽂件,在顺序读或写时的情况相似,但应分别为它们设置读或写指针,在每次读或写完⼀个记录后,须将读或写指针加上Li。

Li 是刚读或刚写完的记录的长度。

6、试说明对索引⽂件和索引顺序⽂件的检索⽅法。

P211 P212答:在对索引⽂件进⾏检索时,⾸先是根据⽤户(程序)提供的关键字,并利⽤折半查找法去检索索引表,从中找到相应的事项;再利⽤该表项中给出的指向记录的指针值,去访问所需的记录。

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

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

第6章死锁-习题集一、选择题1. C2. C3. C4. C //产生死锁的原因是系统资源不足及进程推进顺序不正确5. B6. D7. B8. C9. C10. 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. B15. B16. B //本注:破坏了死锁必要条件“环循等待”,属于“死锁预防”17. C18. D //本注:P2和P3无法满足资源需要,都需资源R2三个。

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

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

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

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

●不剥夺条件。

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

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

●环路等待条件。

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

操作系统原理 第六章 死锁

操作系统原理 第六章  死锁

1、资源分配图 系统由若干类资源构成,一类资源称为一个 资源类;每个资源类中包含若干个同种资源, 称为资源实例。 资源类:用方框表示(资源的不同类型) 资源实例:用方框中的黑圆点表示(存在于每个 资源中) 进程 :用圆圈中加进程名表示 分配边:资源实例进程 的一条有向边 申请边:进程资源类 的一条有向边
第六章 死锁
若对资源不加限制的分配可能导致进程 间由于竞争资源而相互制约以至无法继 续运行的局面,这就是死锁。
一、死锁的基本概念 1、死锁产生的原因 系统中两个或两个以上的进程无限期的 等待永远不可能发生的事件,则称这些 进程处于死锁状态中。
进程执行的速度 例6-1 对临时资源使用不加限制 例6-2 例6-3 生活中的例子: 独木桥 其他:wait signal操作顺序不对
二、死锁预防 1、破坏互斥条件 允许多个进程同时访问资源 2、破坏不剥夺条件 在允许进程动态申请资源的前提下:一 个进程在申请新资源的要求不能立刻得 到满足时,便处于等待状态。而一个处 于等待状态的进程的全部资源可以被剥 夺。
3、破坏“请求和保持”条件 静态资源分配法 资源预分配:进程开始之前,一次性分配他 所需要的全部资源。 主要问题: • 进程因等待所需要的资源阻塞时间过长 • 部分资源可能在相当长的时间内变得不 可用; • 进程一次性知道所需全部资源不太可能。
三、死锁避免 系统对进程发出的每一个系统能够满足 的资源申请进行动态检查,并根据检查 结果决定是否分配资源,如果分配后系 统可能发生死锁,则不予分配,否则予 以分配,这是一种保证系统不进入死锁 状态的动态策略。
1、安全和不安全状态 安全状态:在某一时刻,系统能按照某 种次序,如<P1,P2……Pn>来为并发进 程分配所需要的资源,直到最大需求, 使每个进程都顺利完成,则程此时的系 统状态为安全状态。此序列为安全序列。 不安全状态:某一时刻,不存在这样的 一个安全序列,则称为不安全状态。

操作系统课后习题答案

操作系统课后习题答案

操作系统课后习题答案问题一:简述进程和线程的区别。

进程是操作系统进行资源分配和调度的一个独立单位,它是程序在数据集上的一次动态执行过程。

线程是进程中的一个实体,是CPU调度和分派的基本单位,比进程更小的能独立运行的基本单位。

线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如执行栈),但它可以与同属一个进程的其他线程共享进程所拥有的全部资源。

问题二:什么是死锁?如何避免死锁?死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种僵局,若无外力作用,这些进程都将无法向前推进。

避免死锁的方法包括:1. 互斥条件:确保系统资源足够,以避免多个进程争夺同一资源。

2. 请求和保持条件:设计资源分配策略,确保进程不会在请求新资源的同时保持已分配的资源。

3. 不剥夺条件:一旦资源被分配给某进程,除非该进程自愿释放资源,否则系统不应强制剥夺。

4. 循环等待条件:通过资源分配图检测循环等待并进行处理。

问题三:描述操作系统中的分页和分段机制。

分页机制是操作系统用来实现虚拟内存的一种技术,它将物理内存分割成固定大小的页,并将这些页与进程的虚拟地址空间中的页表项关联起来。

当进程访问一个不在物理内存中的虚拟地址时,操作系统会触发一个缺页中断,将所需的页从辅助存储器加载到物理内存中。

分段机制则是将程序的地址空间划分为多个段,每个段可以是不同的大小,并且可以独立地被加载和链接。

段表项包含了段的基地址和段的长度信息。

当程序访问一个段内的地址时,操作系统将虚拟地址转换为物理地址。

问题四:什么是文件系统?它有什么作用?文件系统是操作系统用于有效地存储、组织、管理和访问磁盘上的数据的一种系统。

它的作用包括:1. 数据持久性:确保即使在系统崩溃或电源故障后,数据也不会丢失。

2. 数据共享:允许多个用户或进程访问和共享数据。

3. 抽象:为用户和应用程序提供统一的接口来访问存储在磁盘上的数据。

4. 安全性:通过权限控制保护数据不被未授权访问。

《现代操作系统》精读与思考笔记第六章死锁

《现代操作系统》精读与思考笔记第六章死锁

《现代操作系统》精读与思考笔记第六章死锁 本系列博⽂是《现代操作系统(英⽂第三版)》(Modern Operating Systems,简称MOS)的阅读笔记,定位是正⽂精要部分的摘录理解和课后习题精解,因此不会事⽆巨细的全⾯摘抄,仅仅根据个⼈情况进⾏记录和推荐。

由于是英⽂版,部分内容会使⽤英⽂原⽂。

课后习题的选择标准:尽量避免单纯的概念考察(如:What is spooling?)或者简单的数值计算,⽽是能够引起思考加深理解的题⽬。

为了保证解答的正确性,每道题都会附上原书解答,⽽中⽂部分会适当加⼊⾃⼰的见解。

原书答案(需注册) 最初在翻这本书的⽬录时还在想,“死锁”这个主题安排在“进程”主题下就可以了嘛,为何要单列出⼀章?与动辄近百页的其他章节⽐,这⼀章只有区区三⼗来页⽽已,看似微不⾜道。

本章开篇便告诉读者,“死锁”不仅在进程并⾏时会出现,在数据库系统甚⾄是办公室的设备共⽤时也会出现,使⽤场景很⼴泛,也难怪成为⼀个独⽴章节。

也正因适⽤范围⼴泛,⽽⽅法是抽象的,这章特别强调,在决定使⽤某种避免或消除死锁的策略前,必须结合具体场景判断是否适⽤。

1.鸵鸟算法(P441) 所谓的鸵鸟算法,就是对问题视若不见。

虽然数学家认为根本不可接受,但考虑到⼀个不常发⽣并且发⽣后的解决开销很⼤的事件(如本章的死锁),反⽽是⼀个很好的复杂度与性能的折衷。

相⽐之下,尽管该书后⽂提到的避免和解决死锁的⽅法⽐较有效,⽐如⼴为⼈知的银⾏家算法(P451~454),但实⽤性实在有限。

2.spooling的打印机仍然可能造成死锁(P454~455) 虽然使⽤打印机对应的deamon进程唯⼀地与打印机交互、其他进程的打印任务仅仅是将需要打印的⽂件放⼊deamon进程指定的⼀个⽬录下,打印机这⼀设备不再会导致死锁;然⽽,这些待打印的⽂件是需要占⽤空间的,如果磁盘空间不⾜以容纳所有待打印的⽂件,仍然会造成死锁。

习题2再次提到了这个情形。

《操作系统》第6章 死锁

《操作系统》第6章 死锁

(3) 当进程申请资源,而资源当前又无剩余时,进 程必须等待。在一些操作系统中,进程申请失 败后便自动阻塞。当资源可用时,再把进程唤 醒。另一些OS则是在进程申请失败后,给出
一个错误码,因此是由进程本身决定等待时间,
然后重新申请。
例:三个进程A、B、C,三类资源R、S、T A进程,请求R,请求S,释放R,释放S; B进程,请求S,请求T,释放S,释放T; C进程,请求T,请求R,释放T,释放R;
P 空 2 Q 空 4 S 1 buffer 3 R 满 满
三、死锁的定义及性质 从以上的例 2 中,不难看出,所谓死锁是指进程 处于等待状态,且等待事件永远不会发生。 造成死锁的原因:(a) P、V操作死锁 例2 (b) 推进顺序不当 例1 (c) 因资源不足而争夺资源 死锁 例1、2 (d) 协同进程本身设计中的 错误(无论按什么次序运 行总免不了死锁) 例3
进程S:Receive (Q.4); 接收Q从4号buffer送来的信息 Receive (R.3); 接收R从3号buffer送来的信息 answer (R); 回答R 进程Q:Receive (P.2); 接收P从2号buffer送来的信息 Send (S.4); 通过4号buffer向S发信息 这四个进程启动后将进入死 锁状态:P要收到R的回答 后才向Q发送信息;R回答P 之前要等待S的回答;S要收 到Q送来信息后才回答R; 而Q需收到P送来的信息后 才向S发送信息,所以都无 法再运行。
占有 输入设备 等待
A
等待 输出设备
B
占有
乙进程 的进展 Y
占用 输入机
共同进展路径1
禁区
占用打印机
危险区
占用输入机
占用打印机
X 甲进程 的进展

计算机操作系统教程--核心与设计原理习题6答案

计算机操作系统教程--核心与设计原理习题6答案

习题6答案习题66.1何谓死锁?死锁产生的原因和必要条件是什么?答:a.死锁是指多个进程因竟争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进;b.产生死锁的原因有二: 一是竟争资源,二是进程推进顺序非法;c.必要条件是:互斥条件,请求和保持条件,非剥夺条件和循环等待条件。

6.2列出日常生活中的几个死锁的例子。

答:略。

6.3在一个死锁中,只包含一个进程是否可能?答:不可能。

6.4死锁和饥饿的主要区别是什么?答:饥饿与死锁有一定联系:二者都是由于竞争资源而引起的,但又有明显差别,主要表现在如下几个方面:(1)从进程状态考虑,死锁进程都处于等待状态,忙式等待(处于运行或就绪状态)的进程并非处于等待状态,但却可能被饿死;(2)死锁进程等待永远不会被释放的资源,饿死进程等待会被释放但却不会分配给自己的资源,表现为等待时限没有上界(排队等待或忙式等待);(3)死锁一定发生了循环等待,而饿死则不然。

这也表明通过资源分配图可以检测死锁存在与否,但却不能检测是否有进程饿死;(4)死锁一定涉及多个进程,而饥饿或被饿死的进程可能只有一个。

饥饿和饿死与资源分配策略有关,因而防止饥饿与饿死可从公平性考虑,确保所有进程不被忽视,如FCFS分配算法。

6.5一台计算机共8台磁带机,由N个进程共享,每个进程最多要3台,问N为多少时不会有死锁,为什么?答:N<=3,可通过画出资源分配图来解。

6.6有R1(2个)、R2(1个)两类资源和两个进程P1、P2,两个进程均以:申请R1Æ申请R2Æ申请R1Æ释放R1Æ释放R2Æ释放R1的顺序使用资源,求可能达到的死锁点,并画出此时的资源分配图。

答:当两个进程都执行完第1步后,无论哪个进程执行完第2步,以后,这两个进程再申请资源时就会死锁。

6.7解决死锁的方法有哪几种?哪种方法最容易实现?哪种方法使资源的利用率最高?答:解决死锁可归纳为4种方法:预防死锁,避免死锁,检测死锁和解除死锁。

操作系统第五版第6章习题中文解答

操作系统第五版第6章习题中文解答

可用+占有 完成 70 true 110 125 150 true true true
• b.第四个进程到达,最大需求是60,初始需求是35
进程
1
最大
70
占有
45
需要
25
可用
15
2
3 4
60
60 60
40
15 35
20
45 25
6.13 a.三个进程共享四个资源单元
进程 p1 最大 2 分配 1 需要 1 可用 1
从矩阵可以看出四个进程还需要的资源数目为2165当有一个可用资源时p2可以执行完成并释放占用资源可用资源数目为2允许p1执行完成可用资源数目为3此时p3需要6个资源p4需要5个资源既最小情况还需要2个额外资源p4执行完成释放资源后p3再执行完成
操作系统第六章习题解答
6.1 互斥:在每一时刻,只能有一辆车占用十字路 口的一个象限; 占有且等待:没有车倒退;每辆车一直在等待, 直到它前面的十字路口的象限可以使用; 非抢占:没有车辆能够强迫另一辆车给自己让 路; 循环等待:每辆车一直等待另外的车辆占用的 十字路口的象限。
6.17
• 如果至少有一个左撇子或右撇子,则当所 有哲学家都准备拿起第一根筷子时,必定 会有两个哲学家竞争一根筷子而其中一个 得不到处于等待,这样必定有一个哲学家 可以获得两根筷子,而不至于发生死锁。 • 同样也不会发生饥饿
6.2 1.Q获得B,然后获得A,然后释放B和A;当P恢复执 行的时候,它可以获得全部资源。 2.Q获得B,然后获得A;P执行并阻塞在对A的请求 上;Q释放B和A,当P恢复执行时,它可以获得全 部资源。 3.Q获得B,P获得并释放A,然后Q获得A并释放B和 A,当P恢复执行时,它可以获得B。 4.P获得A,Q获得B,P释放A,Q获得A并释放B,P 获得B并且释放B。 5.P获得并释放A,P获得B;Q执行并阻塞在对B的请 求上;P释放B,当Q恢复执行时,它可以获得全部 资源。 6.P获得A并且释放A,P获得B并且释放B,当Q恢复 执行时,他可以获得全部资源。

操作系统课后题答案

操作系统课后题答案

精品文档3、何谓死锁?产生死锁的原因和必要条件是什么?死锁:两个或两个以上的进程都无限止地等待永远不会发生的事件而出现的一种状态。

产生死锁的原因:(1)竞争资源。

为多个进程所共享的资源不足,引起它们对资源的竞争而产生死锁;(2)进程推进顺序不当。

进程运行过程中,请求和释放资源的顺序不当,而导致死锁。

产生死锁必要条件:(1)互斥条件;一个资源每次仅能被一个进程使用,进程一旦申请到了资源后占为己有,则排出其它进程享受该资源。

(2)请求和保持条件;已分配到了一些资源的进程又可以申请新的资源,进程因未分配到新的资源也不释放自己占有的资源。

(3)非剥夺条件;已分配给一进程的资源不可剥夺,进程获得的资源尚未使用完毕之前,只能被占者自己释放,其它进程不能强行占用。

(4)循环等待条件;存在由两个或两个以上进程组成的循环等待链,链中的每一个进程都在等待相邻进程占用的资源。

4、引入缓冲的主要原因是什么,缓冲分为哪几种类型?在操作系统中,引入缓冲的主要原因,可归结为以下几点:(1)改善CPU与I/O设备间速度不匹配的矛盾(2)可以减少对CPU的中断频率,放宽对中断响应时间的限制(3)提高CPU和I/O设备之间的并行性缓冲有硬件缓冲和软件缓冲之分。

硬件缓冲是指以专用的寄存器作为缓冲器。

软件缓冲是指在操作系统的管理下,在内存中划出若干个单元作为缓冲区。

软件缓冲的好处是易于改变缓冲区的大小和数量,但占用了一部分内存空间。

软件缓冲根据缓冲区设置个数的多少,可分为单缓冲、双缓冲和多缓冲。

根据缓冲区的从属关系,可以分为专用缓冲区和缓冲池。

5、有几种I/O控制方式?有四种I/O控制方式,即程序I/O控制方式、中断驱动I/O控制方式、直接存储器访问DMA控制方式及I/O通道控制方式。

程序I/O方式(适用于结构简单,只需少量硬件的电路) 中断驱动I/O控制方式(适用于高效的场合,例如办公室) 直接存储器访问DMA I/O控制方式(适用于无须CPU介入的控制器来控制内存与外设之间的数据交流的场合) I/O通道控制方式(适用于以字节为单位的干预,同时实现CPU,通道和I/O设备三者并行操作的场合).。

  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 )会产生死锁。

相关文档
最新文档