操作系统知识点——内存管理(三)

本文深入探讨了虚拟内存管理,包括局部性原理、虚拟内存的概念和特征,以及请求分页和请求分段存储管理方式。详细阐述了各种页面置换算法,如OPT、FIFO、LRU、CLOCK、LFU和PBA,并分析了页面置换算法中的抖动现象和缺页率。通过对不同内存管理方式的比较,提供了理解虚拟内存管理的全面视角。

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

一、虚拟内存管理

(一)虚拟内存概念

1、局部性原理

大多数程序执行时,在一个较短时间内仅使用程序代码的一部分,相应地,程序所访问的存储空间也局限于某个区域,这就是程序执行的局部性原理。

时间局部性。一条指令的一次执行和下次执行,一个数据的一次访问和下次访问,都集中在一个较短的时间内。

空间局部性。当前指令和邻近的几条指令,当前访问的数据和邻近的数据,都集中在一个较小的区域内。

2、虚拟内存定义

在程序装入时,一方面可以将程序的一部分放入内存,而将其余部分放在外存,然后启动程序(部分装入)。在程序执行过程中,当所访问的信息不在内存中时,再由操作系统将所需的部分调入内存(请求调入)。另一方面,操作系统将内存中暂时不适用的内容置换到外存上,从而腾出空间存放将要调入内存的信息(置换功能)。这种从逻辑上扩充内存容量的存储器系统成为虚拟存储器(简称虚存)。

3、虚拟内存特征

虚拟内存的意义是让程序存在的地址空间与运行时的存储空间分开,程序员可以完全不考虑实际内存的大小,而在地址空间内编写程序,虚拟存储器的容量由计算机的地址结构决定,并不是无限大。虚拟内存具有如下特征:

离散性。程序在内存中离散存储。(离散性并不是虚拟内存特有的特征,基本分页和分段也具有离散性)。

多次性。一个作业可以多次调入内存。

对换性(交换性)作业在运行过程中可以换入、换出。

虚拟性。从逻辑上扩充内存容量,用户可以使用的空间可以远大于实际内存容量。

4、虚拟内存的软硬件支持

1、要有相当数量的外存,足以存放多个用户程序。

2、要有一定容量的内存,在处理器上运行的程序必须有一部分信息存放在内存。

3、中断机构,当用户访问的部分不在内存中时中断程序运行。

4、地址变换机构,以动态实现虚地址到实地址的地址变换。

5、相关数据结构,段表或页表。

(二)请求分页存储管理方式

1、请求分页原理

在分页存储管理系统的基础上,通过增加请求调页功能、页面置换功能所形成的一种虚拟存储系统。在请求分页存储管理中,作业运行前,只要将当前需要的一部分页面装入内存,便可以启动作业运行。在作业运行过程中,若所要访问的页面不在内存中,则通过调页功能将其调入,同时还可以通过置换功能将暂时不用的页面置换到外存上,以便腾出内存空间。

可以说,请求分页 = 基本分页 + 请求调页功能 + 页面置换功能。

2、页表结构

 

1、页号和物理块号。这两个字段在分页存储管理系统中已经定义过,是进行地址变换所必需的。

2、状态位(存在位)。用于判断页面是否在内存中,每当进行内存访问时,根据该位判断要访问的页面是否在内存中,若不在内存中,则产生缺页中断。

3、访问字段。用户记录页面在一段时间内被访问的次数,或最近已有多久未被访问,以供置换算法在选择换出页面时参考。

4、修改位。用户表示页面调入内存后是否被修改过,当处理器以写方式访问页面时,系统将设置该页面的修改位。由于内存中的页面在外存上都有副本,因此,若页面未被修改,则在该页面置换出时不需要将页面写到外存,以减少磁盘写的次数;若页面被修改,则必须将页面重新写到外存。

5、外存地址。用户指出页面在外存上的存放地址,供调入页面时使用。

3、缺页中断与地址变换

在请求分页存储管理系统中,若所访问的页面在内存中,其地址变换过程与分页存储管理系统相同;若访问的页面不在内存,则应先将该页面调入内存,再按照基本分页存储管理系统相同的方式进行地址变换。

若系统发现所要访问的页面不在内存中,便产生一个缺页中断信号,此时用户程序被中断,控制转到操作系统的缺页中断处理程序。缺页中断处理程序根据该页在外存的位置将其调入内存。在调页过程中,若内存中有空闲空间,则缺页中断处理程序只需要把缺页装入 任何一个空闲存储块中,再对页表的相应表项进行修改(如填写物理块号、修改状态位、设置访问字段及修改位初始值等)即可;若内存中没有空闲空间,则必须先淘汰内存中的某些页面,若被淘汰的页面曾被修改过,则要将其写回外存。

4、请求分页管理方式的优缺点

优点。①可以离散存储程序,降低了碎片数量;②提供虚拟存储器,提高了内存利用率,有利于多道程序运行,方便用户。

缺点。①必须有硬件支持;②有些情况下系统会产生抖动现象;③程序最后一页仍然存在未被利用的部分空间。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值