讨论 请求分页存储管理系统实现的重点,在于对地址变换过程和缺页中断处理过程的
理解。
例4.6类似于请求分页存储管理中的请求式调页那样,在请求分段存储管理中也可以
采用请求式调段策略。试提出一个合理的段替换算法,并说明在段替换过程中会出现哪些在负面替换过程中不出现的问题。
解 可以使用FIFO替换算法。它在内存中查找第一个满足要求的段。为避免内部存储碎片,可把该段的末被占用的部分并入空闲空间表中。若找不到满足要求的段,则可以选择两个或多个连续的段来满足要求。
在段替换过程中,必须要考虑到段的大小变化,但在页面替换中页面的大小是固定的。
讨论 关于请求分段存储管理的段替换算法,考虑到段大小的不固定,可能需要替换若干个连续的段才能满足要求,所以替换算法应力求简单,FIFO算法成为首选。 4.3习题
4.1填空题:
(1)存储管理方案中, 可采用覆盖技术。
(A)单一连续区存储管理 (B)可变分区存储管理 (C)段式存储管理 (D)段页式存储管理
(2)对如图4.4所示的内存分配情况(其中,阴影部分表示已占用块,空白部分表示空闲块),若要申请一块 40 KB的内存,对于最佳适应分配策略给出分配区域的首地址是 。
(A) 110 KB (B) 190KB (C) 330 KB (D) 410 KB
(3)在图4.4所示中,若要申请一块40KB的内存,使首地址最大的分配策略是 。 (A)首次适应分配策略(B)最佳适应分配策略 (C)最坏适应分配策略(D)单一连续区分配策略 (4)下列算法中会产生 Belady异常现象的是 。 (A)先进先出(FIFO)页面替换算法 (B)最近最久未使用(LRU)替换算法 (C)最不经常使用(LFU)页面替换算法 (D)最佳(Optimal)页面替换算法 4.2为什么要引入动态重定位?如何实现?
4.3在动态分区管理中,有哪些分区分配算法?各有何优缺点?
4.4在采用首次适应算法的分区管理中,回收内存时可能出现哪几种情况?应怎样处理这些情况? 4.5什么叫覆盖?使用覆盖技术有什么要求?
4.6在系统中引入交换技术后带来哪些好处?为实现交换,系统应具备哪些方面的功能?
4.7对于一个利用快表且页表存于内存的分页系统,假定CPU一次访存时间为1.5us。访问快表的时间可以忽略不计。试问:
(1)如果85%的地址映射可以直接通过快表完成(即快表命中率为85%)那么进程完成一次内存读写的平均有效访问时间是多少?
(2)若快表的命中率只有50%,那么进程完成一次内存读写的平均有效访问时间又是多少? (3)快表命中率对平均有效访问时间有何影响?
4.8什么叫动态装入?动态装入的优点是什么?
4.9为什么引入虚拟存储概念?虚拟存储器的容量由什么决定?受什么影响?
4.10请指出下面哪些程序设计技术和数据结构适合于请求分页存储管理环境,哪些不适合请求式分页存储管理环境。
(1)栈(2)杂凑符号表(3)顺序查找(4)折半查找(5)纯代码(6)向量操作。
4.11假定有一个请求分页存储管理系统,测得各相关成分的利用率为:CPU利用率为 20%;磁盘交换区为 96.7%;其他 I/0设备为 50%。
试问下面哪些措施将(可能)改进CPU的利用率? (1)增加一个更快速的CPU。(2)增大磁盘交换区的容量。 (3)增加多道程序的度数。 (4)减少多道程序的度数。 (5)增加其他更快速的I/0设备。
4.12设有二维数组
int A[1..100][1..100];
其中数组元素A[1,1]存放在页面大小为200的分页存储管理系统中的地址200处,数组按行存储。使用该数组的一个较小的程序存放在第0页中(地址0~199),这样将只会从第0页取指令。
假定现有三个页面,第一个页面存放程序,其余两个页面用于存放数据,初始为空。试问:若使用LRU替换算法,下面的数组初始化循环将会产生多少次缺页中断?若每页的页面大小为100, 数组初始化循环将会产生多少次缺页中断?并说明页面大小对缺页中断次数的影响.
(1) for(j=1;j<=100;j++)for(k=1;k<=100;k++)A[j][k]=0; (2) for(j=1;j<=100;j++)for(k=1;k<=100;k++)A[k][j]=0;
4.13考虑下面的页访问串:
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
假定有1,2,3,4,5,6,7个页块。试问:若应用下面的页面替换算法,各会出现多少次缺页中断?注意,所给定的页块初始均为空,因此,首次访问一页时就会发生缺页中断。
(1)LRU替换算法。(2)FIFO替换算法。(3)Optima替换算法。
4.14什么是局部性原理?什么是抖动?有什么办法可以减少系统的抖动现象? 4.15什么叫工作集?工作集模型的优点是什么?
认真是成功的秘诀,粗心是失败的伴侣。
童第周——
——