【操作系统·考研】虚拟内存管理

本文介绍了虚拟内存管理,着重于请求分页技术,包括页表机制、缺页中断处理、内存分配策略和页面置换算法。讨论了局部性原理在内存管理中的应用,以及如何通过工作集模型和内存映射文件来优化内存使用和减少抖动现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.概述

传统存储管理方式具有两个特征

  1. 一次性:作业必须一次性全部装入内存后,才能开始运行。
  2. 驻留性:作业被装入内存后,就一直驻留在内存中,在其运行期间作业的任何部分都无法被换出。

显然,这两个特性非常的糟糕,于是乎,我们提出了虚拟内存管理的架构设计。

虚拟存储器的最大容量由计算机的地址结构而定。

局部性原理

  1. 时间局部性:程序中的某条指令一旦执行,不久后该指令可能将再次执行;程序中的某些数据被访问过,不久后该数据可能再次被访问。栗子🌰:循环。
  2. 空间局部性:一旦程序访问了某个存储单元,不久之后其周围的存储单元可能也会被访问到。栗子🌰:数组访问。

虚拟内存技术实际上建立了“内存-外存”两级存储器结构,利用局部性原理来实现高速缓存。
基于局部性原理,在程序装入时,仅将程序当前要运行的少数页面或段装入内存,其余的暂时放在外存。随着程序的执行,在执行过程中当访问的信息不在内存中时,便将所需要的部分由外存调入内存,而一些暂时用不到的内容则由内存换出到外存中,从而腾出一些空间存放调入内存的信息,这样系统给用户提供了一个看似比实际容量大得多的存储器,我们称之为虚拟存储器,但这种存储器实际上并不存在。
虚拟存储的实现需要建立在离散分配的内存管理方式上。


2.特征

2.1 多次性

作业装入时无需将整个程序一次性装入,而是按需装入,后续随运行的需要再将所需内容调入或换出即可。

2.2 对换性

作业运行时无需常驻内存,允许将那些程序暂时用不到的程序和数据部分从内存调出到外存的对换区。待以后需要时,再将其调入。

2.3 虚拟性

从逻辑上扩充内存的容量,使用户所看到的内存容量远远大于实际的存储容量。

离散性也是虚拟内存的一个特征。


3.技术实现

3.1 请求分页管理方式

3.1.1 页表机制

与基本分页系统不同的是,它不要求作业一次性全部调入内存中,但它需要处理请求页面不在内存中的问题。
image.png

  • 状态位:指明该页面是否已调入内存。
  • 访问字段:记录本页面被访问的次数或页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程旧事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值