物理内存,虚拟内存,磁盘swap分区的关系

物理内存:
 硬件上,就是内存条。我们知道一个程序运行,必要开一片内存来存储其相关指令和需要用到的堆栈段空间等。

虚拟内存:
 物理内存总共4G或16G的大小,若每个进程都开4G物理内存,那物理内存就会被很快用完,系统多进程运行也必将受限。
 为了节省物理内存,从逻辑的角度上,我们为每个进程虚拟出4G虚拟内存,每个进程都以为自己拿到了4G内存
 好处是不再为每个进程分配4G物理内存,而是实际用了多少,物理内存就给分配多少。

磁盘swap分区:
 对物理内存扩展,若4G物理内存分配完了,那程序的数据就会存到磁盘swap分区上。

为了节省内存:
 1.实际用了多少,物理内存就给分配多少
  如:一个进程实际用了400M内存,那4G虚拟内存理论上就对应400M的物理内存。因不是一下就分配的(因虚拟内存和swap分区存在,允许程序什么时候用就什么时候分配物理内存),所以某个时间点上,对应的物理内存<400M。
 2.物理内存什么时候用什么时候分配
  (1)因cpu只与物理内存交互,所以什么时候用到了swap分区上的数据,什么时候就把数据拷贝或做页面置换到物理内存。
  (2)实际上一开始虚拟空间都被映射到了磁盘空间当中(像代码段,常量数据等),只有当访问到此地址时,也就是真正用到的时候,才会将磁盘上的数据拷贝到物理内存中。
  (3)像malloc动态分配内存时<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值