“操作系统概论”习题解答之并发进程
操作系统习题及答案一

操作系统习题及答案一操作系统习题及答案一1:进程管理1.1 进程概念1.1.1 什么是进程?进程是程序在计算机内部运行时的实例。
它包含了程序及其执行所需的资源(如内存空间、文件等)。
1.1.2 进程的特征有哪些?- 动态性:进程是动态地创建、销毁和调度的。
- 并发性:多个进程可以同时运行。
- 独立性:每个进程都有自己的独立执行序列。
- 资源占有性:每个进程有自己的独立空间和资源。
1.2 进程调度1.2.1 什么是进程调度?进程调度是操作系统决定应该从就绪队列中选择哪个进程执行的过程。
1.2.2 进程调度的目标是什么?- 提高资源利用率:尽可能多地利用CPU和其他资源。
- 提高系统响应速度:快速响应用户请求。
- 公平性:确保所有进程都能得到一定的执行机会。
- 避免饥饿:避免某些进程永远无法获得CPU时间。
1.2.3 常见的进程调度算法有哪些?- 先来先服务(FCFS):按照进程到达的顺序进行调度。
- 短作业优先(SJF):优先调度执行时间短的进程。
- 轮转调度(Round Robin):每个进程按照时间片轮流执行。
1.3 进程同步与互斥1.3.1 什么是进程同步?进程同步是为了协调多个进程的执行顺序,以确保它们按照预定的顺序访问共享资源。
1.3.2 进程同步的方法有哪些?- 互斥量(Mutex):通过对共享资源加锁实现互斥。
- 信号量(Semaphore):通过计数器实现对共享资源的控制。
- 事件(Event):通过等待和通知机制实现进程的同步和协作。
2:内存管理2.1 内存分配方式2.1.1 什么是内存分配?内存分配是将系统的可用内存分配给进程使用的过程。
2.1.2 常见的内存分配方式有哪些?- 连续内存分配:将进程的地址空间连续地分配在内存中。
- 非连续内存分配:将进程的地址空间分散地分配在内存中。
2.2 页面置换算法2.2.1 什么是页面置换?页面置换是将内存中的某些页面移出内存,以便为新的页面腾出空间的过程。
操作系统习题及答案一

操作系统习题及答案一操作系统是管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基石。
以下是一些操作系统相关的习题及答案。
习题一:进程与线程的区别进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基本单位。
请简述进程和线程的主要区别。
答案:进程和线程存在以下几个主要区别:1、资源拥有:进程拥有独立的地址空间和资源,如内存、文件等;线程共享所属进程的资源,但有自己的栈和寄存器等少量私有资源。
2、调度:进程切换开销较大,因为需要切换整个地址空间;线程切换开销小,只需要切换少量的寄存器和栈。
3、并发性:进程之间并发度低,因为切换成本高;线程之间并发度高,可以在一个进程内并发执行多个线程。
4、系统开销:创建和销毁进程的系统开销大;创建和销毁线程的开销相对较小。
习题二:操作系统的存储管理简述操作系统中常见的存储管理方式及其特点。
答案:常见的存储管理方式有:1、连续分配:包括单一连续分配和分区分配(固定分区和动态分区)。
单一连续分配方式简单,但只能用于单用户、单任务的操作系统;固定分区分配缺乏灵活性,会产生内部碎片;动态分区分配会产生外部碎片。
2、分页存储管理:将内存空间划分为固定大小的页框,将进程空间划分为相同大小的页面,通过页表进行映射。
优点是没有外部碎片,缺点是存在一定的内部碎片。
3、分段存储管理:按照程序的逻辑分段,每个段有不同的长度和属性。
便于实现信息共享和保护,但会产生外部碎片。
4、段页式存储管理:结合了分段和分页的优点,先分段,再分页。
既便于实现分段共享和保护,又解决了外部碎片问题,但增加了系统开销。
习题三:死锁的产生条件及解决方法阐述死锁产生的必要条件,并说明预防死锁和避免死锁的方法。
答案:死锁产生的必要条件有四个:1、互斥条件:资源在某一时间内只能被一个进程使用。
2、请求和保持条件:进程在持有部分资源的同时,又请求新的资源。
3、不剥夺条件:进程已获得的资源在未使用完之前,不能被其他进程强行剥夺。
操作系统概念习题答案

操作系统概念习题答案操作系统概念习题答案操作系统是计算机系统中非常重要的一个组成部分,它负责管理和控制计算机的硬件和软件资源,为用户提供一个方便、高效、安全的工作环境。
学习操作系统的过程中,习题是一个非常好的练习和巩固知识的方式。
下面将针对一些常见的操作系统概念习题给出详细的答案。
1. 什么是进程?答:进程是计算机中正在运行的程序的实例。
每个进程都有自己的地址空间、代码、数据和执行状态。
进程是操作系统进行资源分配和调度的基本单位。
2. 什么是线程?答:线程是进程中的一个执行单元。
一个进程可以有多个线程,它们共享进程的资源,如地址空间和文件描述符。
线程之间的切换比进程之间的切换更快,因此线程的并发性能更高。
3. 什么是调度算法?答:调度算法是操作系统用来决定哪个进程或线程应该被调度执行的一种策略。
常见的调度算法有先来先服务(FCFS)、最短作业优先(SJF)、时间片轮转等。
4. 什么是死锁?答:死锁是指在并发系统中,两个或多个进程因争夺资源而陷入无限等待的状态。
死锁的发生是由于进程之间的竞争和互斥访问共享资源的问题导致的。
5. 什么是虚拟内存?答:虚拟内存是一种操作系统的内存管理技术,它将物理内存和磁盘空间结合起来,为每个进程提供一个连续的、私有的地址空间。
虚拟内存可以使得每个进程都有足够的内存空间,并且能够更好地管理内存资源。
6. 什么是页面置换算法?答:页面置换算法是虚拟内存管理中用来选择哪些页面应该被置换出去以腾出空间给新的页面使用的一种策略。
常见的页面置换算法有最佳置换算法(OPT)、先进先出(FIFO)、最近最久未使用(LRU)等。
7. 什么是文件系统?答:文件系统是操作系统用来管理和组织文件的一种机制。
它提供了对文件的创建、读写、删除等操作,并且能够为文件分配磁盘空间、进行文件的索引和目录的管理。
8. 什么是设备驱动程序?答:设备驱动程序是操作系统中用来控制和管理硬件设备的软件模块。
它提供了对设备的访问接口,使得应用程序可以通过操作系统来操作硬件设备。
操作系统习题解答

操作系统习题解答部门: xxx时间: xxx整理范文,仅供参考,可下载自行编辑《操作系统教程》南邮正式版习题解答第三章进程管理与调度习题1、什么是多道程序设计?多道程序设计利用了系统与外围设备的并行工作能力,从而提高工作效率,具体表现在哪些方面?b5E2RGbCAP答:让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种设计技术称“ 多道程序设计”,这种计算机系统称“多道程序设计系统” 或简称“多道系统”。
在多道程序设计的系统中,主存储器中同时存放了多个作业的程序。
为避免相互干扰,必须提供必要的手段使得在主存储器中的各道程序只能访问自己的区域。
p1EanqFDPw提高工作效率,具体表现在:•提高了处理器的利用率;充分利用外围设备资源:计算机系统配置多种外围设备,采用多道程序设计并行工作时,可以将使用不同设备的程序搭配在一起同时装入主存储器,使得系统中各外围设备经常处于忙碌状态,系统资源被充分利用; DXDiTa9E3d•发挥了处理器与外围设备以及外围设备之间的并行工作能力;从总体上说,采用多道程序设计技术后,可以有效地提高系统中资源的利用率,增加单位时间内的算题量,从而提高了吞吐率。
RTCrpUDGiT2、请描述进程的定义和属性。
答:进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配、调度和保护的独立单位。
进程的属性有:结构性•共享性•动态性•独立性•制约性•并发性3、请描述进程与程序的区别及关系。
答:程序是静止的,进程是动态的。
进程包括程序和程序处理的对象<数据集),进程能得到程序处理的结果。
进程和程序并非一一对应的,一个程序运行在不同的数据集上就构成了不同的进程。
通常把进程分为“系统进程”和“用户进程”两大类,把完成操作系统功能的进程称为系统进程,而完成用户功能的进程则称为用户进程。
5PCzVD7HxA4、进程有哪三种基本状态?三种进程状态如何变化?答:通常,根据进程执行过程中不同时刻的状态,可归纳为三种基本状态:· 等待态:等待某个事件的完成;· 就绪态:等待系统分配处理器以便运行;· 运行态:占有处理器正在运行。
操作系统第三版习题答案

输入 程序 B 打印 程序 B 打印
CPU 时间
程序 A
程序 B
程序 A
50
100
130
(2) CPU 有空闲等待,它发生在 100ms∼130ms 时间段内,此时间段内程序 A 与程序 B
200
230
280
380
ms
都在进行 I/O 操作。 (3) 程序 A 无等待现象,程序 B 在 0ms∼50ms 时间段与 200ms∼230ms 时间段内有等待 现象。 3、设三道程序,按照 A、B、C 优先次序运行,其内部计算和 I/O 操作时间由图给出。 A B C C11=30ms C21=60ms C31=20ms | | | I12=40ms I22=30ms I32=40ms | | | C13=10ms C23=10ms C33=20ms 试画出按多道运行的时间关系图(忽略调度执行时间)。完成三道程序共花多少时间?比 单道程序节省了多少时间?若处理器调度程序每次运行程序的转换时间花 1ms,试画出 各程序状态转换的时间关系图。 解答:完成三道程序抢占式花费时间是 190 ms,非抢占花费时间是 180 ms,单道花费 时间是 260 ms,抢占式比单道节省时间为 70 ms。 单道程序运行时间:260ms A:30+40+10=80 ms B:60+30+10=100 ms C:20+40+20=80 ms 4、在单 CPU 和两台 I/O(I1 和 I2)设备的多道程序设计环境下,同时投入三个作业运行。 它们的执行轨迹如下: Job1:I2(30ms)、CPU(10ms)、I1(30ms)、CPU(10ms)、I2(20ms) Job2:I1(20ms)、CPU(20ms)、I2(40ms) Job3:CPU(30ms)、I1(20ms) 、CPU(10ms)、I1(10ms) 如果 CPU、I1 和 I2 都能并行工作,优先级从高到低为 Job1、Job2 和 Job3,优先级高 的作业可以抢占优先级低的作业的 CPU,但是不抢占 I1 和 I2。试求: (1)每个作业从投入到完成分别需要多少时间。 (2)从投入到完成 CPU 的利用率。 (3) I/O 设备的利用率。 答:(1)JOB1,JOB2,JOB3 从投入到完成分别所需时间为 110,90,110。 (2)每个作业从投入到完成 CPU 的利用率是 72.7%。 (3)I1 的利用率是 72.7%,I2 的利用率是 81.8%。 5、在单 CPU 和两台 I/O(I1 和 I2)设备的多道程序设计环境下,同时投入三个作业运行。 它们的执行轨迹如下: Job1:I2(30ms)、CPU(10ms)、I1(30ms)、CPU(10ms) Job2:I1(20ms)、CPU(20ms)、I2(40ms) Job3:CPU(30ms)、I1(20ms)
第1章操作系统概论课后习题解答-

7
第1章 操作系统概论课后习题解答
11.处理机管理有哪些主要功能?它们的主要任务 是什么? 【解答】略 12.内存管理有哪些主要功能?它们的主要任务是 什么? 【解答】略 13.设备管理有哪些主要功能?它们的主要任务是 什么? 【解答】 略
8
第1章 操作系统概论课后习题解答
14.文件管理有哪些主要功能?它们的主要任务是什 么? 【解答】略 15.操作系统提供了哪些人机接口? 【解答】略
3
第1章 操作系统概论课后习题解答
6.为什么要引入分时操作系统? 【解答】略 7.分时系统是怎样实现的? 【解答】在分时系统中,虽然若干用户通过各自的终端共享 一台主机,但是在操作系统的管理下,每个用户都感觉自己 在独占一台主机。分时系统采用的策略是:基于主机的高速 运行,分时为终端用户服务。即主机按一定次序轮流为各终 端用户服务,每个用户一次仅使用主机很短的一段时间(称 为时间片,毫秒级),在分得的时间片内若用户没有完成工 作则暂时中断,将处理机分配给下一个用户。虽然在一个用 户使用主机时其他用户处于等待状态,但是等待的时间很短, 用户感觉不到,从而每个用户的各次请求都能得到快速响应, 给每个用户的印象是:他独占一台计算机。
4
第1章 操作系统概论课后习题解答
8.实时操作系统应用在哪些场合?
【解答】实时系统应用于两个领域: (1)实时控制 当把计算机用于生产过程的控制,以形成以计算机为中心的控制系统时, 系统要求能实时采集现场数据,并对所采集的数据进行及时处理,进而 自动地控制相应的执行机构,使某些(个)参数(如温度、压力、方位 等)能按预定的规律变化。类似地,也可将计算机用于武器的控制,如 火炮的自动控制系统、飞机的自动驾驶系统,以及导弹的制导系统等。 通常把要求进行实时控制的系统称为实时控制系统。 (2)实时信息处理 通常,我们把要求对信息进行实时处理的系统,称为实时信息处理系统。 该系统由一台或多台主机通过通信线路连接成百上千个远程终端,计算 机接收从远程终端发来的服务请求,对数据进行检索和处理,并及时将 结果反馈给用户。典型的实时信息处理系统有:飞机订票系统、情报检 索系统。
操作系统原理与应用(第2版)清大版第2章习题参考答案

1、进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
在程序并发执行时已不再具有封闭性,而且产生了许多新的特性和新的活动规律。
程序这一静态概念已不足以描述程序的并发执行的特性。
为了适应这一新情况,引入了一个能反应程序并行执行特点的新概念——进程(process)。
有的系统也称为任务(task)。
2、进程:是程序的一次执行,是动态概念;一个进程可以同时包括多个程序;进程是暂时的,是动态地产生和消亡的。
程序:是一组有序的静态指令,是静态概念;一个程序可以是多个进程的一部分;程序可以作为资料长期保存。
3、能够看到。
进程控制块PCB表示进程的存在。
为进程的实体为:程序部分描述了进程所要完成的功能,它通常可以由若干个进程所共享。
数据部分包括程序运行时所需要的数据和工作区,它通常是各个进程专有的。
4、可再现性:程序重复执行时,必将获得相同的结果。
即对于程序A来说,第一次运行得到一结果,第二次运行时若中间有停顿,但最后的结果必将与第一次一样。
封闭性:程序一旦开始运行,其计算结果和系统内资源的状态不受外界因素的影响。
5、1)运行状态:进程正占用CPU,其程序正在CPU上执行。
处于这种状态的进程的个数不能大于CPU的数目。
在单CPU机制中,任何时刻处于运行状态的进程至多是一个。
2)就绪状态:进程已具备除CPU以外的一切运行条件,只要一分得CPU马上就可以运行(万事具备,只欠东风)。
在操作系统中,处于就绪状态的进程数目可以是多个。
为了便于管理,系统要将这多个处于就绪状态的进程组成队列,此队列称为就绪队列。
3)封锁状态:进程因等待某一事件的到来而暂时不能运行的状态。
此时,即使将CPU 分配给它,也不能运行,故也称为不可运行状态或挂起状态。
系统中处于这种状态的进程可以是多个。
同样,为了便于管理,系统要将它们组成队列,称为封锁队列。
封锁队列可以是一个,也可以按封锁原因形成多个封锁队列。
6、(1)1---分到CPU,2---时间片到,3---等待某一事件的发生,4---所等待事件已发生。
操作系统练习题+参考答案

操作系统练习题+参考答案一、单选题(共100题,每题1分,共100分)1、若系统中有5个并发进程涉及某个相同的变量A,则变量A的相关临界区由()个临界区构成。
A、1B、3C、5D、6正确答案:C2、在分页虚拟存储管理系统中,采用某些页面置换算法,会出现Belady 异常现象,即进程的缺页次数会随着分配给该进程的页面数量的增加而增加。
下列算法中,可能出现Belady现象的是()。
①LRU算法②FIFO 算法③OPT算法A、仅2B、仅1、2C、仅1、3D、仅2、3正确答案:A3、下列关于管道通信的叙述中,正确的是()。
A、一个管道可以实现双向数据传输B、管道的容量仅受磁盘容量大小的限制C、进程对管道进行读操作和写操作都可能被阻塞D、一个管道只能有一个读进程或一个写进程对其操作正确答案:C4、不属于基本操作系统的是()。
A、网络操作系统B、实时操作系统C、分时操作系统D、批处理操作系统正确答案:A5、采用SPOOLing技术的目的是()。
A、提高独占设备的利用率B、提高程序的运行速度C、提高主机的效率D、减轻用户的编程负担正确答案:A6、在()的控制下,计算机系统能及时处理由过程控制反馈的数据,并作出响应。
A、分时操作系统B、实时操作系统C、批处理操作系统D、多处理机操作系统正确答案:B7、在分页虚拟存储管理中,当发现要访问的页面不在主存时,则由硬件发出()。
A、输入输出中断B、时钟中断C、缺页中断D、越界中断正确答案:C8、()可以用来解决临界区问题。
A、时间片轮转算法B、银行家算法C、LRU算法D、Test正确答案:D9、可变分区存储管理系统中,若采用最佳适应分配算法,“空闲分区表”中的空闲区应该按()顺序排列。
A、地址从大到小B、大小从大到小C、地址从小到大D、大小从小到大正确答案:D10、进程从运行状态转换到阻塞状态可能是由于()。
A、现运行进程执行了signal操作B、现运行进程时间片用完C、现运行进程执行了wait操作D、进程调度程序的调度正确答案:C11、()不是进程的特征。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“操作系统概论”习题解答之并发进程第7章习题解答1.什么叫并发进程?答:在多道程序设计系统中,作为单个作业可以同时执行,而每一个作业又需要有多个进程的协作来完成。
因此,系统会同时存在着许多进程,在单处理器的情况下,这些进程轮流的占用处理器,即一个进程的工作没有全部完成之前,另一个进程就开始工作,我们说这些可同时执行的进程具有并发性,并且把可同时执行的进程称为“并发进程”。
2.临界区是怎样定义?对临界区的管理应符合哪些要求?答:并发进程中与共享变量有关的程序段称为“临界区”。
对若干个并发进程共享某一变量的相关临界区得管理有三点要求:①一次至多一个进程能够进入临界区,当有进程在临界区执行时,其他想进入临界区执行的进程必须等待。
②不能让一个进程无限制的在临界区执行,即任何一个进入临界区的进程必须有限的时间内退出临界区。
③不能强迫一个进程无限期等待键入它的临界区,即有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区执行。
3.采用PV操作作为同步机构时,假定与某共享变量相关的信号量S的值可在[-1,l]之间,问S的初值是哪个值?当S=-1,S=0,S=l时它们各自的物理含义是什么?答:S的初值是 1.S=-l,表示有一个进程在等待进入临界区执行。
S=0,表示已有一个进程在临界区执行,这时若有进程想进入临界区则必须等待。
S=l,表示无进程在临界区执行,若有进程想进入临界区则可以立即进入。
4.A、B两个火车站之间是单轨连接的,现有许多列车同时到A站,须经A再到达B站,列车出B站后又可分路行驶(如图7-2)为保证行车安全,请你当调度时,你将如何调度列车?请你用PV操作为工具设计一个能实现你的调度方案的自动调度系统。
答:当A、B两站之间无列车停驶时,可让到达A站的一列车进人A、B站之间行驶。
当A石站之间有列车在行驶时,则到达A站者必须在站外等待。
当有列车到达B站后,让等在A站外的一列车进入。
用一个信号量S来控制到达A站的列车能否进入单轨道行驶,S的初始值为l.列车到达A站后,先执行P(S),若无列车在A、B站之间行驶,则执行P(S)后立即进人单轨道行驶,到达B站后,执行V(S),可释放一个等待进入的列车进入行驶。
若A、B站之间已有列车在行驶,则执行P(S)后就等待,直到行驶者到了B站执行V(S)后释放一个欲进入者。
5.今有三个进程R、M、P,它们共享一个缓冲区。
R负责从输入设备读信息,每次读出一个记录并把它存放在缓冲区中:M在缓冲区加工读入的记录;P把加工后的记录打印输出。
输入的记录经加工输出后,缓冲区中又可存放下一个记录。
请用P、V操作为同步机构写出他们并发执行时能正确工作的程序。
答:三个进程共用一个缓冲区,他们必须同步工作,可定义三个信号量:S1:表示是否可把读人的记录放到缓冲区,初始值为1.S2:表示是否可对缓冲区中的记录加工,初始值为0.S3:表示记录是否加工好,可以输出,初始值也为0.三个进程可如下设计:beginS1,S2,S3:semaphore;S1:=l;S2:=S3:=0;cobeginprocess RbeginL1:读记录;P(S1);记录存入缓冲区;V(S2);goto L1;end;process MbeginL2:P(S2);加工记录;V(S3);goto L2;end;process PbeginL3:P(S3);输出加工后的记录;V(S1);goto L3;end;coend;end.6.现有4个进程R1,R2,W1,W2,它们共享可以存放一个数的缓冲器B.进程R1每次把从键盘上投入的一个数存放到缓冲器B中,供进程W1打印输出;进程R2每次从磁盘上读一个数放到缓冲器B中,供进程W2打印输出。
当一个进程把数据存放到缓冲器后,在该数还没有被打印输出之前不准任何进程再向缓冲器中存数。
在缓冲器中还没有存入一个新的数之前不允许任何进程加快从缓冲区中取出打印是怎样才能使这四个进程在并发执行是协调的工作?答:这四个进程实际上是两个生产者 R1,R2和两个消费者 W1,W2.各自生成不同的产品中各自的消费对象去消费,他们共享一个的缓冲器。
由于缓冲器只能存放一个数,所以,R1和R2在存放数时必须互斥。
而R1和W1、R2和W2之间存在同步。
为了协调它们的工作可定义三个信号量:S:表示能否把数存人缓冲器B,初始值为1.S1:表示R1是否已向缓冲器存入从键盘上读入的一个数,初始值为0.S2:表示R2是否已向缓冲器存入从磁盘上读入的一个数,初始值为0.beginS,S1,S2:semaphore;S:=1;S1:=S2:=0;cobeginprocess R1xl :integerbeginL1:从键盘读一个数;x1:=读入的数;P(S);B:=xl;V(S1);goto L1;end;process R2x2:integer;beginL2:从磁盘读一数;x2:=读入的数;P(S);B:=x2;V(S2);goto L2;end;process W1y:integer;beginL3:P(S1);y:=B;V(S);打印y中的数;goto L3;end;process W2z:integerbeginL4:P(S2);z:=B;V(S);打印z中的数;goto L4;end;coend;end.7.两个并发进程的程序如下:beginN:integer;N:=3;cobeginprocess AbeginL1:N:=N+5;goto L1;end;process BbeginL2:print(N);N:=0;goto L2;end;coend;end.若process A先执行了三个循环后,process A和 process B又并发执行了一个循环,写出可能出现的打印值。
请用PV操作实现同步,使两并发进程能正确执行。
答:可能的值是 18或 23.这是因为 process A执行三个循环后,N=18,之后 A和 B 并发执行,可能先执行A中的N:=N+5,再执行B中的print(N);这样就会得到23,也可能先执行B中的pint(N);这就会得到18.可以利用P、V操作实现同步:beginN:integer;S:semphore;S:=l;N:=3;cobeginprocess AbeginL1:P(S);N:=N+5;V(S);gotO L1;end;process BbeginL2:P(S);print(N);N:=0;V(S);goto L2;end;coend;end.8.通信机制中设置哪些基本通信原语?它们的功能是什么?答:系统提供两个与信箱通信有关的通信原语:send原语(发送)和 receive原语(接收)。
send(B,M)原语把信件M送人到信箱B中,receive(B,X)原语从信箱B中取出一封信存放到指定的地址X中。
9.什么叫死锁?什么原因会引起死锁?答:若系统中存在一组进程(二个或多个进程),他们中的每一个进程都占用某种资源而又都在等待其中另一个进程所占用的资源,这种等待永远不能结束,就说系统出现“死锁”。
进程死锁的起因是系统提供的资源数比要求使用资源的进程数少,或者是若干个个进程要求资源的总数大于系统能提供的资源数。
这时,进程间就会出现竞争资源的现象,如果对进程竞争的资源管理和分配不当就会引起死锁。
死锁的出现是与资源分配策略和并发进程的执行速度有关。
10.有哪些策略可防止和避兔死锁?答:防止死锁的策略有:静态分配、按序分配、剥夺式分配。
银行家算法可以避免死锁。
11.某系统有输入机和打印机各一台,今有两个进程都要同时使用他们,采用PV操作实现请求使用和归还释放后,还会产生死锁吗?若否,说明理由;若会产生死锁则给出一种防止死锁的方法。
答:如果 PV操作设计不当,仍会产生死锁。
假如用 S1 S2分别代表输入机和打印机能否被使用的信号量,由于资源是共享的,所以必须互斥使用,因而它们的初始值都为l.如果用如下方式实现请求使用和归还释放:process QIbeginP(S1);使用输入机;P(S2);使用打印机;V(S2);V(S1);end;process Q2beginP(S2);使用打印机;P(S1);使用输入机;V(S2);V(S1);end;那么就会出现Q1得到输入机而 Q2得到打印机,双方在不释放已经有的资源的情况下又去申请新的资源,就会造成死锁。
可以采用为资源编序号的方法,要求按序申请,如下:process Q1beginP(S1);使用输入机;P(S2);使用打印机;V(S2);V(S1);end;process Q2beginP(S1);使用输入机;P(S2);使用打印机;V(S2);V(S1);end.12.某一系统分配资源的策略是:当进程提出申请资源时,只要系统有资源中是分配给它,系统无资源时让它登台。
任一进程总是先释放以占有的资源后在申请新的资源,且每次申请一个资源,系统中的进程得到资源后总能在有限时间内归还。
证明该系统不会发生死锁。
答:任一进程P申请资源时出现两种情况:情况一,立即得到满足,此时不会成为等待状态,也就不存在引起死锁的条件。
情况二,得不到满足,处于等待资源状态。
此时,资源一定被另一进程 Q占有。
进程 Q 执行时若不在申请资源,则必在有限时间里归还资源,于是 P不会永远等待。
如果进程 Q 执行时还要申请资源,按题意,它一定先释放占有的资源,于是 P也不会永远等待。
所以,任一进程申请资源总能在有限时间得到资源,因而不会产生死锁。