操作系统-虚拟存储器

虚拟存储器通过请求调页和分页/分段机制解决内存不足问题,允许程序不完全装入内存即可运行。它依赖于程序执行的局部性原则。硬件包括页表、缺页中断机构和地址变换机构,软件负责调页和置换功能。内存分配策略有固定分配、可变分配等,而页面置换算法如LRU、FIFO等影响系统性能。页面置换不当可能导致抖动,高缺页率则影响效率。

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

1:虚拟存储器

常规存储器的管理方式:要求一个作业全部装入内存后才可以运行。

导致问题:大的作业无法装入,导致无法运行。 大量作业需要运行时,只能运行一部分,另一部分需要在外存等待。

解决方案

  1. 增加内存容量。
  2. 逻辑上扩充:覆盖(单一连续),交换,虚拟存储器。

虚拟存储器: 指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。

虚拟存储器特征: 虚拟存储的基础是程序执行的局部性。

  1. 离散性:
  2. 多次性:一个作业被分为多次调入内存。
  3. 对换性:作业运行过程中进行换进换出。
  4. 虚拟性:逻辑上扩充内存容量。

2:虚拟存储器实现方式

分页请求系统请求分段系统
在分页存储系统上添加请求调页功能页面置换功能,形成页式虚拟存储器系统在分段存储系统上添加请求调段功能,分段置换功能,形成段式虚拟存储器系统
硬件请求分页的页表机制,缺页中断机构,地址变换机构。请求分段的段表机制,缺段中断机构,地址变换机构。
软件请求调页功能,页面置换功能。请求调段功能,分段置换功能。

3:请求分页存储管理方式

页表机制:

在这里插入图片描述

  1. 状态位P:表示当前页是否在主存中。1/0
  2. 访问字段A:记录本页在最近一段时间内的访问次数,或多长时间未被访问。
  3. 修改位M:该页在调入内存时是否被修改过。内存中的每一页都在外存有副本,若未被修改,则置换时不需要写回外存,减少系统开销和启动磁盘次数。若被修改,则需要重新写回外存,从而保证外存最新副本。

缺页中断机构:

在请求分页系统中,当访问的页面不在内存,则发生一次缺页中断,请求OS将所缺页调入内存。

  1. 缺页中断在指令执行期间产生和处理中断信号。
  2. 缺页中断返回该指令的开始,重新执行该指令。
  3. 一条指令在执行期间,可能发生多次缺页中断。

地址变换机构:
在这里插入图片描述

4:请求分页系统的内存分配策略和算法

1:最小物理块确定: 系统分配到物理块少于此数,则进程无法运行。

2:物理块分配策略:

  1. 固定分配局部置换:进程分配的物理块在运行期间不变,出现缺页则置换。
  2. 可变分配全局配置:分配固定的物理块,但OS自留空闲块对列。发生缺页时,分配空闲块并调入缺页。当空闲块用完时,OS才会置换页面。
  3. 可变分配局部置换:分配一定数量的物理块,发生缺页则置换一页。根据进程缺页率的高低,从而减少或增加物理块。

3:物理块分配算法:

  1. 平均分配法:平均分配给各个进程。
  2. 按比例分配法:根据进程大小比例进行分配。
  3. 考虑优先权的分配算法:一部分按照大小比例分配,剩余部分按照各进程的优先级适当增加物理块。

5:请求分页存储管理方式的页面置换策略

调入策略决定什么时候将一个页面由外存调入内存,从何处将页面调入内存。

  1. 预调页策略:将不久后预计被访问的页预先调入内存。
  2. 请求调页策略:当进程发生缺页中断时,提出请求调页,通过OS将所需页调入内存。

抖动:如果页面置换算法选择不当,那么进程的大部分时间花费在页面置换,则该进程发生抖动。

缺页率=缺页次数/页面访问次数

页面置换算法:选择换出页面的算法。 页面的换入换出需要磁盘的I/O,存在较大的开销。因此需要追求最小缺页率。

  1. 最佳置换算法:理想化算法,将永不使用或者最长时间内不使用的页面置换出去。但需要确定最长时间不被访问的页面,算法难以实现。
  2. 先到先换置换算法:选择在内存中滞留最久的页面换出。产生Belady异常,即物理块增多,缺页次数不减少。
  3. 最近最久未使用置换算法:选择离当前时间最久未使用的页面换出。
  4. 简单时钟置换算法:将内存内的页面排成循环队列,当循环时,第一次碰到访问位为0的换。并在遍历后让访问位由1-0。
  5. 改进型时钟置换算法:RU两个标志,R访问,U修改。第一次找R=0,U=0,第二次找R=0,U=1。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值