算法思想:
- 请求分页虚拟存储管理技术,是把作业地址空间的全部信息存放在磁盘上。当作业被选中运行时,先把作业的开始几页装入主存,并启动运行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页不在主存。其中标志表示对应页是否已经装入主存。1表示对应页已经装入主存;0表示对应页未装入主存;主存块号表示该页对应的主存块号;修改位指示该页调入主存后是否修改过的标志;外存地址指示该页所在的外存地址。
- 作业执行时,指令中的逻辑地址指出参加运算的操作数(或指令)地址中的页号和页内偏移量。硬件地址转换机构按页号查页表。若该页的标志为1,则表示该页已在主存,从而找到该页对应的主存块号。计算关系式,绝对地址等于块号*块的长度+页内偏移量。计算出预访问的主存地址。由于页长为2的整次幂。所以只要将块号和页内偏移量相拼接。放入主存地址寄存器即可。按照该地址取指令或取操作数,完成指定的操作。
- 设计一个地址变换程序,模拟硬件地址变换过程,当访问的页在主存时,则形成绝对地址后,不去模拟指令的执行,而是输出被转换的地址,当访问的页不在主存时,则输出该页不在主存,产生缺页中断,以表示产生了一次缺页中断。
进行缺页中断处理,中断返回后,重新执行该指令。假定主存的每块长度为64个字节,现有一个具有8页的作业系统,为其分配的4个主存块(即m=4),且最多分四块。其中第0页至第3页已经装入主存。
(4)当采用LRU算法时。则淘汰最近很少访问的页。
代码: