简单介绍《计算机》虚拟内存管理内容
树图思维导图提供 《计算机》虚拟内存管理思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 《计算机》虚拟内存管理思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:9542f6c99adc1d3456c540fbb43ef595
3.3虚拟内存管理思维导图模板大纲
虚拟存储器的管理方式
特点
对换性
作业无须常驻内存、允许作业运行过程进行换进换出
虚拟性
从逻辑上扩充主存的容量
虚拟存储器的大小由计算机的地址结构决定、不是主存与外存的简单相加
多次性
指作业无须运行时一次全部地装入主存、而允许被分成多次调入内存运行
实现方式
请求分页式存储管理
请求分段式存储管理
请求段页式存储管理
硬件支持
页表机制
中断机构
地址变换机构
概念
在程序装入时、只需装入一部分程序、其余部分留在外存、就可以启动程序执行、当执行过程发现访问的信息不在内存、再进行调入
传统存储管理方式
驻留性
作业被装入内存后,任何部分都不会被换出、直到作业运行结束
一次性
作业必须一次性装入内存才可以开始运行
调入页面时机
请求调页策略
根据进程请求访问的页进行调入
缺点
每次只调入\调出一个页面、花费的I/O开销较多
联系
预调用策略和请求调页策略是一起使用的、一般运行前采用预调入策略、运行期间采用请求调页策略
预调页策略
一次调入若干个相邻的页
缺点
若调入的一批页面大多数用不到、就很低效
从何处调页
系统有足够的对换空间
系统缺少足够的对换空间
UNIX方式
分配策略
可变分配全局置换
最容易实现的分配策略
缺点
系统可能会盲目地给进程加物理块、导致系统并发能力下降
导致并发能力下降的原因:因为内存的空间是一定的、如果给某个进程分配的空间太多、会导致其他进程无法分配到足够的空间、这样的话可能某些进程就无法运行、这样多道程序的并发能力就下降了
先给进程分配一定数量的物理块、当缺页时,系统就动态给进程增加物理块
可变分配局部置换
可以动态给进程增加、减少物理块、
①先给进程分配一定数量的物理块、当缺页时、先在其分配的块中进行调页、②要是缺页太频繁了、才给它增加物理块、③如果某些进程物理块空间、就适当减少
前两者的折中
固定分配局部置换
每个分配一定数目的物理块、运行期间都不改变
缺点
难以确定为每个进程分配多少
发生缺页就只能在该进程分配的物理块中进行页的换入换出
需要将外存的页面调入内存、而内存空间满了、需要根据一定算法选择页面将其调出、放到磁盘的【对换区】
最佳置换算法(OPT)
选择淘汰以后永不使用的页面或者最长时间内不再被访问的页面【该算法需要预先知道要访问的页面、因而无法实现、但可以来评价其他算法】
先进先出页面置换算法(FIFO)
淘汰最早进入内存的页面、算法简单、用队列即可实现
但该算法与实际运行不适应、有Belady现象
最近最久未使用算法(LRU)
选择最近最长时间未被访问的页面予以淘汰
需要寄存器和栈的硬件支持、LRU是堆栈类算法
LRU接近于OPT算法、但是实现起来困难、开销大
时钟置换算法(CLOCK)
又称最近未用算法NRU
简单型CLOCK算法
添加一个【使用位u】
置换过程
循环扫描缓冲区、若u=1,则置为0,若u=0,则置换出来、若扫了一圈没有u=0,则下一个就是u=0了。因为前面已经把扫描过的u置为0了
改进型的CLOCK算法
添加一个【使用位u】【修改位m】
置换过程
循环扫描缓冲区、若u=1,则置为0,若u=0,则置换出来
若扫了一圈没有u=0,则考虑m,若m=1,置为0,若m=0置换出来
若又扫了一圈没有发现m=0的、则下一个就是u=0,m=0了,置换出来
优先考虑【使用位】、若使用位相同、就考虑【修改位】
需要循环扫描缓冲区
抖动(颠簸)
原因
进程频繁访问的页面数目高于可用物理块数
现象
刚刚换入的页面又被换出、刚刚换出的页面又要被换入
进程在换页上用的时间多于执行时间
工作集
某段时间内、进程要访问的页面集合、基于局部性原理来确定
工作集W可由时间t和工作集窗口大小△确定
分配的物理块(即驻留集)大小要大于工作集大小
地址翻译
这道例题做到滚瓜烂熟才行
驻留集
操作系统决定给一个进程分配几个页框、物理页框的集合称为该进程的驻留集
页表机制
页表项
页号|块号|状态位P|访问字段A|修改位M|外存地址
中断机构
缺页中断是内部中断、不用等到一条指令执行结束才中断、缺页时、马上产生中断
一条指令执行时、可能产生多次缺页中断
当要访问的页面不在内存、则会产生缺页中断
地址变换机构
在基本分页地址变换基础上增加了某些功能
三个基本判断
①地址是否越界?
是→越界中断
否→②是否在快表中?
是→地址变换→结束
否→去内存找
内存有→地址变换→结束
内存没有→缺页中断
到外存调入页、内存是否满?
没有→调入内存→CPU读
满了→页面置换算法→……
概念
建立在基本分页系统之上、为了实现虚拟存储器功能增加了请求调页功能和页面置换功能