操作系统原理课后习题答案
操作系统原理习题答案

1.简述脱机I/O和联机I/Oa. 脱机输入输出方式(Off-Line I/O)是为了解决人机矛盾及CPU 和I/O 设备之间速度不匹配而提出的.它减少了CPU 的空闲等待时间,提高了I/O 速度.具体内容是将用户程序和数据在一台外围机的控制下,预先从低速输入设备输入到磁带上,当CPU 需要这些程序和数据时,在直接从磁带机高速输入到内存,从而大大加快了程序的输入过程,减少了CPU 等待输入的时间,这就是脱机输入技术;当程序运行完毕或告一段落,CPU 需要输出时,无需直接把计算结果送至低速输出设备,而是高速把结果输出到磁带上,然后在外围机的控制下,把磁带上的计算结果由相应的输出设备输出,这就是脱机输出技术。
b. 若这种输入输出操作在主机控制下进行则称之为联机输入输出方式.2.内存管理有哪些功能?它们的主要任务是什么?a. 主要功能: 内存分配,内存保护,地址映射和内存扩充等.b. 内存分配的主要任务是为每道程序分配内存空间,提高存储器利用率,以减少不可用的内存空间,允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要.●内存保护的主要任务是确保每道用户程序都在自己的内存空间中运行,互不干扰.●地址映射的主要任务是将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址.●内存扩充的主要任务是借助虚拟存储技术,从逻辑上去扩充内存容量.3.目前常用的磁盘调度算法有哪些?没中算法应该优先考虑的问题是什么?《5章》目前常用的磁盘调度算法包括:(1)先来先服务调度算法FCFS。
根据进程请求访问磁盘的先后次序进行调度,优点是公平、简单且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况,但寻道时间可能较长。
(2)最短寻道时间优先调度算法SSTF。
选择所要求访问磁道与磁头当前所在磁道距离最近的进程优先调度,但并不能保证平均寻道时间最短。
本算法具较好的寻道性能,但可能导致进程饥饿现象。
《操作系统原理》习题及参考答案

2.设有三个进程 A、B、C,进程 A 需 8 毫秒处理时间,B 需 2 毫秒处理时间,C 需 24 毫 秒处理时间,分别考虑在就绪队列中的顺序为 ABC 时及 CBA 时,用先来先服务算法 进行调度时的平均等待时间。
解:当顺序为 ABC 时: Wa=0 Wb=8 Wc=10 Mw=(0+8+10)/3=6 ms 当顺序为 CBA 时: Wc=0 Wb=24 Wc=26 Mw=(0+24+26)/3=17 ms
3.设在内存中有三道程序:A、B、C,并按照 A、B、C 的优先次序运行,其内部计算和
I/O 操作时间由下图给出。
程序 A
程序 B
程序 C
计算 30ms
计算 60ms
计算 20ms
I/O 40ms
I/O 30ms
I/O 40ms
计算 10ms
计算 10ms
计算 20ms
要求: (1)试画出按多道程序运行的时间关系图(调度程序的执行时间忽略不计)。完成这三道 程序共花多少时间?比单道运行节省多少时间? (2)若处理机调度程序每次进行程序状态转换的时间为 1ms,试画出在处理机调度程序管 理下各程序状态转换的时间关系图。完成这三道程序共花多少时间? 解: (1)在调度程序执行时间忽略不计的情况下,这三道程序的执行时间如下图所示:
1
总的执行时间为 180ms.如果单道执行这三个程序共需 80+100+80=260ms.所以节约 260- 180ms.
(2) 若处理机调度程序每次进行程序状态转换的时间为 1ms,这三道程序的执行时间如下 图所示:
总共花费 180+6=186ms. 4.系统调用(陷入)处理过程。
解:系统调用(陷入)处理过程和中断处理过程是一样的,只是中断源是执行了访管指令 (MS DOS 的 INT 或 UNIX 的 trap)。
计算机操作系统原理分析第三版课后答案

计算机操作系统原理分析第三版课后答案
1.设计现代OS的主要目标是什么?
答:(1)有效性(2)方便性(3)可扩充性(4)开放性
2.OS的作用可表现在哪几个方面?
答:(1)OS作为用户与计算机硬件系统之间的接口
(2)OS作为计算机系统资源的管理者
(3)OS实现了对计算机资源的抽象
3.为什么说OS实现了对计算机资源的抽象?
答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。
OS通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。
4.试说明推动多道批处理系统形成和发展的主要动力是什么?
答:主要动力来源于四个方面的社会需求与技术发展:
(1)不断提高计算机资源的利用率;
(2)方便用户;
(3)器件的不断更新换代;
(4)计算机体系结构的不断发展。
5.何谓脱机I/O和联机I/O?
答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。
该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。
而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。
6.试说明推动分时系统形成和发展的主要动力是什么?
答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。
主要表现在:CPU的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。
操作系统原理 庞丽萍 答案 习题六答案

习题六参考答案(P132)6-2某系统进程调度状态变迁图如图6.5所示(设调度方式为非剥夺方式),请说明:(1)什么原因将引起发生变迁2、变迁3、变迁4?(2)当观察系统中所有进程时,能够看到某一进程产生的一次状态变迁能引起另一进程作一次状态变迁,在什么情况下,一个进程的变迁3能立即引起另一个进程发生变迁1?(3生?(a ) 图6.5解答:(1)当运行进程在分得的时间片内未完成,时间片到将发生变迁2;当运行进程在执行过程中,需要等待某事件的发生才能继续向下执行,此时会发生变迁3;当等待进程等待的事件发生了,将会发生变迁4。
o m PDF dT r i al(2)正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在就绪队列非空时会立即引起一个就绪进程被调度执行的变迁1。
(3)a .3->1的因果变迁可能发生正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在就绪队列非空时必然引起一个就绪进程被调度执行的变迁1。
b.3->2的因果变迁不可能发生。
c.2->1的因果变迁必然发生正运行的进程因时间片到变为就绪状态的变迁2,必然引起一个就绪进程被调度执行的变迁1。
6-3若题2中所采用的调度为可剥夺式,请回答题2中提出的问题: (1)什么原因将引起发生变迁2、变迁3、变迁4?(2)当观察系统中所有进程时,能够看到某一进程产生的一次状态变迁能引起另一进程作一次状态变迁,在什么情况下,一个进程的变迁3能立即引起另一个进程发生变迁1?(3)下述因果变迁是否可能发生?如果可能的话,在什么情况下发生?(a )3->1;(b )3->2;(c )2->1解答:(1)当运行进程在分得的时间片内未完成,时间片到将发生变 迁2;或者新创建一个进程或一个等待进程变成就绪,它具有比当前进程更高的优先级,也将发生变迁2。
h t tp ://w w w .p d f d o .c o m PDF do P a s s w o r d R e m o v e r T r i al当运行进程在执行过程中,需要等待某事件的发生才能继续向下执行,此时会发生变迁3。
操作系统原理习题及答案(全书免费版)

第一章习题及答案一、填空题1.用户与操作系统的接口有,两种。
【答案】命令接口,系统调用【解析】按用户界面的观点,操作系统是用户与计算机之间的接口。
用户通过操作系统提供的服务来有效地使用计算机。
一般操作系统提供了两类接口为用户服务,一种是程序一级的接口,即通过一组广义指令(或称系统调用)供用户程序和其他系统程序调用;另一种是作业一级的接口,提供一组控制命令供用户去组织和控制自己的作业。
2.用户程序调用操作系统有关功能的途径是。
【答案】利用系统调用命令【解析】系统调用命令是操作系统专门给编程人员提供的调用操作系统有关功能的途径,一般在汇编语言和C语言中都提供了使用系统调用命令的方法。
编程人员可以在这些语言中利用系统调用命令动态请求和释放系统资源。
3.UNIX系统是①操作系统,DOS系统是②操作系统。
【答案】①分时(或多用户、多任务),②单用户(或单用户、单任务)【解析】 UNIX系统是一个可供多个用户同时操作的会话式的分时操作系统,DOS系统是为个人计算机设计的一个单用户操作系统。
4.现代计算机中,CPU工作方式有目态和管态两种。
目态是指运行①程序,管态是指运行②程序。
执行编译程序时,CPU处于③。
【答案】①用户,②操作系统,③目态【解析】 CPU工作方式分为目态和管态,主要是为了把用户程序和操作系统程序区分开,以利于程序的共享和保护。
5.从资源分配的角度讲,计算机系统中的资源分为处理机、、和。
操作系统相应的组成部分是、、和。
【答案】处理机、存储器、输入/输出设备和文件资源;处理机管理、存储器管理、设备管理和文件系统【解析】计算机系统中的资源分为硬件资源和软件资源。
硬件资源有处理机、内/外存储器及输入/输出设备。
而软件资源指的是程序、数据和相应的文档。
从资源管理的观点,操作系统是计算机资源系统的管理系统,它提供了处理机管理、存储器管理、输入/输出设备管理和信息文件管理的功能。
对每种资源的管理都可从提供资源情况的记录、资源分配策略、资源分配和回收等几个方面来加以讨论。
操作系统原理参考答案

操作系统原理参考答案参考答案第一章习题1.简述计算机系统的组成。
参考答案:计算机系统就是按人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的系统。
一个完整的计算机系统是由硬件和软件两大部分组成的。
通常硬件是指计算机物理装置本身,是完成系统各项工作的物质基础,主要包括中央处理器(CPU)、存储器和各种输入输出设备(简称I/O设备);而软件是各种程序和文件,用于指挥和管理整个计算机系统按指定的要求进行工作。
2.什么是操作系统?它在计算机中的地位如何?其功能有哪些?参考答案:操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。
操作系统是计算机系统中最靠近硬件的一层软件,它支持和管理硬件,与具体的应用领域无关,在计算机系统的所有软件中,操作系统是基础,其它软件只有在操作系统的支持下,才能发挥作用。
它是计算机硬件和其它软件以及计算机用户之间的联系纽带,如果没有操作系统,用户几乎无法使用计算机系统。
从资源管理的观点看,操作系统具有五个方面的功能:处理器管理、存储器管理、设备管理、文件管理和提供用户接口。
这五大部分相互配合,协调工作,实现计算机系统的资源管理、控制程序的执行、并为用户提供方便的使用接口。
3.操作系统有哪几种类型?各有什么特点?参考答案:操作系统是随着计算机硬件技术的不断发展和用户的使用要求的提高而从无到有不断完善起来的,其主要类型及其特点如下:(1)批处理操作系统:具有很高的资源利用率和系统吞吐量,但作业的平均周转时间较长,也没有交互性。
(2)分时操作系统:具有多路性、独立性、及时性和交互性特征,而交互性是其最重要的特征之一。
(3)实时操作系统:实时操作系统通常是专用的,具有高及时性和高可靠性,但交互性较弱。
(4)微机操作系统:是配置在微型计算机上的操作系统,可以是单任务或多任务,也可以是单用户或多用户系统。
(5)网络操作系统:是配置在网络中的操作系统,用于管理网络通信和共享资源,协调各计算机上任务的运行,并向用户提供统一的、有效方便的网络接口。
操作系统原理课后习题答案

操作系统原理课后习题答案操作系统原理作业第1章1-2 批处理系统和分时系统各有什么特点?为什么分时系统的响应比较快?答:在批处理系统中操作人员将作业成批装入计算机并计算机管理运行,在程序的运行期间用户不能干预,因此批处理系统的特点是:用户脱机使用计算机,作业成批处理,系统内多道程序并发执行以及交互能力差。
在分时系统中不同用户通过各自的终端以交互方式共同使用一台计算机,计算机以“分时”的方法轮流为每个用户服务。
分时系统的主要特点是:多个用户同时使用计算机的同时性,人机问答方式的交互性,每个用户独立使用计算机的独占性以及系统响应的及时性。
分时系统一般采用时间片轮转的方法使一台计算机同时为多个终端用户服务,因此分时系统的响应比较快。
1-4什么是多道程序设计技术?试述多道程序运行的特征。
答:多道程序设计技术是指同时把多个作业放入内存并允许它们交替执行和共享系统中的各类资源;当一道程序因某种原因而暂停执行时,CPU 立即转去执行另一道程序。
多道程序运行具有如下特征:多道计算机内存中同时存放几道相互独立的程序。
宏观上并行:同时进入系统的几道程序都处于运行过程中,它们先后开始了各自的运行但都未运行完毕。
微观上串行:从微观上看内存中的多道程序轮流或分时地占有处理机,交替执行。
1-6操作系统的主要特性是什么?为什么会有这样的特性?答:并发性,共享性,异步性,虚拟性,这些特性保证了计算机能准确的运行,得出想要的结果。
1-7 工作情况如图。
CPU有空闲等待,它发生在100 ms与程序B都在进行I/O操作。
程序A无等待现象,程序B在0 ms间段内有等待现象。
150 ms时间段内,此时间段内程序A50 ms时间段与180 ms200 ms时第2章2-1 什么是操作系统虚拟机?答:在裸机上配置了操作系统程序后就构成了操作系统虚拟机2-3 什么是处理机的态?为什么要区分处理机的态?答:处理机的态,就是处理机当前处于何种状态,正在执行哪类程序。
操作系统原理智慧树知到课后章节答案2023年下云南大学

操作系统原理智慧树知到课后章节答案2023年下云南大学云南大学第一章测试1.允许多个用户将若干个作业提交给计算机系统集中处理的操作系统称为()。
A:实时操作系统 B:网络操作系统 C:分时操作系统 D:批处理系统答案:批处理系统2.()是指两个或两个以上的活动或事件在同一时间间隔内发生。
A:并发 B:并行 C:共享 D:同步答案:并发3.操作系统()采用了分层式结构进行设计。
A:Multics B:IBM OS/360 C:UNIX D:MS-DOS答案:Multics4.批处理系统的运行方式有()等几种。
A:早期批处理 B:脱机批处理 C:执行系统 D:联机批处理 E:加载系统答案:早期批处理;脱机批处理;执行系统;联机批处理5.分时操作系统具有()的特征。
A:异步性 B:多路性 C:交互性 D:及时性 E:独占性答案:多路性;交互性;及时性;独占性6.多道程序设计技术必须要在多个处理器上才能实现。
A:对 B:错答案:错7.虚拟机通过软件模拟硬件系统功能,可以将一台计算机虚拟成多个计算机。
A:对 B:错答案:对8.互斥访问的计算机资源不能被共享。
A:对 B:错答案:错9.实时操作系统不需要具有很强的交互能力。
A:错 B:对答案:对10.Minix3是由荷兰Vrije大学计算机科学系Dijkstra 教授领导开发的。
A:对 B:错答案:错第二章测试1.处理器管理的核心问题是()。
A:处理器调度 B:线程管理 C:作业管理 D:进程管理答案:进程管理2.()是操作系统感知进程存在的惟一标志。
A:FCB B:PCB C:TCB D:JCB答案:PCB3.处于执行状态的进程时间片到则转入()状态。
A:完成B:就绪C:不定D:阻塞答案:就绪4.进程映像包括()等几种要素。
A:DCB B:进程程序段 C:PCB D:进程核心栈 E:进程数据段答案:进程程序段;PCB;进程核心栈;进程数据段5.处理器调度策略中常见的剥夺原则有()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统原理作业第1章1-2 批处理系统和分时系统各有什么特点?为什么分时系统的响应比较快?答:在批处理系统中操作人员将作业成批装入计算机并由计算机管理运行,在程序的运行期间用户不能干预,因此批处理系统的特点是:用户脱机使用计算机,作业成批处理,系统内多道程序并发执行以及交互能力差。
在分时系统中不同用户通过各自的终端以交互方式共同使用一台计算机,计算机以“分时”的方法轮流为每个用户服务。
分时系统的主要特点是:多个用户同时使用计算机的同时性,人机问答方式的交互性,每个用户独立使用计算机的独占性以及系统响应的及时性。
分时系统一般采用时间片轮转的方法使一台计算机同时为多个终端用户服务,因此分时系统的响应比较快。
1-4什么是多道程序设计技术?试述多道程序运行的特征。
答:多道程序设计技术是指同时把多个作业(程序)放入内存并允许它们交替执行和共享系统中的各类资源;当一道程序因某种原因(如I/O 请求)而暂停执行时,CPU 立即转去执行另一道程序。
多道程序运行具有如下特征:多道计算机内存中同时存放几道相互独立的程序。
宏观上并行:同时进入系统的几道程序都处于运行过程中,它们先后开始了各自的运行但都未运行完毕。
微观上串行:从微观上看内存中的多道程序轮流或分时地占有处理机,交替执行。
1-6操作系统的主要特性是什么?为什么会有这样的特性?答:并发性,共享性,异步性,虚拟性,这些特性保证了计算机能准确的运行,得出想要的结果。
1-7(1)工作情况如图。
(2)CPU有空闲等待,它发生在100 ms150 ms时间段内,此时间段内程序A 与程序B都在进行I/O操作。
(3)程序A无等待现象,程序B在0 ms50 ms时间段与180 ms200 ms时间段内有等待现象。
第2章2-1 什么是操作系统虚拟机?答:在裸机上配置了操作系统程序后就构成了操作系统虚拟机2-3 什么是处理机的态?为什么要区分处理机的态?答:处理机的态,就是处理机当前处于何种状态,正在执行哪类程序。
为了保护操作系统,至少需要区分两种状态:管态和用户态。
2-5 什么是中断?在计算机系统中为什么要引用中断?答:中断是指某个事件发生时,系统终止现行程序的运行、引出处理该事件程序进行处理,处理完毕后返回断点,继续执行。
为了实现并发活动,为了实现计算机系统的自动化工作,系统必须具备处理中断的能力。
2-8中断和俘获有什么不同?答:中断指由处理机外部事件引起的中断称为外中断,又称中断。
包括I/O中断、外中断。
俘获是指由外处理内部事件引起的中断称为俘获。
包括访管俘获、程序性中断、机器故障中断。
2-9 什么是中断响应,其实质是什么?答:中断响应是当中央处理机发现已有中断请求时,中止现行程序执行,并自动引出中断处理程序的过程。
中断响应的实质是交换指令执行地址和处理器状态,以达到如下目的:(1)保留程序断点及有关信息;(2)自动转入相应的中断处理程序执行。
2-12 以trap指令为例,用图说明自陷处理的一般过程?第3章3-1 什么是系统生成?答:系统生成就是操作系统的生成过程。
3-2 系统引导的主要任务是什么?答:将操作系统的必要部分装入主存并使系统运行,最终处于命令接受状态。
3-3 处理应用程序分哪几个作业步?答:①用某种预言编制一个程序,该程序被称为源程序。
②将源程序和初始数据记录在某种输入介质上,一般在终端设备上直接编辑源程序。
③按照一定的要求控制计算机工作,并经过加工,最终计算出结果。
3-5 用户与操作系统的接口是什么?一个分时系统提供什么接口?一个批处理系统又提供什么接口?答:用户与操作系统的接口是指操作系统提供给用户与计算机打交道的外部机制。
一个分时系统提供的接口有系统功能调用和键盘操作命令。
一个批处理系统提供的接口有系统功能调用和作业控制语言。
3-7 假定某系统提供硬件的访管指令(例如形式为“svc n”),为了实现系统调用,系统设计者应做哪些工作?用户又如何请求操作系统服务?答:当处理机执行到这一条指令时就发生中断,该中断称为访管中断,它表示正在运行的程序对操作系统的某种需求。
借助中断,使机器状态由用户态转为管态。
为了使控制能转到用户当前所需的那个例行子程序去,需要指令提供一个地址码。
这个地址码表示系统调用的功能号,它是操作系统提供的众多的例行子程序的编号。
在访管指令中填入相应的号码,就能使控制转到特定的例行子程序去执行以提供用户当前所需的服务。
第4章4-3什么是进程?进程与程序的主要区别是什么?答:进程是指一个具有一定独立功能的程序关于某个数据集合的一次运行活动。
进程是动态的,程序的静态的,进程是程序的动态执行过程。
4-6进程有哪几个基本状态?试画出进程状态迁移图,并注明发生变迁的原因。
答:进程有三种基本状态,即运行状态,就绪状态,等待状态。
如果系统能为每个进程提供一台处理机,则系统中所有进程都可以同时执行,但实际上处理机的数目总是小于进程数,因此往往只有少数几个进程可真正获得处理机控制权。
4-9n个并发程序共用一个公共变量Q,写出用信号灯实现n个进程互斥时的程序描述,给出信号灯值的取值范围,并说明每个取值的物理意义。
答:main( ){int mutex=1;int i;cobeginfor(i=1;i<=n;i++)P[i]; coend }P( ){......p(mutex);...v(mutex);...}若mutex=1,表示没有进程进入临界区;若mutex=0,表示有一个进程进入临界区;若mutex=-1,表示一个进程进入临界区,另一个进程等待进入。
4-11在如图4.33所示的进程流程图中,有五个进程合作完成某一任务。
说明这五个进程之间的同步关系,并用P,V操作实现之,要求写出程序描述。
答:main( ){int s2,s3,s4,s5=0; /*表示进程p2,p3,p4,p5能否执行*/ cobeginP1( );P2( );P3( );P4( );coend}P1( ) P2( ) P3( ) P4( ) P5( ){ ... { p(s2); { p(s3); { p(s4); { p(s5);... ... ... ... ...v(s2); ... .. ... ...v(s3); } v(s5); v(s5); }v(s4); } }}4-12如图4.34所示,get,copy,put三个进程共用两个缓冲区s,t。
Get进程负责不断地把输入记录送入缓冲区s中,copy进程负责从缓冲区s中取出记录复制到缓冲区t中,而put进程负责把记录从缓冲区t中取出打印。
试用P,V操作实现这三个进程之间的同步,并写出程序描述。
答:main( ){int s,t=0; /*表示进程get,copy,put能否执行*/cobeginGet( );Put( );coend}Get( ) Copy( ) Put( ){ p(s); { p(t); { ....... .... v(t);} v(s); }}4-13 什么是进程的互斥,什么是进程的同步?同步和互斥这两个概念有什么联系与区别?答:互斥:多个操作不能在同一时间,同一临界区里执行。
同步:并发进程在一些关键点上可能需要互相等待与互通消息互斥可以说是同步的特殊情况,通过锁和信号灯机制可以实现同步与互斥。
4-18 用于进程控制的原语主要有哪几个?答:主要有:进程创建,进程撤销,进程阻塞,进程唤醒。
4-19什么是线程,线程与进程有什么区别?答:线程是进程的进一步划分,线程也称为轻量进程。
第5章5-5, p进程共享m个同类资源,每一个资源在任一时刻只能供一个进程使用,每一进程对任一资源都只能使用一有限时间,使用完便立即释放,并且每个进程对该类资源的最大需求量小于该类资源的数目。
设所有进程对资源的最大需求数目之和小于p+m.试证:在该系统中不会发生死锁。
证:假设每个进程最多请求Xi(1<i<p)个资源,则根据题意有,X1+X2+...+Xp-1+Xp<p+mX1+X2+...+Xp-1+Xp - p<m(X1-1)+(X2-1)+...+(Xp-1-1)+(Xp-1)<m(X1-1)+(X2-1)+...+(Xp-1-1)+(Xp-1)+1<m+1(X1-1)+(X2-1)+...+(Xp-1-1)+(Xp-1)+1<m这说明在最坏情况下,每个进程均还差一个资源,而此时系统中还有一个没被分配的可用资源。
将它分配给任何一个进程,都可以使该得到全部资源的进程运行结束而释放其占有的资源,并将释放的资源分配给其它的进程,使其它进程都能运行结束,系统不会发生死锁。
证毕。
5-6 图5.9表示一带闸门的运河,其上有两家吊桥。
吊桥坐落在一条公路上,为使该公路避开一块沼泽地而令其横跨运河两次。
运河和公路的交通都是单向的。
运河上的基本运输由驳船担负。
在一般驳船接近吊桥A时就拉汽笛警告,若吊桥上无车辆,吊桥就吊起,直到驳船尾部通过此桥为止。
对吊桥B也按同样次序处理。
一艘典型驳船的长度为200m,当它在河上航行时是否会产生死锁?若会,其理由是什么?如何能克服一个可能的死锁?请提出一个防止死锁的办法。
如何利用信号灯的P,V操作,实现车辆和驳船的同步?(1)驳船长200 米,当驳船通过了A桥,其船头到达B桥,请求B桥吊起,而此时它的尾部仍占据 A 桥。
若这个时候 B 桥上及 B 桥到 A 桥之间的公路上都被汽车占据,而汽车又要求通过A 桥。
这样驳船和汽车都无法前进,形成死锁的局面。
(2)可以有以下两种方法:c资源的静态分配。
即进程把它所需要的所有资源在运行前提前申请,系统把它所需要的全部资源一次性都分配给它。
也就是说,这时把 A 桥和 B 桥看成一个资源。
打破了产生死锁的四个必要条件之一的部分分配条件。
d可以规定资源按序申请和分配,从而破坏了死锁的循环等待条件,防止死锁的发生。
规定如下:B 桥的序号小于 A 桥的序号,驳船和汽车都必须先申请序号小的资源 B 桥,申请得到满足后,再申请序号大的资源A 桥。
(3)算法如下:c设置两个互斥信号量mutexa,mutexb,用来实现驳船和汽车对A 桥和对B 桥的互斥使用;设置一个共享变量count,用来记录当前占用A 桥和B 桥的汽车数并设置互斥信号量mutex,用来实现汽车对共享变量count 的互斥访问。
Main( ){int mutexa, mutexb, mutex, countmutexa=1;mutexb=1;mutex=1;count=0;cobeginbargei; //i=1,2,..,mcarj; //j=1,2,..,ncoend}bargei(){.....P(mutexb);P(mutexa);吊起B 桥;吊起A 桥;驳船通过A 桥;放下A 桥;驳船通过B 桥;放下B 桥;V(mutexa);V(mutexb);.....}carj(){......P(mutex);count++;if(count==1){P(mutexb);P(mutexa);}V(mutex);汽车通过B 桥;汽车通过AB 段公路;汽车通过A 桥;P(mutex);count--;if(count==0){V(mutexb);V(mutexa);}V(mutex);.....}d设置两个互斥信号量mutexa,mutexb,用来实现驳船和汽车对A桥和对B桥的互斥使用;设置两个共享变量counta和countb,分别用来记录A桥和B桥上的汽车数并设置互斥信号量mutex1和mutex2,用来实现汽车对共享变量counta和countb的互斥访问。