当前位置: 首页 > article >正文

操作系统——虚拟存储器(含思维导图)

        本教材为中国铁道出版社——操作系统(第四版)刘振鹏、张明、王煜著。本篇文章为第六章复习。

目录

思维导图:

​编辑一、虚拟存储器

1.理论基础

2.定义

二、分页虚拟存储管理

1.基本原理

2.缺页中断

3.页面置换 

(1)最佳置换算法OPT

(2)先进先出算法FIFO

(3)最近最久未使用算法LRU

(4)简单Clock置换算法

(5)改进Clock置换算法

4.内存分配策略

物理块的分配策略:

物理块分配算法:

5.调页策略

6.抖动问题

定义

产生抖动的原因

工作集/驻留集

预防抖动的方法:

三、分段虚拟存储管理


思维导图:

本文思维导图如下(本片将按照思维导图顺序展开):

一、虚拟存储器

1.理论基础
  1. 时间局部性
  2. 空间局部性
2.定义

         所谓虚拟存储器是指仅把程序的一部分装入内存便可运行程序的存储器系统。具体地说,虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。

二、分页虚拟存储管理

1.基本原理

        分页虚拟存储管理方式是在分页系统的基础上增加了请求调页功能和页面置换功能所形成的虚拟存储器系统。

2.缺页中断

缺页中断是异常的一种。它可以在指令执行期间产生和处理中断信号(一般的中断执行在一条指令结束下一条指令开始时)。它可以一条指令执行期间可能会产生多次中断。 

 例如 

如图所示:执行copy A to B 指令要经历6次缺页中断。

3.页面置换 
(1)最佳置换算法OPT

        其淘汰的界面将是以后永不使用或是在最长时间内不再被访问的页。这种算法是无法实现的,可以作为其他界面的衡量标准。

(2)先进先出算法FIFO

        每次淘汰最先进入内存的页。这种算法很简单,易于实现。但是效率不高,容易出现"Belady现象“

"Belady现象“

        即当物理内存的大小增加时,进程发生缺页中断的次数反而会增加。

        在FIFO算法中,被置换出去的页面是最早进入内存的页面,而没有考虑到这些页面在未来是否可能再次被访问。因此,当物理内存增加时,可能会将一些未来需要访问的页面过早地置换出去,导致缺页中断次数增加。

示例说明

        假设有一个页面访问序列为1, 2, 3, 4, 2, 1, 5, 6, 2, 1, 2, 3,7, 6, 3, 2, 1, 2, 3, 6。当内存块数量分别为3和4时,使用FIFO算法进行页面置换的缺页次数可能会发生变化。尽管增加了内存块数量(从3增加到4),但由于页面访问序列的特性,可能会出现更多的缺页次数。

(3)最近最久未使用算法LRU

        最近最久未使用算法淘汰在最近一段时间里最少使用的一页。有两种实现方式,需要通过特定硬件:位移寄存器 / 特殊栈  代价较高

(4)简单Clock置换算法

        给每个内存页面设置一个访问位,用于记录页面是否被访问过。当某页被访问时,其访问位置为1;如果该页之后未被访问,则其访问位保持为0。当需要置换页面时,算法会循环查找首个访问位为0的页面进行置换。如果在查找过程中遇到访问位为1的页面,则将其访问位重置为0,并继续查找。

(5)改进Clock置换算法

在简单Clock算法上还考虑了置换代价这个因素。设置了访问位A和修改位M。

  1. A=0, M=0:表示该页最近既未被访问,又未被修改。这是最佳淘汰页,因为置换它时既不需要考虑访问历史,也不需要写回磁盘。

  2. A=0, M=1:表示该页最近未被访问,但已被修改。这类页面在置换时需要将内容写回磁盘,因此不是首选淘汰页。

  3. A=1, M=0:表示该页最近已被访问,但未被修改。这类页面有可能再次被访问,且置换时不需要写回磁盘,因此可以保留在内存中。

  4. A=1, M=1:表示该页最近已被访问且被修改。这类页面既有可能再次被访问,又需要在置换时写回磁盘。如果必须置换这类页面,应优先考虑那些较长时间未被访问的。

4.内存分配策略
物理块的分配策略:

(1)固定分配局部置换

(2)可变分配全局置换

(3)可变分配局部置换

物理块分配算法:

(1)平均分配算法(2)按比例分配算法(3)考虑优先级的分配算法

缺页率P——不宜过大或过小

P过大,分配的物理块过少,容易出现“抖动”现象

P过小,分配的物理块过多,并行能力下降

5.调页策略

(1).请求调页策略

(2)预调页策略(命中率较低50%)

6.抖动问题
定义

        操作系统抖动通常是由于内存或资源不足导致的计算机活动异常,表现为程序执行缓慢甚至停滞。在虚拟存储系统中,过度的页请求操作是其典型特征。处理机的利用率急剧下降趋向于0,这些时间大部分用于页面的换进换出。

产生抖动的原因

        根本原因是系统中进程的数量太多因此分配给每个进程的物理块数量较少。使得进程运行时平凡的发生缺页中断。

工作集/驻留集

工作集:在某段时间中,进程访问页面的合集。

驻留集:在某段时间中,在内存中,物理块能驻留的页数。

驻留集不可小于工作集——为了防止缺页率过高。

预防抖动的方法:

(1)采用局部置换策略

(2)利用工作集算法防止抖动

(3)利用“L=S”准则调节缺页率

L是缺页之间的平均时间,S是平均缺页服务时间。L远大于S,说明很少发生缺页,处理机和磁盘尚未得到充分利用。L小于S,说明平凡发生缺页

(4)挂起某些进程

三、分段虚拟存储管理

1.缺段中断

        和缺页中断一样,它可以在指令执行期间产生和处理中断信号。段是信息的逻辑单位,所以不可能出现一条指令被分割在两个段内的情况。下图为缺段中断的处理过程


http://www.kler.cn/a/396859.html

相关文章:

  • [Linux]多线程详解
  • @Autowired 和 @Resource思考(注入redisTemplate时发现一些奇怪的现象)
  • Kafka-Eagle的配置——kafka可视化界面
  • dockers+Jenkins+git+自动化框架
  • 【鸿蒙开发】第十一章 Stage模型应用组件-任务Mission
  • centos7安装Chrome使用selenium-wire
  • 使用pytest+openpyxl做接口自动化遇到的问题
  • 丹摩征文活动 |【前端开发】HTML+CSS+JavaScript前端三剑客的基础知识体系了解
  • rust并发
  • 6. Keepalived配置Nginx自动重启,实现7x24提供服务
  • 高效灵活的Django URL配置与反向URL实现方案
  • Git 分⽀规范 Git Flow 模型
  • 【新华妙笔-注册/登录安全分析报告-无验证方式导致安全隐患】
  • 如何在 Ubuntu 上配置 Kotlin 应用环境 ?
  • 计算机使用常用工具(持续更新)
  • Javascript 高级事件编程 - Axios fetch
  • 智能工厂的设计软件 为了监管控一体化的全能Supervisor 的监督学习 之 序5 架构for认知系统 总述 (架构全图)
  • AI 产品的四层架构:开启智能未来的密码
  • spark性能优化调优指导性文件
  • 管家婆财贸ERP BR033.请购单明细表采购周期预警
  • Mac终端字体高亮、提示插件
  • 蓝桥杯-洛谷刷题-day3(C++)
  • Javascript——设计模式(一)
  • WEB服务器实现(药品商超)
  • 前端页面一些小点
  • 跳房子(弱化版)