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