深入理解操作系统——虚拟存储详解

因为程序的大小在不断的变大,内存的增长速度远远跟不上程序增大的速度,所以内存需要外存的配合来完成对程序的运行存储。虚拟存储是非连续内存分配的延续,后者是在内存里的存储空间让它不连续,前者是在后者的基础上将一部分内容放在外存中的做法,可以让应用程序有更大的空间可以使用。为了实现这个目标,有三种技术可以实现:分别是覆盖、交换和虚拟存储。

覆盖技术:是将程序按照功能划分为相对独立的模块,将不会同时执行的模块共享同一块内存区域,选择其中占用较大内存的大小作为该内存区域的大小。但缺点在于程序员需要去完成功能模块的划分,增加了编程的难度和复杂度。而且从外存装入覆盖模块也增加了执行时间。

交换技术:覆盖是一个程序的内存空间不够,交换是一个程序够用,但由于多道程序的运行,使得另一个程序占用了内存空间,使得之前的空间不够。具体做法是将暂时不能运行的程序放到外存。换入换出的基本单位是整个进程的地址空间。这种技术有两个问题:1、交换时机 2、交换区大小 3、程序换入时的重定位

虚拟存储:就是只把部分程序放入内存中,从而运行比物理内存大的程序,它的前提思想是局部性原理。虚拟存储的原理是只把当前指令执行需要的部分页面或段装入内存,不在内存中时,操作系统可从外存中把相应的页面调入内存。实现方式有两种:虚拟页式存储和虚拟段式存储。

虚拟页式存储思路是当用户程序要装载到内存运行时,只装入部分页面,就启动程序运行,页面在内存中不存在时,就发出缺页异常,然后操作系统在外存中调入相应的页面,使得进程能继续运行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值