《操作系统》——内存管理(下)

二、虚拟内存管理

虚拟内存技术——内存空间扩充的技术之一

  • 为什么要引入虚拟内存?
  • 虚拟内存空间的大小由什么因素决定?
  • 虚拟内存是怎么解决问题的?会带来什么问题?

(一)虚拟内存的基本概念

1、传统存储管理方式的特征、缺点

传统的缺点

  1. 一次性:1)大作业无法执行2)大量作业并发性下降
  2. 驻留性
    请添加图片描述

2、局部性原理

请添加图片描述

3、虚拟内存的定义和特征

虚拟内存的特征:

  • 多次性(反一次性)
  • 对换性(反驻留性)
  • 虚拟性请添加图片描述

4、如何实现虚拟内存技术

离散分配更方便:
基本分页——>请求分页
基本分段——>请求分段
基本段页式——>请求段页式

操作系统负责调入调出的相应的功能:
调入:请求调页/段功能
调出:页面/段置换功能请添加图片描述请添加图片描述

(二)请求分页管理方式

需要从“请求调页”功能和“页面置换”功能的角度考虑

1、页表机制(请求页表)

请添加图片描述

2、缺页中断机构

当需要访问的页面不在内存,产生一个缺页中断,系统处理中断,进程进入阻塞队列,调页结束后放回就绪队列

  • 如果内存里有空闲块,为进程分配一个空闲块,把缺页调入内存该块里,并修改页表项
  • 如果内存里没有空闲块,由页面置换算法(规则)选择一个页面淘汰,若该页面在内存期间被修改过,还得往外存写,如果在内存里没变过则不用写回外存
    请添加图片描述
    缺页中断与指令有关——内中断,且属于能修复的故障
    一条指令在执行期间可能产生多次缺页中断

请添加图片描述

3、地址变换机构(与基本有哪些区别)

请添加图片描述

  • 页号是否越界
  • 快表是否命中,命中直接访问
  • 快表未命中,访问页表项,若未调入内存,产生缺页中断,由操作系统进行请求调页和页面置换等
  • 修改访问位和修改位
    (若快表命中,则该页面一定在内存中)
    (换入换出工作由硬件完成)

请添加图片描述
红框是请求分页和基本分页的区别:

请添加图片描述
请添加图片描述
请添加图片描述

(三)页面置换算法(如何换入换出页面追求更少的缺页率)

1、最佳置换算法OPT(无法实现)

  • 每次淘汰在最长时间内不访问的页面
    请添加图片描述
    请添加图片描述

2、先进先出置换算法FIFO

  • 每次淘汰的是最早进入内存的页面,可以结合队列考虑(先进先出)
  • 对比:
    FIFO:考虑最早进入内存的
    LRU:考虑最早被访问的

    二者在访问不需要调页的页面之后会有明显的区别,如果一直需要换页,没有区别
    请添加图片描述
    请添加图片描述

3、最近最久未使用置换算法LRU

效率最接近OPT
请添加图片描述

4、时钟置换算法CLOCK(最近未用算法NRU)

请添加图片描述

5、改进型的时钟置换算法

优先淘汰没有访问过,没有被修改过的页面,(因为修改过的页面需要写回外存),以减少I/O次数
请添加图片描述
请添加图片描述

(四)页面分配策略、抖动、工作集

1、驻留集

请添加图片描述

2、页面分配、置换策略

1)固定分配局部置换
2)可变分配全局置换
3)可变分配局部置换

故存在固定分配全局置换(全局了就一定会变化)
请添加图片描述

3、调入页面的时机

请添加图片描述

4、从何处调页

调入:从外存的对换区/文件区调入
调出:往对换区写入(修改过的),没修改过的不用写
请添加图片描述
请添加图片描述

5、抖动(颠簸)现象

物理块分配太多并发度低,分配太少容易抖动
请添加图片描述

6、工作集

通过检测工作集的大小,来决定分配多少内存块,即驻留集的大小
驻留集不能小于工作集,否则抖动
请添加图片描述
请添加图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值