【408&预推免复习】操作系统之虚拟存储器

文章目录
1 虚拟存储器概述
2 请求分页存储管理方式
3 页面置换算法3.1 最佳(Optimal)置换算法3.2 先进先出(FIFO)页面置换算法3.3 最近最久未使用LRU(Least Recently Used)3.4 最少使用(Least Frequently Used,LFU)置换算法3.5 Clock置换算法
4 “抖动”与工作集
5 请求分段存储管理方式

1 虚拟存储器概述

局部性原理(理论基础)1968年P.Denning 提出,即在一较短时间内,程序的执行仅限于某个部分,且所访问的存储空间也局限于某个区域。

程序执行时,大多数情况下是顺序执行的。
过程调用会使程序的执行轨迹从一部分内存区域转至另一部分区域, 但过程调用的深度不会超过5。
程序中有许多循环语句,这些语句会重复多次执行。
程序中对数据结构,如数组的操作,往往局限在很小的范围内。

时间局限性
程序中的的某条指令被执行,不久后会可能再次被执行;如果某数据被访问过,不久以后该数据可能再次被访问。
空间局限性
程序一旦访问某存储单元,不久后会访问其附近的存储单元

虚拟存储器的定义
所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。
其逻辑容量由内存和外存之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。

2 请求分页存储管理方式



缺页率:
假设一个进程的逻辑空间为n页,系统为其分配的内存物理块数为m(m≤n)。如果在进程的运行过程中,访问页面成功(即所访问页面在内存中)的次数为S,访问页面失败(即所访问页面不在内存中,需要从外存调入)的次数为F,则该进程总的页面访问次数为A = S + F,那么该进程在其运行过程中的缺页率即为。

3 页面置换算法

3.1 最佳(Optimal)置换算法

3.2 先进先出(FIFO)页面置换算法

3.3 最近最久未使用LRU(Least Recently Used)


两种方法实现
移位寄存器
为某个进程在内存中的每个页面配置一个移位寄存器(R=Rn-1Rn-2Rn-3…R2R1R0)
当进程访问某块时,将该块所对应的移位寄存器的最高位(Rn-1位)置成1。
系统中的定时器每隔一定时间(例如10ms)将所有的移位寄存器右移1位。
将每个寄存器看成一个整数,则淘汰时,具有最小整数的寄存器对应的页面就是最近最久未被使用的页面


用一个特殊的栈保存当前使用的各个页面的页面号,当进程访问某页时
如果该页在栈内,则将该页从栈内弹出并压入栈顶
如果该页不在栈内,则直接压入栈顶
淘汰时,在栈底的页就是最近最久未使用的页

3.4 最少使用(Least Frequently Used,LFU)置换算法

思想:淘汰最近一段时间使用次数最少的页面。
实现:
为每个页面设置一个移位寄存器,用来记录页面的访问频率。
每次访问某页,就将移位寄存器最高位置1,定期右移移位寄存器
淘汰时,选择寄存器值 最小的页面

3.5 Clock置换算法


改进型Clock置换算法
在将一个页面换出时,如果该页已被修改过,便须将该页重新写回到磁盘上;但如果该页未被修改过,则不必将它拷回磁盘。换而言之,对于修改过的页面,在换出时所付出的开销比未修改过的页面大,或者说,置换代价大。
在改进型Clock算法中,除须考虑页面的使用情况外,还须再增加一个因素——置换代价。
Clock算法将页面分类(A表示访问位,M表示修改位)
A=0,M=0:既未访问,又未修改
A=0,M=1:未访问但已修改
A=1,M=0:已访问但未修改
A=1,M=1:已访问且已修改

4 “抖动”与工作集


**所谓工作集,是指在某段时间间隔Δ里,进程实际所要访问页面的集合。**Denning指出,虽然程序只需要少量的几页在内存便可运行,但为了较少地产生缺页,应将程序的全部工作集装入内存中。然而我们无法事先预知程序在不同时刻将访问哪些页面,故仍只有像置换算法那样,用程序的过去某段时间内的行为作为程序在将来某段时间内行为的近似。

5 请求分段存储管理方式

请求分段存储管理方式是以分段为单位进行换入、换出
程序在运行之前,只需先调入少数几个分段便可启动运行,当所访问的段不在内存中时,可请求OS将所缺的段调入内存

【408预推免复习】操作系统之虚拟存储器相关推荐

  1. 【408预推免复习】操作系统之存储器管理

    [408&预推免复习]操作系统之存储器管理 文章目录 1 基础部分 2 分页存储管理 3 分段存储管理 1 基础部分 物理地址空间(或物理空间.绝对空间):由内存一系列存储单元所限定的地址范围 ...

  2. 【408预推免复习】操作系统之IO层次结构和IO控制方式

    [408&预推免复习]操作系统之IO层次结构和IO控制方式 文章目录 1 I/O设备 2 I/O系统的层次结构 3 I/O控制方式 4 IO设备分配与回收 文章目录 1 I/O设备 2 I/O ...

  3. 【408预推免复习】操作系统之处理机调度与死锁

    [408&预推免复习]操作系统之处理机调度与死锁 文章目录 1 作业调度和进程调度 2 实时调度和死锁概述 3 预防死锁和避免死锁 1 作业调度和进程调度 什么是处理机调度? 处理机调度:如何 ...

  4. 【408预推免复习】操作系统引论

    [408&预推免复习]操作系统引论 文章目录 1 操作系统的目标和作用 2 单道批处理系统 3 多道批处理系统 4 操作系统基本特性 1 操作系统的目标和作用 2 单道批处理系统 3 多道批处 ...

  5. 【408预推免复习】操作系统之文件管理

    文章目录 1 文件和文件系统 2 文件的逻辑结构 3 文件目录 4 文件共享 1 文件和文件系统 文件是具有文件名的一组相关信息的集合. 文件需要有文件名.基本内容和相关属性,如文件类型.文件长度.文 ...

  6. 【408预推免复习】操作系统之进程的描述与控制

    文章目录 1 进程的基本概念 2 进程控制与进程同步 3 经典进程同步问题 4 进程通信与线程 1 进程的基本概念 前趋图(Precedence Graph),是指一个有向无循环图,可记为DAG(Di ...

  7. 【408预推免复习】计算机网络(谢希仁第七版)第六章——应用层

    文章目录 1 域名系统 DNS 2 文件传送协议 3 远程终端协议 TELNET 4 万维网 WWW 5 电子邮件 6 动态主机配置协议 DHCP 7 简单网络管理协议 SNMP 8 应用进程跨越网络 ...

  8. 【408预推免复习】计算机组成原理之系统总线

    文章目录 1 总线的基本概念 2 总线的分类 3 总线特性及性能指标 4 总线结构 5 总线控制 1 总线的基本概念 什么是总线 总线是连接各个部件的信息传输线, 是各个部件共享的传输介质 单总线结构 ...

  9. 【408预推免复习】计算机组成原理之控制单元的功能和控制单元的设计

    文章目录 1 微操作命令的分析 2 控制单元的功能 3 组合逻辑设计 4 微程序设计 1 微操作命令的分析 完成一条指令分 4 个工作周期 取指周期 间址周期 执行周期 中断周期 2 控制单元的功能 ...

最新文章

  1. PackageManagerService详解
  2. java dateformat类_JAVA--常量池,Date类,SimpleDateFormat类与Calendar类
  3. c++ char **argv 赋值
  4. js及jQuery实现checkbox的全选、反选和全不选
  5. iOS 多线程基础之 NSThread
  6. hihoCoder 1367 等式填空
  7. nacos oaut服务地址_用户认证的例子:Spring Security oAuth2 + Spring Cloud Gateway + Nacos + Dubbo...
  8. Eclipse出现ContextLoaderListener not find
  9. linux下的awk程序在哪里编写,如何编写awk命令和脚本
  10. python 发红包import random用redenv,Python微信发红包编码案例 微信发红包的架构模式 - push博客...
  11. lamda获取参数集合去空_集合源码解析之LinkedList
  12. DEL: 扁桃体发炎兼嗓子哑治疗药品
  13. windows mobile进程查看器开发(二)—— 停止进程
  14. SQL语法基础篇 —— 常用的SQL标准
  15. Labview实现画板
  16. 8脚 tja1050t_TJA1050TD-T_PDF技术资料下载_货期信息(1/10)_NXP - 万联芯城
  17. 瞧一瞧看一看啦“一段眼睛跟着鼠标转动的跟踪眼代码”
  18. IMAU 软件项目管理 期末复习总结 第六章
  19. U盘装系统(Linux)
  20. 《游戏脚本的设计与开发》-(RPG部分)3.1 RPG地图到底怎么做?

热门文章

  1. c++智能指针 示例讲解
  2. ‘utf-8‘ codec can‘t encode character ‘\udcc0‘ in position 35
  3. cpp cu入门教程
  4. tensorflow兼容问题
  5. tftp ubuntu安装
  6. Smooth_L1_Loss函数的计算方式
  7. wing 切换python版本
  8. python event多线程回调
  9. ffmpeg端口被占用
  10. 怎么才能领取到外卖红包呢