【操作系统】虚拟内存和物理内存


目录

虚拟内存引入的背景及意义:

虚拟内存的实现:

实例:Intel Pentium

内存管理总结:

物理地址:

虚拟地址:

虚拟地址到物理地址转换(映射):

虚拟内存的工作


第一段节选自《操作系统第7版》,帮助理解


 

虚拟内存引入的背景及意义:

1、当需要执行一个进程,它的逻辑地址空间大于可用物理地址空间时候,引入虚拟内存。

2、虚拟内存可用将大逻辑地址空间映射到小的物理内存

3、虚拟内存允许极大的进程运行,提高了多道程序的程度,增加了CPU利用率;它使得程序员不必考虑内存可用性;虚拟内存允许进程共享系统库和内存;当父子进程共享内存页时,虚拟内存允许写时复制来创建进程

虚拟内存的实现:

1、虚拟内存通常采用按需调页方式来实现,纯按需调页只有在引用页的时候才调入页。

2、写时复制

3、页面置换:当总的内存需求大于物理内存空间,那么有可能必须置换内存中的页以便为新页使用。

     FIFO页置换算法:容易编程,但有Belady异常

     最优页置换算法:需要将来的知识来预测。

     LRU(最近最少使用)近似最优算法,很难实现。

4、帧分配:分配可以是固定的,如局部页置换;分配也可以动态的,如全局置换。工作集合假定进程在局部执行,那么每个进程应该为当前工作集合分配足够多的桢。如果进程没有足够多的内存以用于工作集合,就会造成颠簸。为进程提供足够多的内存可用避免颠簸,可能需要进程交换和调度。

5、内存映射文件功能:win32通过内存映射实现共享内存。

6、内核进程需要按物理连续分配内存,但是系统允许内核进程按2的幂次方来分配内存,因此产生碎片。

→采用slab分配器不会因为碎片问题产生内存浪费。因为slab分配器允许由slab组成的cache进行分配,每个slab由若干歌物理连续的页组成。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值