调入内存,其余部分放在外存。
具体的实现方案是采用两级页表。对页表分页,使每个页面的大小与内存的物理块的大小一致。并为它们进行编号,将各个页面放在不同的物理块中。然后为这些离散分配的页表再建立一张页表,称为外层页表(或页目录),此时的逻辑地址可描述为:
外层页号+页号+页内位移 对于要运行的进程,将其外层页表调入内存,对所有的页表而言只需调入少量的页表,使用时如果找不到相应的页表,则产生中断,请求操作系统将需要的页表调入内存。 两级页表适应了大地址空间的需要,需要虚拟存储技术的支持,增加了地址变换的开销和管理的复杂度。此外根据需要还可以设计三级页表、四级页表等。
4、什么是动态链接?用哪种存储管理方案可以实现动态链接?
动态链接是指进程在运行时,只将进程对应的主程序段装入内存,在主程序运行过程中,当需要用到哪个子程序段和数据段时,再将这些段装入内存,并与主程序段链接上。
通常一个大的程序是由一个主程序和若干个以及一些数据段组成的。而段式存储管理方案中的段就是按用户的逻辑段自然形成的,因此可实现动态链接。
5、某进程的大小为25F3H字节,被分配到内在的3A6BH字节开始的地址。(1)若使用上、下界寄存器,寄存器的值是多少?如何进程存储保护?(2)若使用地址、限长寄存器,寄存器的值是多少?如何进程存储保护?
(1)若使用下、下界寄存器,上界寄存器的值是3A6BH,下界寄存器的值是3A6BH+25F3H=605EH,当访问内在的地址大于605EH、小于3A6BH时产生越界中断。
(2)若使用地址、限长寄存器,地址寄存器值是3A6BH,限长寄存器的值是25F3H,当访问内存的地址小于3A6BH,超过3A6BH+25F3H=605EH时主生越界中断。
6、在系统中采用可变分区存储管理,操作系统占用低地址部分的126KB,用户区的大小是386KB,若采用空闲分区表管理空闲分区。若分配时从高地址开始,对于下述的作业申请序列:作业1申请80KB;作业2申请56KB;作业3申请120KB;作业1完成;作业3完成;作业4申请156KB;作业5申请80KB。试用首次适应法处理上述作业,并回答下面问题。(1)画出作业1、2、3进入内存后。内存分布情况。(2)画出作业1、3完成后。内存的分布情况。(3)画出作业4、5进入内存后。内存分布的情况。
(1)作业1、2、3进入内存后,内存分布如下图
0KB 操作系统126KB 126KB 256KB 作业3:120KB 376KB 作业2:56KB 432KB 作业1:80KB 512-1KB (2)作业1、3完成后,内存的分布情况如下图
0KB 操作系统126KB 126KB
256KB 376KB 作业2:56KB 432KB 512-1KB
(3)作业4、5进入内存后,内存的分布情况如下图
0KB 操作系统126KB 126KB 256KB 作业4:156KB 376KB 作业2:56KB 432KB 作业5:80KB
7、某系统采用页式存储管理策略,某进程的逻辑地址空间为32页,页的大小为2KB,物理地址空间的大小是4MB。(1)写出逻辑地址的格式。(2)该进程的页表有多少项?每项至少占多少位?(3)如果物理地址空间减少一半,页表的结构有何变化?
(1)进程的逻辑地址空间为32页,故逻辑地址中的页号需要5位(二进制),由于每页的大小为2KB,因此页内位移须用11位(二进制)表示,这样逻辑地址格式如下图。
15
11 10
页号 页内位移
(2)因为进程的逻辑地址空间为32页,因此该进程的页表项有32项。页表中应存储每页的块号。因为物理地址空间的大小是4MB,4MB的物理地址空间内分成4MB/2KB=2K个块,因此块号部分需要11位(二进制),所以页表中每项占11位。
(3)如果物理地址空间减少一半,页表的页表项数不变,但每一项的长度从11位(二进制)减少到10位(二进制)。 8、某页式存储管理系统,内存的大小为64KB,被分成16块,块号为0、1、2、…、15。设某进程有4页,其页号为0、1、2、3,被分别装入内存的2、4、7、5块,问:(1)该进程的大小是多少字节?(2)写出该进程每一页在内存的起始地址。(3)逻辑地址4146对应的物理地址是多少?
(1)内存的大小为64KB,被分成16块,所以块的大小是64KB/16=4KB。因为块的大小与页面的大小相等,所以页的大小是4KB。该进程的大小是4*¥KB。
(2)因为进程页号为0、1、2、3,被分别装入内存的2、4、7、5。 第0页在内存的起始地址是:2*4KB=8KB; 第1页在内存的起始地址是:4*4KB=16KB; 第2页在内存的起始地址是:7*4KB=28KB; 第3页在内存的起始地址是:5*4KB=20KB。
(3)逻辑地址4146对应的物理地址:4146/4096=1,…,50。逻辑地址4146对应的页号为1,页内位移为50。查找页表,得知页号为1的存储块号为4,所以逻辑地址4146对应的物理地址是:4*4096+50=16434。
0
512-1KB 9、某段式存储管理系统的段表如下图,请将逻辑地址[0,137]、[1,9000]、[2,3600]、[3,230]转换成物理地址。 段号 0 1 段大小 15 KB 8 KB 段起址 40KB 80 KB 2 10 KB 100 KB (1)对于逻辑地址[0,137],段号为0,段内位移为137。查段表的项得到该段的段地址为40KB,段长为15KB。由于段号0小于进程的总段数,故段号合法;段内位移137小于段长15KB,故段内地址合法。因此可得到物理地址为:40KB+137B=40960B+137B=41097B。
(2)对于逻辑地址[1,9000],段号为1,段内位移为9000。查段表的项得到该段的段地址为80KB,段长为8KB。由于段号1小于进程的总段数,故段号合法;段内位移9000大于段长8KB=8192B,因此产生越界中断。
(3)对于逻辑地址[2,3600],段号为2,段内位移为3600。查段表的项得到该段的段地址为100KB,段长为10KB。由于段号2小于进程的总段数,故段号合法;段内位移3600小于段长10KB,故段内地址合法。因此可得到物理地址为:100KB+3600B=10240B+3600B=10600B。
(4)对于逻辑地址[3,230],段号为3,段内位移为230。由于段号3大于进程的总段数,故段号不合法,因此产生越界中断。
6 虚拟存储管理
1、试说明缺页中断与一般中断的主要区别?
答:缺页中断与一般中断一样,需要经历保护CPU现场、分析中断原因、转中断处理程序进行处理及恢复中断现场等步骤。但缺页中断是一种特殊的中断,它与一般中断的区别如下:
(1)在指令执行期间产生和处理中断。通常CPU是在一条指令执行之后去检查是否有中断产生,若有便去处理中断;否则继续执行下一条指令。页缺页中断是在指令执行期间发现所要访问的指令或数据不在内存时产生和处理中断。
(2)一条指令执行期间可以产生多次中断。对于一条要求读取多个字节数据的指令,指令中的数据可能跨越两个页面。该指令执行时可以要发生3次中断,一次是访问指令,另外两次访问数据。
2、局部置换和全局置换有何区别,在多道程序系统中建议使用哪一种?
答:局部置换是指当进程在执行过程中发生缺页时,只在分配给该进程的物理块中选择一页换出。全局置换是指在所有用户使用的整个存储空间中选择一个页面换出。
在多道程序系统中建议使用局部置换策略。这样,即使某个进程出现了抖动现象,也不致引起其他进程产生抖动,从而将抖动局限在较小范围内。
3、存储存储器的特征是什么?虚拟存储器的容量受到哪两个方面的限制? 答:虚拟存储器的特征有以下几方面。(1)离散性,指进程不必装入连续的内存空间,而是“见缝插针”。(2)多次性,指一个进程的程序和数据要分多次调入内存。(3)对换性,指进程在运行过程中,允许将部分程序和数据换进、换出。(4)虚拟性,指能从逻辑上扩充内存容量。
虚拟存储器的容量主要受计算机的地址长度和外存容量的限制。
4、已知页面走向是1、2、1、3、1、2、4、2、1、3、4,且进程开始执行时,内存中没有页面,若该进程分配两个物理块,当采用以下算法时的缺页率是多少?(2)先进先出置换算法。(2)假如有一种页面置换算法,它总是淘汰刚使用过的页面。
答:(1)根据题中页面走向,采用先进先出置换算法时的页面调度情况如下表 页面走向 物理块1 物理块2 缺页 1 1 缺 2 1 2 缺 1 3 3 2 缺 1 3 1 缺 2 2 1 缺 4 2 4 缺 2 1 1 4 缺 3 1 3 缺 4 4 3 缺 从表中可看出,页面引用11次,缺页9次,所以缺页率为9/11=81.8%。 (2)根据题中给定页走向,假如有一种页面置换算法,它部是淘汰刚使用过的页面时的页面调度情况如下表 页面走向 物理块1 物理块2 缺页 1 1 缺 2 1 2 缺 1 3 3 2 缺 1 1 2 缺 2 4 1 4 缺 2 1 2 缺 1 3 3 2 缺 4 4 2 缺 从表中可看出,页面引用11次,缺页8次,所以缺页率为8/11=72.7% 5、在请页式存储管理系统中,使用先进先出页面置换算法,会产生一种奇怪的现答:如果一个进程的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,若给该
象,分配给进程的页面数越多,进程执行时的缺页次数反而升高。试举例说明这一现象。 进程分配3个物理块,其页面调度情况如下表 页面走向 物理块1 物理块2 物理块3 缺页 4 4 缺 3 4 3 缺 2 4 3 2 缺 1 1 3 2 缺 4 1 4 2 缺 3 1 4 3 缺 5 5 4 3 缺 4 3 2 5 2 3 缺 1 5 2 1 缺 5 从表中可看出,页面引用12次,缺页9次。 若给该进程分配4个物理块,其页面调度情况如下表 页面走向 物理块1 物理块2 物理块3 物理块4 缺页 4 4 缺 3 4 3 缺 2 4 3 2 缺 1 1 3 2 1 缺 4 3 5 5 3 2 1 缺 4 5 4 2 1 缺 3 5 4 3 1 缺 2 5 4 3 2 缺 1 1 4 3 2 缺 5 1 5 3 2 缺
从表中可看出,页面引用12次,缺页10次。
由上例可看出,对于以上页面走向,当分配给进程的物理块数从3变成4时,缺页次数不但没有下降,反而从9次增加到10次。
6、某请页式系统中,页的大小为100字,一个程序的大小为1200字,可能的访问序列如下:10、205、110、40、314、432、320、225、80、130、272、420、128(字),若系统采用LRU置换算法,当分配给该进程的物理块数为3时,给出进程驻留的各个页面的变化情况、页面淘汰情况及缺页次数。
答:由于页的大小为100字,因此访问序列10、205、110、40、314、432、320、225、80、130、272、420、128对应的页号是0、2、1、0、3、4、3、2、0、1、2、4、1。给该进程分配3个物理块,采用LRU置换算法,其页面调度情况如下表