《计算机操作系统4章课后经典习题参考答案.docx》由会员分享,可在线阅读,更多相关《计算机操作系统4章课后经典习题参考答案.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课后习题第一章.设计现代OS的主要目标是什么?答:(1)有效性(2)方便性(3)可扩充性(4)开放性. OS的作用可表现在哪几个方面?答:(1) OS作为用户与计算机硬件系统之间的接口OS作为计算机系统资源的管理者(2) OS实现了对计算机资源的抽象3.为什么说OS实现了对计算机资源的抽象?答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽 象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS通过 在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共 同实现了对计算机资源的抽象。7.实现分时系统的关键问题是什
2、么?应如何解决?答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户。解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终 端上输入的数据;为每个终端配置缓冲区,暂存用户键入的命令或数据。针对及时处理问 题,应使所有的用户作业都直接进入内存,并且为每个作业分配个时间片,允许作业只在 自己的时间片内运行,这样在不长的时间内,能使每个作业都运行一次。10 .试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受 的等待
3、时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成 截止时间来确定的,一般为秒级到亳秒级,甚至有的要低于100微妙。(2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。(3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统 中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。11 . os有哪几大特征?其最基本的特征是什么?答:并发性、共享性、虚拟性和异步性四个基
4、本特征;最基本的特征是并发性。13.什么是时分复用技术?举例说明它能提高资源利用率的根本原因是什么?答:时分复用技术:将资源在不同的时间片内分配给各进程以使该资源被重复利用,从而提 高资源的利用率。如采用时分复用技术的虚拟处理机,能够在不同的时间片内处理多个用户 的请求,从而使得用户感觉自己独占主机,而处理机在这期间也被充分的利用第二章I .什么是前趋图?为什么要引入前趋图?答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(DirectedAcyclicGraph),用于描述进程之间执行的前后关系。2 .画出下面四条语句的前趋图:Sl=a: =x+y; S2=b:
5、=z+l; S3=c: =a - b; S4=w: =c+l;答:其前趋图为:3 .什么程序并发执行会产生间断性特征?答:程序在并发执行时,由于它们共享系统资源,为完成同一项任务需要相互合作,致使这 些并发执行的进程之间,形成了相互制约关系,从而使得进程在执行期间出现间断性。4 .程序并发执行时为什么会失去封闭性和可再现性?答:程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由多个程序改 变,致使程序运行失去了封闭性,也会导致其失去可再现性。6 .试从动态性,并发性和独立性上比较进程和程序?答:(1)动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源而暂停
6、执行,由撤销而消亡。进程有一定的生命期,而程序只是一组有序的指令集合,是静 态实体。8. PCB提供了进程管理和进程调度所需要的哪些信息?答:进程管理:通用寄存器、指令寄存器、程序状态字、用户栈指针进程调度:进程状态、进程优先级、事件、其他信息10 .何谓操作系统内核?内核的主要功能是什么?答:操作系统内核是指大多数操作系统的核心部分。它由操作系统中用于管理存储器、文 件、外设和系统资源的那些部分组成。操作系统内核通常运行进程并提供进程间的通信.试说明进程在三个基本状态之间转换的典型原因。答:(1)就绪状态f执行状态:进程分配到CPU资源(2)执行状态一就绪状态:时间片用完(3)执行状态一阻塞
7、状态:I/O请求(4)阻塞状态一就绪状态:I/O完成.在创建一个进程时所要完成的主要工作是什么?答:(1) OS发现请求创建新进程事件后,调用进程创建原语Creat();(2)申请空白PCB;(3)为新进程分配资源;(4)初始化进程控制块;(5)将新进程插入就绪队列.16 .在撤销一个进程时所要完成的主要工作是什么?答:(1)根据被终止进程标识符,从PCB集中检索出进程PCB,读出该进程状态。(2)若被终止进程处于执行状态,立即终止该进程的执行,置调度标志真,指示该进程被终止 后重新调度。(3)若该进程还有子进程,应将所有子孙进程终止,以防它们成为不可控进程。(4)将被终止进程拥有的全部资源,
8、归还给父进程,或归还给系统。(5)将被终止进程PCB从所在队列或列表中移出,等待其它程序搜集信息。19.为什么要在OS中引入线程?答:在操作系统中引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有 更好的并发性,提高CPU的利用率。进程是分配资源的基本单位,而线程则是系统调度的基 本单位。第三章2 .处理机调度算法的共同目标是什么?批处理系统的调度目标又是什么?答:共同目标:资源利用率,公平性,平衡性,策略强制执行。批处理系统的调度目标:平均周转时间短,系统吞吐量高,处理机利用率高。5 .在作业调度中应如何确定接纳多少个作业和接纳哪些作业?答:作业调度每次接纳进入内存的作业数,
9、取决于多道程序度。应将哪些作业从外存调入内存, 取决于采用的调度算法。最简单的是先来服务调度算法,较常用的是短作业优先调度算法和 基于作业优先级的调度算法。6 .为什么要引入高响应比优先调度算法?它有何优点?答:在批处理系统中,FCFS算法所考虑的只是作业的等待时间,而忽视了作业的运行时间。 而SJF算法正好与之相反,只考虑作业的运行时间,而忽视了作业的等待时间。高响应比优 先调度算法则是既考虑了作业的等待时间,又考虑作业运行时间的调度算法,因此既照顾了短 作业,又不致使长作业的等待时间过长,从而改善了处理机调度的性能。7 .在抢占调度方式中,抢占的原则是什么?答:抢占的原则有:时间片原则、优
10、先权原则、短作业优先权原则等。13.在时间片轮转法中,应如何确定时间片的大小?答:时间片应略大于一次典型的交互需要的时间。一般应考虑三个因素:系统对相应时间的要 求、就绪队列中进程的数目和系统的处理能力。21.什么是最早截止时间优先调度算法?举例说明。答:根据任务的开始截止时间确定的任务优先级调度算法。截止时间越早则优先级越高。该算 法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的先后排序。举例:非抢占式调度方式用于非周期实时任务。图3-9是将该算法用于非抢占调度方式之例。 该例中具有四个非周期任务,它们先后到达。系统首先调度任务1执行,在任务1执行期间, 任务2、3又先后到达
11、。由于任务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), 由于文件Fl (F2)已被P1打开,故P2会被阻塞。当P1写完文件F1 (或
12、F2)而关闭F1 (F2)时尸2会由阻塞状态转为就绪状态,被调度执行后重新打开文件F1 (或F2) o在这种 情况下,P1和P2都能正常运行下去。若P2先打开F1和F2,然后P1才去打开F1(或F2),P1 和P2同样也可以正常运行下去。但如果在P1打开F1的同时尸2去打开F2,每个进程都占有一个打开的文件,此时就可能出现 问题。因为当P1试图去打开F2,而P2试图去打开F1时,这两个进程都会因文件已被打 开 而阻塞,它们希望对方关闭自己所需要的文件,但谁也无法运行,因此这两个进程将会无限 期地等待下去,而形成死锁。27 .何谓死锁?产生死锁的原因和必要条件是什么? 答:死锁是指多个进程在运行
13、过程中因争夺资源而造成的一种僵局,当进程处这种僵持状 态时,若无外力作用,它们都将无法再向前推进。产生死锁的原因为竞争资源和进程间推进 顺序非法。其必要条件是:互斥条件、请求和保持条件、不剥夺条件、环路等待条件29 .请详细说明可通过哪些途径预防死锁。答:(1)推弃“请求和保持”条件,就是如果系统有足够资源,便一次性把进程需要的所有资 源分配给它;2)推弃“不剥夺”条件,就是已经拥有资源的进程,当它提出新资源请求而不能立即满足时, 必须释放它已保持的所有资源,待以后需要时再重新申请;(3)推弃“环路等待”条件,就是将所有资源按类型排序标号,所有进程对资源的请求必须 严格按序号递增的次序提出31
14、 .在银行家算法中,若出现下述资源分配情况,试问:Pivcess.AllocationN+L用Fil心血00320012inn.PI1,5QP;13542356Pm03320652巳OOH0656(1)该状态是否安全?(2)若进程P2提出请求Request(lz 2, 2Z 2)后,系统能否将资源分配给它?解:(1)进程/资 源情况WorkNeedAllocationWo rk+AI locationFinishABCDABCDABCDABCDPO1,6h220: a2Q。,3, 21-4TureP3L6| 显 40 0 5: 2Q 0 3, 2r& & 6TureP41-60,5t60, 0
15、, 1.41t 9:包 10TureP11: &9, 1017, 5r0L o, 口, o2 9r 10TureP22 9, 9. 102: 3; 5r 61,3,5: 43, 12, U, 14Ture据安全性检查,可以找到一个安全序列PO,P3rP4rP1.P2因此该状态是安全的。(2) P2发出请求向量Request (1,222系统进行如下检查A. Request2 (1.2,2,2) =Need2 (2,3, 5,6)B. RQquest2 (1,2.2,2K=AMailab llj ( F6.2,2);C.系统暂时先假定可以为P2分配资源,慵改有关数据.如下图所示:ProcessA
16、llocationNeedAvailableD,进行安全性检杳,可用资源(0.4, 0. 0)已经不能满足任何一个进程需要,A B C DA B C DA B C DP00, 0, 3, 20, 0, 1, 20, 4, 0, 0P11, 0, 0, 01, 7, 5, 0P22, 5, 7, 61. 1. 3, 4P30, 3, 3, 20, 6, 5, 2P40. 0, 1, 40, 6, 5, 6故系统进入不安全状态.因此,系统不能将资源分配给P2第四章2 .可采用哪几种方式将程序装入内存?它们分别适用于何种场合?答:(1)绝对装入方式,只适用于单道程序环境。(2)可重定位装入方式,适用
17、于多道程序环境。(3)动态运行时装入方式,用于多道程序环境;不允许程序运行时在内存中移位置。3 .何谓静态链接?何谓装入时动态链接和运行时的动态链接? P120答:静态链接是指在程序运行前,先将各目标模块及它们所需的库函数,链接成一个完整 的装配模块,以后不再拆开的链接方式。装入时动态链接是指将用户源程序编译后得到的一组目标模块,在装入内存时采用边装入边链接的链接方式。运行时动态链接是指对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行的链接。4 .何谓装入时动态链接?装入时动态链接方式有何优点?答:这是指将用户源程序编译后所得到的一组目标模块,再装入内存时,采用边装入边链接 的
18、链接方式。即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去 找出对应的外部目标模块,并将它装入内存。装入时动态链接方式有以下优点:便于修改和更新。采用动态链接方式,由于各目标模块是分开存放的,所以要修改或更 新个目标模块是件非常容易的事。便于实现对目标模块的共享。再采用静态链接方式时,每个应用模块都必须含有其目标模 块的拷贝,无法实现对目标模块的共享。但采用装入时动态链接方式时,OS就很容易将一个 目标模块链接到几个应用模块上,实现多个应用程序对该模块的共享。5 .何谓运行时动态链接?运行时动态链接有何优点?答:在许多情况下,应用程序在运行时,每次要运行的模块可能都是不相同
19、的。但由于事先 无法知道本次要运行哪些模块,故只能是将所有可能要运行到的模块全部都装入内存,并在 装入时全部链接在一起,显然这是低效的,因为往往会有部分目标模块根本就不运行。近几 年流行起来的运行时动态链接方式,是时上述装入时链接方式的一种改进。这种链接方式是, 将对某些模块的链接推迟到程序执行时才进行。亦即,在执行过程中,当发现一个被调用模 块尚未装入内存时,立刻由OS去找到该模块,将之装入内存,将其链接到调用者模块上, 这样不仅能加快程序的装入过程,而且可节省大量的内存空间。7 .为什么要引入动态重定位?如何实现?答:在动态运行时装入的方式中,作业装入内存后的所有地址仍然都是相对(逻辑)地
20、址。而将 相对地址转换为绝对(物理)地址的工作被推迟到程序指令要真正执行时进行。为使地址的转 换不会影响到指令的执行速度,必须有硬件地址变换机构的支持,即须在系统中增设一个 重定位寄存器,用它来存放数据在内存中的起始地址。程序在执行时,真正访问的内存地址 是相对地址与重定位寄存器中的地址相加而形成的。地址变换过程是在程序执行期间,随着 对每条指令或数据的访问自动进行的,故称为动态重定位。当系统对内存进行了 “紧凑”, 而使若干程序从内存的某处移至另一处时,不需对程序做任何修改,只要用该程序在内存 中的新起始地址去置换原来的起始地址即可。11 .令Buddyk(x)为大小为2k、地址为x的块的伙
21、伴系统地址,试写出Buddyk(x)的 通用表达式bnddyk(xj= xk(xM0D2k-1) = 213 .为什么要引入对换?对换可分为哪几种类型?答:对换技术也称为交换技术,由于当时计算机的内存都非常小,为了使该系统能分时运行读 个用户程序而引入了对换技术。根据每次对换时所兑换的数量,可将对换分为如下两类:整体 对换。处理机中级调度实际上就是存储器的对换功能,其目的是用来解决内存紧张问题,并 进一步提高内存的利用率和系统的吞吐量。由于在中级调度中对换是以整个进程为单位的, 故称之为“进程对换”或“整体对换”。这种对换被广泛地应用于多道程序系统中,并作为 处理机的中级调度。页面(分段)对换
22、,如果对换是以进程的一个“页面”或“分段”为单位进行的,则分别称之为 “页面对换”或“分段对换”,又统称为“部分对换”。这种对换方法的目的是为了支持 虚 拟存储系统。18 .什么是页面?什么是物理块?页面的大小应如何确定?答:页面。分页存储管理将进程的逻辑空间分成若干个页,并为各页加以编号,从0开始, 如第。页、第1页等.物理块。相应的,也把内存的物理地址空间分成若干个块,同样也为它们加以编号,如0#块、 1#块等等。页面大小。在分页系统中,若选择过小的页面大小,虽然一方面可以减小内存的碎片,起到减 少内存碎片总空间的作用,有利于内存利用率的提高,但另一方面却会造成每个进程占用较 多的页面,从
23、而导致进程的页表过长,占用大最内存。此外,还会降低页面的换出的效率。 然而,如果选择的页面过大,虽然可以减少页表的长度,提高页面换进换出的效率,但却又会 使页内碎片增大。因此,页面的大小应选择适中,且页面大小应是2的藏,通常为1KB8KB。19 .什么是页表?页表的作用是什么?答:在分页系统中,允许将进程的各个页离散的存储在内存的任一物理块中,为保证进程仍然 能够正确地运行,即能在内存中找到每个页面所对应的物理块,系统又为每个进程建立了 张页面映像表,简称页表。在进程地址空间内的所有页(0N),依次在页表中有一页表项,其 中记录了相应页表在内存中对应的物理块号。在配置了页表后,进程执行时,通过
24、查找该表, 即了找到每页在内存中的物理块号。可见,也表的作用是实现从页号到物理块号的地址映射。21 .在分页系统中是如何实现地址变换的?答:页表功能是由一组专门的寄存器来实现的。一个页表项用一个寄存器。由于寄存器具有较 高的访问速度,因而有利于提高地址变换的速度,但由于寄存器成本较高,页表又可能很大, 因此,页表大多驻留在内存中,在系统中只设置一个页表寄存器,在其中存放页表在内存的 始址和页表的长度。当进程要访问某个逻辑地址中的数据时,分页地址变换机构会自动将有效 地址分为页号和页内地址两部分,再以页号为索引去检索页表。查找操作由硬件执行。在执 行检索之前,先将页号与页表长度进行比较,如果页号
25、大于或等于页表长度,则表示本次所 访问的地址已超越进程的地址空间。于是,这一错误将被系统发现,并产生已地址越界中断。 若未出现越界中断,则将页表始址与页号和页表项长度的乘积相力口,便得到该表项在页表中的 位置,于是可从中得到该页的物理块号,将之装入物理地址寄存器中。与此同时,再将有效 地址寄存器中的页内地址送入物理地址寄存器的块内地址字段中。这样便完成了从逻辑地址 到物理地址的变换。26.分页和分段存储管理有何区别?答:页是信息的物理单位,采用分页存储管理方式是为实 现离散分配方式,以消减内存的外零头,提高内存的利用率。或者说,分页仅仅只是系统管 理上的需要,完全是系统的行为,多用户是不可见的
26、。而段是信息的逻辑单位。它通常包含 的是一组意义相对完整的信息。分段的目的主要在于能更好地满足用户的需要。页的大小固定而且由系统决定,在采用分页存储管理系统中,在硬件结构上,就是把用户程序 的逻辑地址划分为页号和页内地址两部分,是直接由硬件实现的,因而在每个系统中只能有 一种大小的页面。而段的大小不固定,通常由编译程序根据信息的性质来划分 分页用户程序地址空间是一维的,分页完全是系统的行为,故在分页系统中,用户程序的地 址 是属于单一的线性地址空间,程序员只需利用一个记忆符即可表示一个地址。而分段是用 户的行为,故在分段系统中,用户程序的地址空间是二维的,程序员在标识一个地址时, 既需给出段名,又需给出段内地址。