renwairen369@yahoo.com.cn
请求页式存储管理
1. 设计要求
设计一个请求页式存储管理方案。并编写模拟程序实现之。页面淘汰算法采用 FIFO
页面淘汰算法,并且在淘汰一页时,只将该页在页表中抹去。而不再判断它是否被改写过,
也不将它写回到辅存。
方案提示:
1、产生一个需要访问的指令地址流,它是一系列需要访问的指令的地址。为不失一
般性,你可以适当地(用人工指定地方法或用随机数产生器)生成这个序列,使得 50%
的指令是顺序执行的。25%的指令均匀地散布在前地址部分,25%的地址是均匀地散布在
后地址部分。
2、指定合适的页面尺寸(例如以 1K 或 2K 为 1 页);
3、指定内存页表的最大长度,并对页表进行初始化;
4、每访问一个地址时,首先要计算该地址所在的页的页号,然后查页表,判断该页
是否在主存——如果该页已在主存,则打印页表情况;如果该页不在主存且页表未满,则
调入一页并打印页表情况;如果该页不足主存且页表已满,则按 FIFO 页面淘汰算法淘汰
一页后调入所需的页,打印页表情况; 逐个地址访问,直到所有地址访问完毕。
2. 问题分析
分页存储管理,是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或
页,并为各页加以编号。相应地,也把内存空间分成与页面相同大小的若干个存储块,称
为(物理)块或页框(frame),在为进程分配内存时,以块为单位将进程中的若干个页分别装
入到多个可以不相邻接的物理块中
系统为每个进程建立一个页表,页表给出逻辑页号和具体内存块号相应的关系。一个
页表中包含若干个表目,表目的自然序号对应于用户程序中的页号,表目中的块号是该页
对应的物理块号。
请求页式存储管理方式是一种实现虚拟存储器的方式,是指在进程开始运行之前,不
是装入全部页面,而是装入一个或零个页面,之后根据进程运行的需要,动态装入其它页
面。当内存空间已满,而又需要装入新的页面时,则根据某种算法淘汰某个页面,以便装
入新的页面。
请求页式存储管理主要需要解决以下问题:
系统如何获知进程当前所需页面不在主存;当发现缺页时,如何把所缺页面调入主存;
当主存中没有空闲的页框时,为了要接受一个新页,需要把老的一页淘汰出去,根据什么
策略选择欲淘汰的页面。
本程序中采用先来先服务的淘汰方式。
3. 算法与数据结构
请求分页存储管理方式当中用到的主要数据结构就是页表项。与普通分页管理存储方
式当中的页表项相比,请求分页存储管理方式的页表项要进行相应的补充,共程序在换进、
换出内存时参考。
By 张焕人