深入浅出:操作系统之虚拟内存

  1. 虚拟内存

    1. 内存存在的问题
      1. 内存不足:如果是逻辑内存直接映射到物理内存,当逻辑内存超过物理内存的时候,计算机就会出现内存不足的情况,导致程序崩溃。
      2. 内存碎片化:如果程序频率启动或退出,会产生内存碎片,对于连续分配内存时,即使碎片内存数量比申请的内存大,但可能导致申请失败,因为没有足够的连续内存。
      3. 程序间互相修改内存:如果程序切换时,不同的程序指向相同的内存时,会导致修改数据错乱。
      4. 解决以上问题的方案:虚拟内存
    2. 什么是虚拟内存?
    3. 如何实现虚拟内存?
  2. 内存的3个问题:如果所有程序可以直接访问相同的内存空间

    1. 假如内存不足会怎么样?(对于一台32位系统来说,可以使用的内存有:2^32 bytes = 4GB);内存不足,超出内存空间会导致崩溃(crash)(例如32位系统,只有1GB RAM) 在这里插入图片描述
    2. 内存碎片化:如果连续分配内存,程序可能找不到合适的空间(run out of space),即使有空间,但是不连续
      在这里插入图片描述
    3. 多个程序指向相同的地址:不同程序间读写相同的内容,导致数据污染或崩溃
      在这里插入图片描述
      怎么解决?让每一个程序拥有自己的虚拟内存空间。把程序的内存空间映射到物理内存(物理内存不足时把暂时不用的swap到硬盘上)
  3. 什么是虚拟内存(Any problem in computer science can be solved by adding indirection.)

    1. 虚拟内存是一个间接容器
      • 如果没有虚拟内存时,程序地址直接映射到物理内存。假如内存为1G,程序A运行时占用了1GB,此时再启动程序B时,发现没有内存空间可用,就导致崩溃。
      • 虚拟内存:通过Map来查找程序地址对应的物理内存地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值