虚拟内存与写时复制

一、什么是虚拟内存:

之前记录了虚拟内存如何映射到物理内存的方式(内存管理方式):分段和分页。但是这两个策略都有相同的目标,就是同时将多个进程保存在内存中,以便允许多道程序然而,这些策略都倾向于要求每个进程在执行之前应完全处于内存中。而虚拟内存技术则可以允许内存不必完全处于内存,就是执行的指令应处于物理内存中

二、虚拟内存的优点:

运行的程序可以远大于物理地址,使我们不必担忧内存容量的限制,它实现的原理就是局部性原理。

给每个进程都分配一个4G的看似连续的虚拟内存空间。

方便内存共享,文件共享等。

它保护了每个进程的地址空间不被其他进程破坏。

三、局部性原理

在程序整个运作过程中,程序引用的不同页面的总数可能超出了物理内存的总大小,但是局部性原则可以保证在任意时刻,程序将趋向于在一个较小的活动页面集合上工作。如果程序有很好的时间局部性,那么虚拟内存就会工作的很好,但是时间局部性差的话,会不停的产生页面置换,这样会产生“抖动”。

四、写时复制

进程在执行fork时只是把父进程的虚拟内存拷贝给子进程,父进程与子进程共用同一块物理内存,把这段内存设为只读内存,如果两个进程需要写这里的物理内存时会发生页错误中断,取消内存共享,给写的进程分配一个新的物理页面,并设置两个内存为可读可写,然后执行写操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西邮小菜机

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

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

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

打赏作者

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

抵扣说明:

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

余额充值