操作系统—内存管理知识点总结

目录

0 引言

1 虚拟内存

1.1 为什么引入虚拟内存

1.2 虚拟地址和物理地址如何实现转换

1.3  Linux系统内存管理措施

2 页面置换算法

3 内存分配流程与swap机制


0 引言

对操作系统的虚拟内存、进程空间、页面置换算法进行了知识点总结,文中的图片均来自小林coding

1 虚拟内存

1.1 为什么引入虚拟内存

虚拟内存是我们操作系统用来做内存管理的,我们应用进程看到的就是虚拟内存,而不是物理内存。不直接使用物理内存的原因也很简单,倘若我们的应用进程直接操作物理内存,则在多线程并发的场景下就很有可能出现一个进程的数据覆盖掉另外一个进程数据的情况,所以引入一层虚拟内存来帮助我们进行内存管理,进程直接操作的是虚拟内存地址,然后通过CPU中的MMU单元帮助我们将虚拟内存地址转换为物理内存地址。

1.2 虚拟地址和物理地址如何实现转换

  • 内存分段

    程序是有若干个逻辑分段组成,可由代码段,数据段,堆段和栈段组成,不同的段有不同的属性,所以可以用分段的方式把这些段分离出来

    img

    即通过段表实现虚拟地址与物理地址之间的映射

    存在的问题:

    • 内存碎片(外部与内部)

    • 内存交换效率低(由于内存碎片导致要进行内存交换)

  • 内存分页

    内存分段会导致内存碎片和内存交换效率低的问题,为了解决这些问题,引入了内存分页,这样我们的内存碎片就会更小,内存交换的区域也就更小,内存交换的效率也就提升了(页表是进程独有的)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值