操作系统(五) - 虚拟内存

本文介绍了在多道程序环境中,为解决内存不足的问题,从覆盖技术、交换技术到虚拟内存管理技术的发展。虚拟内存利用程序的局部性原理,允许部分交换,提供大的用户空间,实现物理内存与外存的分离。
摘要由CSDN通过智能技术生成

目录

1、 虚拟内存的起因

1.1 大纲

1.2 起因

1.3 在计算机系统中,尤其是在多道程序运行的环境中,可能会出现内存不够用的情况,怎么办?

2、 覆盖技术

2.1. 目标

2.2 原理

2.3 示例

2.3 缺点

3. 交换技术

3.1 目标

3.2 原理

3.3 交换技术存在的问题

3.4 覆盖技术和交换技术的比较

4 虚拟内存管理技术

4.1 虚拟内存-目标

4.2 虚拟内存-程序的局部性原理

4.2.3 示例

4.3 虚拟技术--基本概念

4.4 虚拟内存--基本特征

4.5 虚存技术--虚拟页式内存管理

4.6 缺页中断过程

4.7 虚拟内存的性能

 

1、 虚拟内存的起因

1.1 大纲

  1. 起因
  2. 覆盖技术(早期)/交换技术(早期)/虚存技术
  3. 虚拟内存技术:目标/程序局部性原理/基本概念/基本特征/虚拟页式内存管理

1.2 起因

经常出现内存不够了。程序规模的增长大于存储器容量的增长。

  • 理想的存储器:更大,更快,更便宜,非易失性存储。
  • 实际的存储器

1.3 在计算机系统中,尤其是在多道程序运行的环境中,可能会出现内存不够用的情况,怎么办?

  1. 如果程序太大,超过了内存的容量,可以采用 手动的覆盖(overlay) 技术,只把需要的指令和数据保存在内存中
  2. 如果是程序太多,超过了内存的容量,可以采用 自动的交换(swapping) 技术,把暂时不能执行的程序送到外存中
  3. 如果想在有限容量的内存中,以更小的页粒度为单位装入更多更大的程序,可以采用 自动的虚拟存储技术

2、 覆盖技术

2.1. 目标

在较小的可用内存中运行较大的程序。常用于多道程序系统,与分区存储管理配合使用。

2.2 原理

把程序按照其自身逻辑结构,划分为若干个功能上相对独立的程序模块,那些不会同时执行的模块共享同一块内存区域,按时间先后来运行。

  • 必要部分(常用功能)的代码和数据常驻内存
  • 可选部分(不常用功能)在其它程序模块中实现,平时存放在外存中,在需要时才装入内存。
  • 不存在调用关系的模块不必同时装入内存,从而可以相互覆盖,即这些模块共用一个分区

2.3 示例

2.3 缺点

  • 由程序员来把一个大的程序划分为若干个小的功能模块,并确定各个模块之间的覆盖关系,费时费力,增加了编程的复杂度。
  • 覆盖模块从外存装入内存,是以时间换空间。

3. 交换技术

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值