内存管理之虚拟内存管理

内存管理之虚拟内存管理

  • 为什么引入虚拟内存
  • 虚拟内存空间的大小由什么因素决定
  • 虚拟内存怎么解决问题,带来什么问题

1. 基本概念

1.1 传统存储管理方式的不足

  • 一次性:作业必须一次性装入内存才可以运行。导致大作业可能无法运行;导致当大作业量要求运行时,只能先运行部分
  • 驻留性:作业被装入内存后,其任何部分不能被换出,只能等待作业完成。

1.2 局部性原理

  • 时间局部性:由于程序中充满了大量的循环操作,当某段代码或某些数据被执行或访问时,在一定时间内,有可能会被再次执行或访问。
  • 空间局部性:当程序访问了某个存储单元,在一定时间内其附近的存储单元也可能被访问。因为指令和数据通常是顺序存储的。

1.3 虚拟存储器的定义

​ 基于局部性原理,在程序装入内存时,只装入一部分,然后程序开始执行。当需要的内容并未装入时,由操作系统将所需部分装入内容。当部分程序内容暂时不需要使用时,由操作系统将其调出内存,以腾出空间。如此,系统好像为用户提供了一个比实际内存大得多的存储器,称为虚拟存储器

1.4 虚拟存储器的特征

  • 多次性:允许作业被分为多次装入内存
  • 对换性:允许作业在运行时进行换入和换出
  • 虚拟性:从逻辑上扩充内存容量

2. 虚拟内存技术的实现

2.1 内存分配方式的选择

​ **若采用连续分配的方式,将会使部分内存空间暂时或永久地处于空闲状态,造成内存浪费。**因此,虚拟内存技术的实现需要建立在离散分配的内存管理方式上。

2.2 虚拟内存的实现方式

虚拟内存的实现有以下三种方式:

  • 请求分页存储管理
  • 请求分段存储管理
  • 请求段页式存储管理

不管采用哪种方式,都要有一定的硬件支持。一般需要的支持有以下几个方面:

  • 一定容量的内存和外存
  • 页表机制【或段表机制】作为主要的数据结构
  • 中断机构,当用户程序需要访问的部分尚未调入内存,则产生中断
  • 地址变换机构,逻辑地址到物理地址的变换
2.2.1 请求分页管理方式
2.2.1.1 简介
  • 建立在基本分页存储管理基础之上,为了支持虚拟存储功能而增加了请求调页、页面置换功能。
  • 初始时,只需要调入部分分页进入内存,便可启动作业。运行期间若发现缺页,则进行请求调页,还可以进行页面置换,以腾出内存空间。
2.2.1.2 页表机制

> [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8UjHHT5s-1627181733186)(resource/1627180919558.png)]

2.2.1.3 缺页中断机构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7hAO8nEK-1627181733194)(resource/1627181041321.png)]

2.2.1.4 地址变换机构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JbbQK4gF-1627181733207)(resource/1627181111996.png)]

2.2.2 页面置换算法
  • 最佳置换算法:选择被淘汰的页面是以后不再使用的页面,或在最长时间内不再被访问的页面,保证最低的缺页率。该算法无法实现
  • 先进先出置换算法:把调入内存的页面连接成队列,按照队列的特性进行淘汰
  • 最近最久未使用置换算法
  • 时钟置换算法【最近未使用算法】
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值