模拟设计存储管理的分配与回收实践说明


以下的内容均是亲自问了操作系统老师问明白了才写了这篇文章,如果有不对的地方欢迎指出错误。
采用页式管理方案实施内存分配和回收。能够处理以下的情形
⑴能够输入给定的内存页面数,页面大小,进程的个数及每个进程的页数。

⑵当某进程提出申请空间的大小后,显示能否满足申请,以及为该进程分配资源后内存空间的使用情况(被进程占用的页面,空闲的页面);

⑶当某进程撤消时,显示内存回收后内存空间的使用情况。

那怎么去真真意义上的去理解这个实验是怎么做的呢?

按照步骤
(1)输入页的页数。(假如为5)
(2)输入页的大小。(假设为1024 B)
下一步叫我们我们输入进程的个数和页数。(在这一步的时候大家应该会有疑问?怎么输入进程的个数以及页数,输入完之后—-当某进程提出申请空间的大小后,显示能否满足申请,以及为该进程分配资源后内存空间的使用情况(被进程占用的页面,空闲的页面))这又是怎么理解的?

其实这个实验具体应该是这样做的。
现在我们假设进程数为1(也就是只考虑了单个进程的情况。)
那么进程页数是怎么输入的?
输入进程的逻辑地址(假设为883,1315,2456,1435,5678,3456,4352【单位都是B】)
基于页表的大小为1024B
用逻辑地址除以页表的大小,商为页表号,余数为偏移地址。
例如以上的逻辑地址
883/1024=0—–余数为883
1315/1024=1—-余数291
2456/1024=2—-余数为408
1435/1024=1—-余数为411
5678/1024=5—-余数为558这里需要注意的是这里发生了越界中断,why?因为页面的数为5,意思就是商只能为0,1,2,3,4,所以这里发生了越界中断,所以在这里你需要提醒用户这里发生了越界中断,发生越界中断那么这里就跳入中断处理程序,处理完中断处理程序之后还要继续对逻辑地址计算
3456/1024=3—-余数为384
4352/1024=4—–余数为256

建立的表如下:
这里写图片描述

所以通过上面的表我们知道了这个进程的页数为6【数一下表格行数】
这样也就回到了进程的页数是怎么输入的啦!!!!
那么这个进程对内存的访问序列就是0,1,2,1,3,4
假设内存的物理块为3【】(why?如果仔细观察的人会发现课本上一般都是3或者是4,对于这个物理块的块数必须在程序的开始之前指定我们假设为3)
那么假设我们采用FIFO置换算法
那么就有了以下的替换情况的表格

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值