虚拟存储器管理(C++实现)

算法思想:

  1. 请求分页虚拟存储管理技术,是把作业地址空间的全部信息存放在磁盘上。当作业被选中运行时,先把作业的开始几页装入主存,并启动运行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页不在主存。其中标志表示对应页是否已经装入主存。1表示对应页已经装入主存;0表示对应页未装入主存;主存块号表示该页对应的主存块号;修改位指示该页调入主存后是否修改过的标志;外存地址指示该页所在的外存地址。
  2. 作业执行时,指令中的逻辑地址指出参加运算的操作数(或指令)地址中的页号和页内偏移量。硬件地址转换机构按页号查页表。若该页的标志为1,则表示该页已在主存,从而找到该页对应的主存块号。计算关系式,绝对地址等于块号*块的长度+页内偏移量。计算出预访问的主存地址。由于页长为2的整次幂。所以只要将块号和页内偏移量相拼接。放入主存地址寄存器即可。按照该地址取指令或取操作数,完成指定的操作。
  3. 设计一个地址变换程序,模拟硬件地址变换过程,当访问的页在主存时,则形成绝对地址后,不去模拟指令的执行,而是输出被转换的地址,当访问的页不在主存时,则输出该页不在主存,产生缺页中断,以表示产生了一次缺页中断。

进行缺页中断处理,中断返回后,重新执行该指令。假定主存的每块长度为64个字节,现有一个具有8页的作业系统,为其分配的4个主存块(即m=4),且最多分四块。其中第0页至第3页已经装入主存。

(4)当采用LRU算法时。则淘汰最近很少访问的页。

代码:

  • 6
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AHU_YZQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值