计算机操作系统1-4章课后经典习题参考答案 下载本文

内容发布更新时间 : 2024/5/18 1:38:48星期一 下面是文章的全部内容请认真阅读。

课后习题

第一章

1.设计现代OS的主要目标是什么?

答:(1)有效性 (2)方便性 (3)可扩充性 (4)开放性 2.OS的作用可表现在哪几个方面?

答:(1)OS作为用户与计算机硬件系统之间的接口 (2)OS作为计算机系统资源的管理者 (3)OS实现了对计算机资源的抽象

3.为什么说OS实现了对计算机资源的抽象?

答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。

7.实现分时系统的关键问题是什么?应如何解决?

答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令, 在用户能接受的时延内将结果返回给用户。

解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配置缓冲区,暂存用户键入的命令或数据。针对及时处理问题,应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内运行,这样在不长的时间内,能使每个作业都运行一次。

10.试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。

答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微妙。

(2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某 些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。 (3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度 的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。 11.OS有哪几大特征?其最基本的特征是什么?

答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。 13.什么是时分复用技术?举例说明它能提高资源利用率的根本原因是什么?

答:时分复用技术:将资源在不同的时间片内分配给各进程以使该资源被重复利用,从而提高资源的利用率。如采用时分复用技术的虚拟处理机,能够在不同的时间片内处理多个用户的请求, 从而使得用户感觉自己独占主机,而处理机在这期间也被充分的利用

第二章

1. 什么是前趋图?为什么要引入前趋图?

答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(DirectedAcyclic Graph),用于描述进程之间执行的前后关系。

2. 画出下面四条语句的前趋图:

S1=a:=x+y; S2=b:=z+1; S3=c:=a – b;S4=w:=c+1; 答:其前趋图为:

3. 什么程序并发执行会产生间断性特征?

答:程序在并发执行时,由于它们共享系统资源,为完成同一项任务需要相互合作,致使这些并发执行的进程之间,形成了相互制约关系,从而使得进程在执行期间出现间断性。 4.程序并发执行时为什么会失去封闭性和可再现性?

答:程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由多个程序改变,致使程序运行失去了封闭性,也会导致其失去可再现性。 6.试从动态性,并发性和独立性上比较进程和程序?

答:(1)动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源 而暂停执行,由撤销而消亡。进程有一定的生命期,而程序只是一组有序的指令集合,是静态实体。

8.PCB提供了进程管理和进程调度所需要的哪些信息?

答:进程管理:通用寄存器、指令寄存器、程序状态字、用户栈指针 进程调度:进程状态、进程优先级、事件、其他信息 10.何谓操作系统内核? 内核的主要功能是什么?

答:操作系统内核是指大多数操作系统的核心部分。它由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。操作系统内核通常运行进程,并提供进程间的通信 11.试说明进程在三个基本状态之间转换的典型原因。 答: (1)就绪状态→执行状态:进程分配到CPU资源

(2)执行状态→就绪状态:时间片用完 (3)执行状态→阻塞状态:I/O请求 (4)阻塞状态→就绪状态:I/O完成

16.在创建一个进程时所要完成的主要工作是什么? 答:

(1)OS 发现请求创建新进程事件后,调用进程创建原语Creat(); (2)申请空白PCB; (3)为新进程分配资源; (4)初始化进程控制块; (5)将新进程插入就绪队列.

17.在撤销一个进程时所要完成的主要工作是什么? 答:

(1)根据被终止进程标识符,从PCB 集中检索出进程PCB,读出该进程状态。 (2)若被终止进程处于执行状态,立即终止该进程的执行,置调度标志真,指示该进程被终止后重新调度。

(3)若该进程还有子进程,应将所有子孙进程终止,以防它们成为不可控进程。 (4)将被终止进程拥有的全部资源,归还给父进程,或归还给系统。 (5)将被终止进程PCB 从所在队列或列表中移出,等待其它程序搜集信息。 19.为什么要在OS 中引入线程?

答:在操作系统中引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性,提高CPU的利用率。进程是分配资源的基本单位,而线程则是系统调度的基本单位。

第三章

2.处理机调度算法的共同目标是什么? 批处理系统的调度目标又是什么? 答: 共同目标:资源利用率,公平性,平衡性,策略强制执行。

批处理系统的调度目标:平均周转时间短,系统吞吐量高,处理机利用率高。 5.在作业调度中应如何确定接纳多少个作业和接纳哪些作业?

答:作业调度每次接纳进入内存的作业数,取决于多道程序度。应将哪些作业从外存调入内存,取决于采用的调度算法。最简单的是先来服务调度算法,较常用的是短作业优先调度算法和基于作业优先级的调度算法。

6.为什么要引入高响应比优先调度算法?它有何优点?

答: 在批处理系统中,FCFS算法所考虑的只是作业的等待时间,而忽视了作业的运行时间。而SJF算法正好与之相反,只考虑作业的运行时间,而忽视了作业的等待时间。高响应比优先调度算法则是既考虑了作业的等待时间,又考虑作业运行时间的调度算法, 因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机调度的性能。 6.在抢占调度方式中,抢占的原则是什么?

答:抢占的原则有:时间片原则、优先权原则、短作业优先权原则等。 13.在时间片轮转法中,应如何确定时间片的大小?

答:时间片应略大于一次典型的交互需要的时间。一般应考虑三个因素:系统对相应时间的要求、就绪队列中进程的数目和系统的处理能力。 21.什么是最早截止时间优先调度算法?举例说明。

答:根据任务的开始截止时间确定的任务优先级调度算法。截止时间越早则优先级越高。该算法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的先后排序。 举例:非抢占式调度方式用于非周期实时任务。图3-9是将该算法用于非抢占调度方式之例。该例中具有四个非周期任务,它们先后到达。系统首先调度任务1执行,在任务1执行期间,任务2、3又先后到达。由于任务3的开始截止时间早于任务2,故系统在任务1后将调度任务3执行。在此期间又到达作业4,其开始截止时间仍是早于任务2的,故在任务3执行完后,系统又调度任务4执行,最后才调度任务2执行。 25.试举例说明竞争不可抢占资源所引起的死锁。

答:例如,系统中有两个进程P1和P2,它们都准备写两个文件F1和F2,而这两者都属于可重用和不可抢占性资源。进程P1先打开F1,然后再打开文件F2;进程P2先打开文件F2,后打开F1

两个进程P1和P2在并发执行时,如果P1先打开F1和F2,然后P2才去打开F1(或F2),由于文件F1(F2)已被P1打开,故P2会被阻塞。当P1写完文件F1(或F2)而关闭F1(F2)时,P2会由阻塞状态转为就绪状态,被调度执行后重新打开文件F1(或F2)。在这种情况下,P1和P2都能正常运行下去。若P2先打开F1和F2,然后P1才去打开F1(或F2),P1和P2同样也可以正常运行下去。

但如果在P1打开F1的同时,P2去打开F2,每个进程都占有一个打开的文件,此时就可能出现问题。因为当P1试图去打开F2,而P2试图去打开F1时,这两个进程都会因文件已被打开而阻塞,它们希望对方关闭自己所需要的文件,但谁也无法运行,因此这两个进程将会无限期地等待下去,而形成死锁。

27.何谓死锁?产生死锁的原因和必要条件是什么?

答:死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。产生死锁的原因为竞争资源和进程间推进顺序非法。其必要条件是:互斥条件、请求和保持条件、不剥夺条件、环路等待条件 29.请详细说明可通过哪些途径预防死锁。

答:(1)摈弃“请求和保持”条件,就是如果系统有足够资源,便一次性把进程需要的所有资源分配给它;

2)摈弃“不剥夺”条件,就是已经拥有资源的进程,当它提出新资源请求而不能立即满足时,必须释放它已保持的所有资源,待以后需要时再重新申请;

(3)摈弃“环路等待”条件,就是将所有资源按类型排序标号,所有进程对资源的请求必须严格按序号递增的次序提出

31.在银行家算法中,若出现下述资源分配情况,试问:

(1) 该状态是否安全?

(2) 若进程P2提出请求Request(1, 2, 2, 2)后,系统能否将资源分配给它?