2022年操作系统第五章作业答案 .pdf
第 5 章习题答案3、可变分区管理方式下,采用移动技术有什么优点?移动一道作业时操作系统要做哪些工作?答:消除外部碎片.经过一段时间的分配回收后,会产生很多碎片,这些碎片都很小,不足以满足程序分配重内存的要求,但总和可以满足程序的分配要求.通过移动技术,在适当的时候,在内存中移动程序 ,把所有空闲碎片合并成一个连续的大空闲空间放在内存一端,就可以满足分配的要求移动一道作业时,操作系统需要修改被移动进程的地址信息,还要复制进程空间;而且在移动时必须停止所有其他程序的运行。4、用可变分区方式管理主存时,假定主存中按地址顺序依次有五个空闲区,空闲区的大小依次为 32K ,10K ,5K ,228K ,100K。现有五个作业J1,J2,J3,J4 和 J5。它们各需主存 1K,10K , 108K,28K 和 115K。假设采用最先适应分配算法能把这五个作业按J1 J5的次序全部装入主存吗?你认为按怎样的次序装入这五个作业可使主存空间利用率最高。答:1不行。列表模拟 J1J5 进入内存情况如下:初 始 空 闲 分区状态J1 进入后空闲 分 区 的 状态J2 进入后空闲 分 区 的 状态J3 进入后空闲 分 区 的 状态J4 进入后空闲 分 区 的 状态没有满足J5运 行 条 件 的空闲分区32K 31K 21K 21K 21K 10K 10K 10K 10K 10K 5K 5K 5K 5K 5K 228K 228K 228K 120K 92K 100K 100K 100K 100K 100K 2以 J1,J2,J3,J5,J4的次序装入这五个作业可使主存空间利用率最高。以上述顺序模拟装入过程列表如下:初 始 空 闲 分区状态J1 进入后空闲 分 区 的 状态J2 进入后空闲 分 区 的 状态J3 进入后空闲 分 区 的 状态J5 进入后空闲 分 区 的 状态J4 进入后空闲 分 区 的 状态32K 31K 21K 21K 21K 21K 10K 10K 10K 10K 10K 10K 5K 5K 5K 5K 5K 5K 228K 228K 228K 120K 5K 5K 100K 100K 100K 100K 100K 72K 这样可以将五个作业全部装入内存,使得内存利用率最高。6、段式存储管理系统中是如何实现存储保护的?答:因为段是按逻辑意义来划分的,可以按段名访问所以段式存储管理可以方便地实现内存信息的共享并进行有效的内存保护。段式管理的保护主要有两种。一种是地址越界保护法,另一种是存取方式控制保护法。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 10 页具体措施有:(1)利用段表及段长来实现段的保护,防止程序执行时地址越界。(2)存取权限保护法:在段表中设有“存取权”一项,可对程序的保护权限进行各种必要的限制。(3)存储保护键保护:由于I/O 通道对存储器访问是不经过段表的,因此有的机器还采用存储保护键保护。地址越界保护是利用表中的段长项与虚拟地址中的段内相对地址比较进行的。假设段内相对地址大于段长,系统就会产生保护中断。不过,在允许段动态增长的系统中,段内相对地址大于段长是允许的。为此,段表中设置相应的增补位以指示是否允许该段动态增长。建立存取控制指在段表的每个表目中,除指明段长以外,还增加“存取方式”一项。这种段的保护,对非共享段来说,主要是用来指示程序设计的错误。而对于共享段来说,则显得特别重要。采取存取保护键。由于 I/O 通道对存储器的访问是不经过段表的,因此有的机器除了段保护之外,还采用存储保护键。因为这种保护对I/O 通道十分有效。总之,在一个段式存储管理系统中,通过建立段表,施加存取控制,以及设置存储保护键等,可以提供一个多级的存储保护体系。10、有一个操作系统采用段式存储管理方案,用户区内存为512K,分配时截取空闲块的前半部分 (小地址部分 )。初始时内存全部空闲。系统执行如下申请、释放操作序列。申请 300K ,申请 100K ,释放 300K,申请 150K ,申请 50K ,申请 90K 1假设采用首先适应算法,空闲块表中有哪些空块(指出大小,地址);2假设采用最正确适应算法,空闲块表中有哪些空块(指出大小,地址);3假设随后又申请80K ,针对上述两种情况说明结果?其结果说明了什么问题?答:操作系统采用段式存储。执行申请释放序列后,结果如下:a、如果采用首先适应算法,空闲块表中的空块有地址大小290k 10k 400k 112k b、如果采用最正确适应算法,空闲块表中的空块有地址大小240k 60k 450k 62k c、假设继续申请80k 如果之前采用首先适应算法,则直接分配起始地址为400k 的连续 80k 空间如果之前采用最正确适应算法,则需要首先采用拼接技术对空闲空间进行合并,然后在合并后的空闲空间中分配连续80k 空间。在上述情况中采用最正确适应算法却导致后来的内存直接分配失败而不得不进行内存空间整理。这说明最正确适应算法并不是所有时候都能够保持大块连续的空闲空间。11、假设一个程序的段表如下:段号状态位段起始地址段长存取控制精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 10 页0 0 100 40 W 1 1 2010 20 W 2 0 1590 100 E 3 0 75 50 R 其中,状态位为“1”表示该段不在内存。存取控制:W 表示可写, R 表示可读, E 表示可执行。对于以下的逻辑地址可能会发生什么情况:1STORE 1 ,0, 50 2STORE 1 ,1, 10 3LOAD 1,2,77 4LOAD 1,3,20 答: 1地址越界保护;2发生链接中断,由操作系统的链接中断处理程序处理,根据间接字中的地址找到链接地址的符号名, 并将目标段调入内存分配段号,再根据标号找到段内地址,修改间接字,置状态位为0,完成链接后,重新执行该指令,将R1 中的寄存器写入目标地址;3内存保护错误。可执行数据不能被load 4可以将第3 段,偏移为20 处所存的地址指向的内存单元的数据读入R1 中12、 设在内存中按地址递增次序有三个不连续的空闲区F1、 F2、 F3, 它们的容量分别是60K 、130K、20K 。请给出一个后备作业序列,使得实施存储分配时1采用最正确适应算法将取得好的效果,而采用最差适应算法和首先适应算法效果都不好;2采用最正确适应算法效果不好,而采用最差适应算法和首先适应算法都可取得好的效果;3采用最差适应算法将取得好的效果,而采用首先适应算法和最正确适应算法效果都不好;4采用这三种算法都可取得好效果;5采用这三种算法效果都不好。答:1符合要求的后备作业序列为J1:1K, J2:60K, J3:130K 模拟采用最正确适应算法的装入过程如下:初始空闲区状态装入J1 后的空闲区状态装入J2 后的空闲区状态装入J3 后的空闲区状态60K 60K 0K 0K 130K 130K 130K 0K 20K 19K 19K 19K 模拟采用最坏适应算法的装入过程如下:初始空闲区状态装入J1 后的空闲区状态装入J2 后的空闲区状态没有可以满足J3 装入条件的空闲区60K 60K 0K 130K 129K 129K 20K 20K 20K 模拟采用首先适应算法的装入过程如下:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 10 页初始空闲区状态装入J1 后的空闲区状态装入J2 后的空闲区状态没有可以满足J3 装入条件的空闲区60K 59K 59K 130K 130K 70K 20K 20K 20K 只有采用最正确适应算法才能将3 个作业全部装入, 因为其他两种算法都为了装入较小的作业而划分了较大的空闲区,使得剩余的空闲区相对于未装入的较大的作业小了2满足条件的后备队列为:J1:1K, J2:129K, J3:59K, J4:20K。模拟采用最正确适应算法的装入过程如下:初始空闲区状态装入J1 后的空闲区状态装入J2 后的空闲区状态装入J3 后的空闲区状态没有可以满足J4装入条件的空闲区60K 60K 60K 1K 130K 130K 1K 1K 20K 19K 19K 19K 模拟采用最坏适应算法的装入过程如下:初始空闲区状态装入 J1后的空闲区状态装入J2 后的空闲区状态装入 J3 后的空闲区状态装入 J4 后的空闲区状态60K 60K 60K 1K 1K 130K 129K 0K 0K 0K 20K 20K 20K 20K 0K 模拟采用首先适应算法的装入过程如下:初始空闲区状态装入J1 后的空闲区状态装入J1 后的空闲区状态装入J1 后的空闲区状态装入J1 后的空闲区状态60K 59K 59K 0K 0K 130K 130K 1K 1K 1K 20K 20K 20K 20K 0K 采用首先适应算法和最坏适应算法都可以将4 个作业全部装入内存, 而最正确适应算法只能将 3 个作业装入内存。因为最正确适应算法在装入过程中形成了小的不能有效利用的碎片。3满足条件的后备队列为:J1:30K, J2:80K, J3:60K 。模拟采用最差适应算法的装入过程如下:初始空闲区状态装入J1 后的空闲区状态装入J2 后的空闲区状态装入J3 后的空闲区状态60K 60K 60K 0K 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 10 页130K 100K 20K 20K 20K 20K 20K 20K 模拟采用最正确适应算法的装入过程如下:初始空闲区状态装入J1 后的空闲区状态装入J2 后的空闲区状态没有可以满足J3 装入条件的空闲区60K 30K 30K 130K 130K 50K 20K 20K 20K 模拟采用首先适应算法的装入过程如下:初始空闲区状态装入J1 后的空闲区状态装入J2 后的空闲区状态没有可以满足J3 装入条件的空闲区60K 30K 30K 130K 130K 50K 20K 20K 20K 只有最差适应算法能把全部的作业装入内存。因为其余两种算法划分了相对较小的空闲区形成了碎片。4将 2中的后备队列改为:J1:1K, J2:129K, J3:59K, J4:18K。则最正确适应算法也可以在最后一步装入J4。则三种算法都可以装入全部的作业。具体的过程不再画出,请参照2题的表格。这是因为作业的大小刚好比较合意。5将 3中的后备队列改为J1:30K, J2:80K, J3:61K。则最坏适应算法也无法在最后将J3 装入内存。则三种算法都不能装入全部的作业。具体的过程不再画出,请参照3题的表格。这是因为作业的大小刚好比较不合意。21、假定磁盘空闲空间表说明有以下存储块空闲:13、11、18、9 和 20 块。有一个要求为某文件分配10 个连续的磁盘块。1如果采用首次适应分配策略,那么将分配哪个块?2如果采用最正确适应分配策略,那么将分配哪个块?3如果采用最差适应分配策略,那么将分配哪个块?答:(1)13 (2)11 (3)20 23、为什么要引入虚拟存储器?虚拟存储器是什么?它需要什么硬件支持?根据什么说一个电脑系统有虚拟存储器?怎样确定虚拟存储器的容量?答:由于软件容量的迅速扩张,有可能一个进程的程序比内存可用空间还要大,这时候该程精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 10 页序就无法运行; 另一方面, 由于程序的局部性,在进程运行的任一阶段只须使用程序的一部分,如果预先分配所有的内存空间,内存就会被浪费。为了能更有效的支持多道程序设计技术的实现和大型程序运行的需要,所以使用了虚拟存储器的概念,利用大容量的外存来扩充内存, 产生一个比有限的实际内存空间大得多的、逻辑的虚拟内存空间,从而增强系统的处理能力。虚拟存储器简称虚存,是把内存与外存有机的结合起来使用,从而得到一个容量很大的、速度足够快的“内存” 。虚拟存储器需要的硬件支持是:系统有一个容量足够大的外存;系统有一个具有相当容量的内存;硬件提供实现虚、实地址映射的机制。如果一个电脑系统硬件上拥有上述的支持条件、操作系统又支持虚拟存储管理,那么这个电脑系统是有虚拟存储器的。一个虚拟存储器的最大容量寻址空间可以用寄存器的位数来确定,因此比方X86 体系的电脑寄存器为32 位,因此虚拟存储器的最大容量应该为2 的 32 次方字节,即4GB。26、有一个虚拟存储系统。分配给某进程3 页内存,开始时内存为空,页面访问序列如下:6,5,4,3,2,1,5,4,3, 6,5,4,3,2,1,6, 5 1假设采用先进先出页面置换算法(FIFO) ,缺页次数为多少?2假设采用最近最少使用页面置换算法(LRU) ,缺页次数为多少?3假设采用最正确页面置换算法算法呢?答: (1):17 次(2):17 次(3)11 次27、有一台电脑含有4 个页面,每一页的装入时间,最后一次修改时间以及R 与 M 位的值如下 (时间为时钟周期):页装入时间最后访问时间R M 0 126 279 0 0 1 230 260 1 0 2 120 272 1 1 3 160 280 1 1 1NRU 应淘汰哪一页2FIFO 应淘汰哪一页3LRU 应淘汰哪一页4第二次时机应淘汰哪一页答: NRU 应淘汰第0 页精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 10 页FIFO 应淘汰第2 页LRU 应淘汰第1 页第二次时机应淘汰第0 页29、何谓系统的“抖动”现象?当系统发生“抖动”时,你认为应该采取什么措施来加以克服?答:在虚存中, 页面在内存与外存之间频繁调度,以至于调度页面所需时间比进程实际运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃。这种现象为颠簸或抖动。颠簸或抖动产生的最主要的原因是页面置换算法不合理,分配给进程的物理页面数太少。可以考虑改良页面的置换算法。另一方面, 程序员编写程序的同时,如果能根据机器寻址的特点, 来调整访存指令的执行顺序例如对大矩阵的操作是先行后列还是先列后行,等也可以防止抖动的发生。30、在虚拟页式存储管理中,进程在内外存中的存放有以下两种方法:1一部分页面放在内存,其余页面放在外存;2一部分页面放在内存,全部页面放在外存;试从系统开销的角度分析两种方法各自的优缺点,并说明页表的差异。答:第一种方法,一部分页面放内存,其余页面放外存,这样在内存中的页面在外存中不存在副本, 第二种方法当前需要的页面放在内存中,全部的页面在外存中都有副本,因此第一种方法比第二种方法占据的存储空间小。但是在将页面移出内存的过程中,对于第一种方法,不管要移出的页面是否被修改过,都必须将其写回磁盘;对第二种方法, 如果要移出的页面没有被修改过, 那么它在磁盘上的副本已经是最新的了,则不需要写回, 调入的页直接覆盖被淘汰的页就行了。因此第二种方法比起第一种方法来,输入输出设备的压力小,调入调出数据和程序段的频率低。因为第一种方法移出页面时不管页面是否被修改过都得将其写回外存,所以页表中不需要有修改位。 所以页表差异在第一种方法的页表不需要有修改位,而第二种方法需要有修改位。31、有一个虚拟存储系统采用最近最少使用LRU 页面置换算法,每个程序占3 页内存,其中一页用来存放程序和变量i,j不作他用 。每一页可存放150 个整数变量。 程序 A 和程序 B 如下:程序 A:VAR C:ARRAY1.150,1.100 OF integer; i,j:integer; FOR i:=1 to 150 DO FOR j:=1 to 100 DO Ci,j:=0; 程序 B:VAR C:ARRAY1.150,1.100 OF integer; i,j:integer; FOR j:=1 to 100 DO FOR i:=1 to 150 DO 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 10 页Ci,j:=0; 设变量i,j 放在程序页中,初始时,程序及变量i,j 已在内存,其余两页为空。矩阵C按行序存放。1试问当程序A 和程序 B 执行完后,分别缺页多少次?2最后留在内存中的各是矩阵C 的哪一部分?答(1)100 次,10000 次(2)程序 A 运行完后内存两个页面中分别为: 第一页 :ARRAY148,1 到 ARRAY148,100 和 ARRAY149,1 到 ARRAY149,50 第二页 : ARRAY149,51 到 ARRAY149,100 和 ARRAY150,1 到 ARRAY150,100 程序 B 运行完后内存两个页面中分别为: 第一页 :ARRAY148,1 到 ARRAY148,100 和 ARRAY149,1 到 ARRAY149,50 第二页 : ARRAY149,51 到 ARRAY149,100 和 ARRAY150,1 到 ARRAY150,100 32、某采用页式虚拟存储管理的系统,接收了一个共7 页的作业,作业执行时依次访问的页为 1,2, 3,4,2,1,5,6,2,1,2,3,7, 6,3,2,1,2,3,6。假设采用最近最少用 LRU 调度算法,作业在得到两块主存空间和四块主存空间时各会产生多少次缺页中断?如果采用先进先出FIFO 调度算法又会有怎样的结果?解:1LRU 、两块主存空间:LRU :1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6 页 1:1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6 页 2:1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 2 2 缺页中断18 次2LRU 、四块主存空间:LRU :1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6 页 1:1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6 页 2:1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 页 3:1 2 3 4 2 1 5 6 6 1 2 3 7 6 3 3 1 2 页 4:1 1 3 4 2 1 5 5 6 1 2 2 7 6 6 6 1 2 1 2 1 2 3 2 2 3 6 缺页中断10 次3FIFO、两块主存空间:LRU :1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6 页 1:1 2 3 4 2 1 5 6 2 1 1 3 7 6 3 2 1 1 3 6 页 2:1 2 3 4 2 1 5 6 2 2 1 3 7 6 3 2 2 1 3 2 2 缺页中断18 次4FIFO、四块主存空间:LRU :1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 10 页页 1:1 2 3 4 4 4 5 6 2 1 1 3 7 6 6 2 1 1 3 3 页 2:1 2 3 3 3 4 5 6 2 2 1 3 7 7 6 2 2 1 1 页 3:1 2 2 2 3 4 5 6 6 2 1 3 3 7 6 6 2 2 页 4:1 1 1 2 3 4 5 5 6 2 1 1 3 7 7 6 6 2 1 2 3 2 6 缺页中断14 次33、比较各种存储管理方式的特征包括主存空间的分配方式、是否要有硬件的地址转换机构作支撑、适合单道或多道系统等、重定位方式、地址转换的实现操作系统和硬件怎样配合、存储保护的实现操作系统和硬件各自做些什么工作。存储管理特征重 定位 方式地址转换过程存储保护主存分配方式硬件地址转换适 合系统其他单 一 用 户存储一次性全部连续不必需单道利用率低,不灵活动 态或 静态根据基地址生成物理地址。静态由软件完成;动态可由硬件提供基地址寄存器帮助转换无分区管理固定分区管理按照程序提供的内存需求最大值从已划分好的固定区域中分配不必需多道不 能 充 分利用内存,碎 片 问 题严重,程序大 小 受 到限制动 态或 静态根据基地址生成物理地址。静态由软件完成;动态可由硬件提供基地址寄存器帮助转换通过界限寄 存 器 硬 件 或保 护 键 软 件 的相 应 判断,产生越界中断或者保护性 中 断硬件 。可变分区管理在装入程序时从空闲区域中划分不必需多道简单易行,利 用 率 较高。缺乏扩充性动 态 拼接时根据基地址生成物理地址。可由硬件提供基地址寄存器帮助转换页 式 存 储管理以 页 面 为 单位,按用户程序需求的页数分配,分配空间不一定连续需要页表始址寄存器和长度寄存器,也可以增加快表多道有 效 解 决碎片问题,但 有 时 也会 造 成 空间浪费。动态把逻辑地址分为页号和页内地址,与页表长度寄存器比较,检查越界,根据页表始址寄存器得到页表首地址,根据逻辑页号找到内存块号,并且与页内地址拼成物理地址。可以用快表来实现加速。 硬件 保 护 键 软 件 或扩 充 页表,增加存取控制项硬件 段 式 存 储管理以段为单位,为每一个逻辑段分配连续的需要段表始址寄存器和长度多道便 于 动 态分配内存,管 理 和 申动态把逻辑地址分为段号和段内地址,与段表长度寄存器比较,检越界检查 硬 件 保护 键 软精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 10 页内存空间寄存器,也可以增加快表请统一化,便于共享,动态链接,会 有 碎 片问题查越界,根据段表始址寄存器得到段表首地址,根据逻辑段号找到该段起始地址,并且与段内地址拼成物理地址。可以用快表来实现加速 硬件 件 或 扩充段表,增加存取控 制 项硬件 段 页 式 存储管理以段为单位,为每一个逻辑段按用户程序需求的页数分配,分配空间不一定连续需要段表始址寄存器、长度寄存器和快表多道方 便 用 户提 高 利 用率,结合段式 与 页 式的优点动态根据段号查找快表,如果找到则直接获得物理地址,否则通过段表始址寄存器查找段表,根据段号查找页表位置,根据页号在页表中查找内存块号,和页内地址拼接成物理地址,并更新快表 硬件 越界检查 硬 件 保护键或扩充段表,增加存取控 制 项硬件 虚拟存储管理虚拟页式存储程序运行时不装 入 全 部 页面,根据需求动态装入,使用页面置换算法来调换内存中的页面需要在页式基础上增 加 页号、驻留位、内存块号、外存地址、访问位、修改位多道把 内 存 与外 存 有 机结合起来,扩 充 了 内存的容量,有 可 能 产生抖动动态在地址映射过程中如果访问页面不存在则产 生 缺 页 中 断 硬件,并根据一定的算法将页面调入内存,如果内存已满,需要将某些页面暂时移出内存。 软件 越界检查 硬 件 保护 键 软件 或 扩充段表,增加存取控 制 项硬件 虚拟段式存储程序运行时不全部装入,根据需求动态装入,以段为单位进行内外村的交换。需要在段式基础上增加特征位、存取权限位、标志位、扩充位多道把 内 存 与外 存 有 机结合起来,扩 充 了 内存的容量,有 可 能 产生抖动动态在地址映射过程中如果访问段不存在则产生缺段中断硬件 ,检察系统是否有足够连续空间,如有则直接装入,否则尝试使用紧缩技术获得足够连续空间,如果还不足则考虑淘汰一些内存中的不常用段。 软件 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 10 页