VM虚拟内存笔记III

Overview:

右边是虚拟内存的结构状态,注意进程看到的地址不是真实的

这种映射(直接全映射到某一块内容)的计算就是32KB+4Kb(基础地址+偏移量)

但是这样的话 free部分会占用10KB造成很大的内存浪费

所以我们需要地址翻译来降低开销,但地址翻译肯定会造成时间上的开销所以我们一般是在硬件上做出优化

由于address translation很频繁 所以决定从硬件角度处理这件事情

segmentation:

说白了就是在heap stack code 这些我们想要的东西在底部分别加上一个base 然后加上一个offset

先根据VA计算出来heap在VM中的距离base的offset 然后在物理内存中计算实际的address (注意需要检测一下是不是超了大小)

但是有个问题 机器看不懂图。。。所以需要我们搞出计算机能看懂的东西()

从地址得到在哪个段内,然后根据后面算offset,最后在物理地址的base加上offset做出来地址翻译

注意这里又有比较麻烦的东西---栈,他是倒着增长的,就是高地址往低地址走,那么我们该计算负增长量

但即使这样也会出现回收空间的大问题,所以我们引出paging

paging:

这里简单介绍一下,就是将整个页映射到物理地址上

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值