一、虚拟存储器的基本概念

1.常规存储管理方式的特征:一次性、驻留性

2.局部性原理:

程序在执行时常呈现局部性规律,并表现在两个方面

  1. 时间局部性。如果程序小红放入某条指令一旦执行,则不久以后该指令可能再次执行,如果某数据被访问过,则不久以后该数据可能再次被访问。产生时间局限性的典型原因,是由于在程序中存在着大量的循环操作
  2. 空间局部性。一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,其典型情况便是程序的顺序执行。

3.虚拟存储器的定义及大小计算

1)定义:

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

  1. 大小计算:

实质:物理上不存在,利用海量外存进行内存“空间”的扩展

逻辑容量:取决于内存容量和外存容量之和

4.虚拟存储器具有的特征:

1)离散性(最基本的特征)

2)多次性

3)对换性

4)虚拟性

5.虚拟存储器的实现方法

1)分页请求系统(页式虚拟存储系统)

(1)=基本分页系统+请求调页功能+页面置换功能

(2)硬件支持:请求分页的页表机制,缺页中断机构,地址变换机构

(3)软件支持:请求分页,页面置换

2)请求分段系统(段式虚拟存储系统)

(1)=基本分段系统+请求调段功能+分段置换功能

(2)硬件支持:请求分段的段表机制,缺段中断机构,地址变换机构

(3)软件支持:请求分段,段的置换

二、请求分页存储管理方式

在基本分页的基础增加了请求调页功能和页面置换功能,形成了能支持虚拟存储功能的请求分页系统,这在计算机技术需要哪些支持?

答:页面机制,缺页中断机构以及地址变换机构

  1. 硬件上支持:

1)页表机制调整

增加的位作用:地址转换

意义:供程序(数据)在换进,换出时参考

2)缺页中断机构

与其它中断的异同:

  1. 在指令执行期间产生和处理中断信号
  2. 一条指令执行期间可能产生多次缺页中断
  1. 地址变换机构

地址如何完成重定位:

在进行地址变换时,首先去检索快表,试图从中找出所要访问的页。若找到,便修改页表项中的访问位。对于写指令,还需将修改位置成“1”,然后页表项中给出的物理块号和页内地址,形成物理地址。

  1. 软件上支持:

1)页面置换实现的软件

2)请求调页的软件

  1. 内存分配
  1. 最小物理块数的确定:

保证进程正常运行所需的最小物理块数

与硬件结构有关,取决于指令的格式,功能和寻址方式

  1. 内存分配策略
  1. 内存分配:

固定分配:为进程分配的物理块数固定不变

可变分配:先为每个进程分配一定数目的物理块,若发生缺页中断,再增加物理块数

  1. 内存置换:

全局置换:可将系统中任一进程的内存页换出

局部置换:只能将自己的某个内存换出

  1. 组合出以下三种适用策略:

固定分配局部置换

可变分配全局置换

可变分配局部置换

  1. 物理块分配算法
  1. 平均分配算法
  2. 按比例分配算法
  3. 考虑优先权的分配算法
  1. 页面调入策略

1)何时调入页面:

预调页策略:进程首次调入内存时,由程序员指出应该先调入哪些页

请求调页策略:进程运行中发生缺页时,提出请求,由OS将其所需页面调入内存

2)何处调入页面:

请求分页系统将外存分为两部分:

  1. 文件区(离散分配)
  2. 对换区(连续分配)

发生缺页请求时,有以下三种情况:

(1)系统拥有足够的对换区空间

(2)系统缺少足够的对换区空间

(3)UNIX方式

  1. 页面调入过程:
  1. 若发生缺页,便向CPU发出缺页中断
  2. 中断处理程序保存CPU环境,转中断处理程序
  3. 该程序查找页表,得到该页在外存中的块号
  4. 若内存未满,启动磁盘I/O调入页面;若内存已满,先置换再调入
  5. 修改页表项内容,并写入快表
  1. 缺页率

(1)定义以及计算公式:

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

(2)影响因素:

A.页面大小

B.进程分配的物理块数

C.页面置换算法

D.程序固有特性

  1. 缺页中断处理时间公式

假设被置换的页面被修改的概率是β,其缺页中断处理时间为ta,被置换页面没有被修改的缺页中断时间为tb,那么,缺页中断处理时间的计算公式为
                   t =β×ta+(1—β)×tb

三、页面置换算法

1.定义:

通常,把选择换出页面的算法称为页面置换算法

2.“抖动”产生的原因

置换算法的好坏将直接影响系统的性能,不适当的置换算法可能导致系统出现“抖动”现象

3.常用置换算法:

1)最佳置换算法(OPT)

A.基本思想:

淘汰以后永不使用的或未来最长时间内不再被访问的页面

B优缺点:

理论上:缺页率低,性能最佳

实际上:无法预知,实现困难;通常用于评价其他算法的优劣

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

A.基本思想:

淘汰最先进入内存的页面,即驻留内存时间最长的页面

B.优缺点:

实现简单

与进程实际运行的规律不相适应,有些页面经常被访问

3)LRU置换算法

A.基本思想:

淘汰在最近一段时间最久未被使用(访问)的页面

B.优缺点:

性能较好

实现较为复杂;设置访问字段;需要硬件支持(配置寄存器或栈)

  1. LFU置换算法

A.基本思想:

在采用LFU算法时,应为在内存中的每个页面设置一个移位寄存器,用来记录该页面被访问的频率。该置换算法选择在最近时期使用最少的页面作为淘汰页。每次访问某页时,便将该移位寄存器的最高位置1,再每隔一定时间(例如100 ms)右移一次。这样,在最近一段时间使用最少的页面将是∑Ri最小的页。
B.优缺点:

LFU算法并不能真正反映出页面的使用情况,因为在每一时间间隔内,只是用寄存器的一位来记录页的使用情况,因此,访问一次和访问10 000次是等效的

5)Clock置换算法

A.基本思想:

为每页设置一位访问位;

将内存中所有页面链接成一个循环队列,并增设替换成指针;

由页面管理软件周期性地访问所有访问位置0,当某页被访问时,将其访问位置“1”。

6)改进型Clock置换算法

A.基本思想:

(1)从指针所指示的当前位置开始,扫描循环队列,寻找A=0且M=0的第一类页面,将所遇到的第一个页面作为所选中的淘汰页。在第一次扫描期间不改变访问位A

(2)如果第一步失败,即查找一周后未遇到第一类页面,则开始第二轮扫描,寻找A=0且M=1的第二类页面,将所遇到的第一个这类页面作为淘汰页。在第二轮扫描期间,将所有扫描果的页面的访问位置都置0

(3)如果第二步也失败,亦即未找到第二类页面,则将指针返回到开始的位置,并将所有的访问位置复0。然后重复第一步,如果仍失败,必要时再重复第二步,此时就一定能找到被淘汰的页。

B.优缺点

可减少磁盘的I/O操作次数,实现该算法本身的开销将有所增加

  1. PBA算法

A. 影响页面换进换出效率的若干因素
(1)页面置换算法。
(2)写回磁盘的频率。
(3)读入内存的频率。

B.优缺点:

(1)显著地降低了页面换进、换出的频率,使磁盘I/O的操作次数大为减少,因而减少了页面换进、换出的开销;

(2)正是由于换入换出的开销大幅度减小,才能使其采用一种较简单的置换策略,如先进先出(FIFO)算法,它不需要特殊硬件的支持,实现起来非常简单。

4.Blady奇异

指置换策略不满足随着驻留集的增大,页故障数一定减少的规律。

  • ”抖动”与工作集

1.多道程序度与处理机利用率之间矛盾之处以及如何平衡

由于虚拟存储器系统能从逻辑上扩大内存,这时,只需装入一个进程的部分程序和数据便可开始运行,故人们希望在系统中能运行更多的进程,即增加多道程序度,以提高处理机的利用率。

2.产生”抖动”的原因

根本原因:发生“抖动”的根本原因是,同时在系统中运行的进程太多,由此分配给每一个进程的物理块太少,不能满足进程正常运行的基本要求,致使每个进程在运行时,频繁地出现缺页,必须请求系统将所缺之页调入内存。

3.缺页率与物理块数之间关系以及为何引入工作集

4.工作集定义

所谓工作集,是指在某段时间间隔Δ里,进程实际所要访问页面的集合

5.如何预防”抖动”

1)采取局部置换策略
2)把工作集算法融入到处理机调度中
3)利用“L=S”准则调节缺页率
4)选择暂停的进程

五、请求分段存储管理方式

1.请求分段的基本原理

1)请求段表机制

(1)增加的位:

存取方式

访问字段A

修改位M

存在位P

增补位

外存始址

(2)作用及其意义:

基本作用:地址转换

供程序在调进,调出时参考

2)缺段中断机构

3)地址变换机构

2.分段的共享

1)数据结构: 共享段表的组成

(1)共享进程计数count。
(2)存取控制字段。
(3)段号。

2)共享段表管理机制

(1)共享段的分配

对第一个请求使用该共享段的进程;

对其他调用该共享段的进程;

(2)共享段的回收

当进程不再需要共享时;撤销共享段的表项;执行count=count-1,仅当count=0时,由系统回收共享段的物理内存。

3.分段的保护

1)越界检查

在段表寄存器中放有段表长度信息;同样,在段表中也为每个段设置有段长字段。在进行存储访问时,首先将逻辑地址空间的段号与段表长度进行比较,如果段号等于或大于段表长度,将发出地址越界中断信号;其次,还要检查段内地址是否等于或大于段长,若大于段长,将产生地址越界中断信号,从而保证了每个进程只能在自己的地址空间内运行

  1. 存取控制检查

在段表的每个表项中,都设置了一个“存取控制”字段,用于规定对该段的访问方式。通常的访问方式有:

(1)只读,即只允许进程对该段中的程序或数据进行读访问。

(2)只执行,即只允许进程调用该段去执行,但不准读该段的内容,也不允许对该段执行写操作。

(3)读/写,即允许进程对该段进行读/写访问。

3)环保护机制

这是一种功能较完善的保护机制。在该机制中规定:低编号的环具有高优先权。OS核心处于0环内;某些重要的实用程序和操作系统服务占居中间环;而一般的应用程序则被安排在外环上。在环系统中,程序的访问和调用应遵循以下规则:

(1)一个程序可以访问驻留在相同环或较低特权环中的数据。

(2)一个程序可以调用驻留在相同环或较高特权环中的服务。

操作系统 第五章虚拟器存储器(自我总结式)相关推荐

  1. 操作系统 第六章输入输出系统(自我总结式)

    一.输入输出系统的定义 计算机主机与外部进行通信系统 I/O系统的功能,模型和接口 1.I/O系统的基本功能 1)隐藏物理设备的细节 2)与设备的无关性 3)提高处理机和I/O设备的利用率 4)对I/ ...

  2. 操作系统 第二章进程管理(自我总结式)

    一.程序的顺序执行及其特征 1.程序的顺序执行 在未配置OS的系统中,程序是顺序执行的 通常把应用程序分成若干个程序段,在各程序段之间,按照某种先后顺序执行 2.特征: 程序执行的顺序性 程序环境的封 ...

  3. 汤晓丹的第四版计算机操作系统--第五章总结概述

    第五章 虚拟存储器 传统存储器管理特征:(1) 一次性,(2) 驻留性 . 虚拟存储器具有以下三个重要特征:(1) 多次性.(2) 对换性.(3) 虚拟性. 5.1虚拟存储器的实现方法 分页请求系统 ...

  4. 操作系统--第五章 虚拟存储器--习题答案

    第五章 操作系统第四版课后的全部习题答案,学习通作业答案. 说明:操作系统其他章节的习题答案也在此"操作系统"专栏. 1.试说明设备控制器的组成. 答:由设备控制器与处理机的接口, ...

  5. 18 操作系统第五章 设备管理 IO设备的基本概念和分类 IO控制器 IO控制方式 IO软件层次结构 IO核心子系统 假脱机技术 设备的分配与回收 缓冲区管理

    文章目录 1 IO设备的基本概念和分类 1.1 什么是I/O设备 1.2 I/O设备分类 2 IO控制器 2.1 I/O设备组成 2.2 I/O控制器功能 2.3 I/O控制器的组成 2.4 寄存器编 ...

  6. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节4:I/O软件层次结构

    文章目录 一:用户层软件 二:设备独立性(无关性)软件 三:设备驱动程序 (1)为什么需要驱动 (2)功能 四:中断处理程序 五:硬件设备 I/O软件是操作系统中很特别的存在 它向下与硬件有着密切的联 ...

  7. 操作系统 第五章 IO管理

    5.1 IO管理概述 IO设备根据不同的分类标准,可以进行不同的分类. 首先,根据IO设备的使用特性,可以分为人机交互类外部设备(打印机.显示器).存储设备和网络设备.按照传输速率分类,可以分为低速设 ...

  8. 操作系统第五章——进程同步

    一.背景 对共享数据同步访问可能会造成数据的不一致性,要维护数据的一致性需要一个机制来保证协作进程的顺序访问. 竞争条件race condition:多个进程并发访问和操作同一数据,访问顺序会影响执行 ...

  9. 计算机操作系统第五章习题(附答案)

    第5章 1操作系统为(进程)分配内存空间. 窗体顶端 2把作业地址空间使用的逻辑地址变成内存物理地址的过程为(重定位). 窗体顶端 3在固定分区存储管理系统中,每个分区的大小是(可以不同但预先固定)的 ...

最新文章

  1. python安装进度条不动_python – tkinter中的进度条不起作用
  2. UrlDecode和base64
  3. TypeScript的安装步骤、运行问题及代码的简单运行
  4. 怎么查看自己linux实验环境,Linux实验
  5. 视觉错觉模型_有才!将立体模型涂改伪装成平面二次元,视觉错觉玩法在日本风靡...
  6. Myeclipse10下载,安装,破解,插件,优化介绍.
  7. 我犯的错误--关于数据库类型不对
  8. “此图片来自微信公众平台 未经允许不可引用“ 解决办法
  9. android相对布局代码,Android基础_3 Activity相对布局(示例代码)
  10. 影子的变化情况到底如何?和太阳又有什么关系?
  11. 20145302张薇《Java程序设计》实验三报告
  12. JavaScript对象学习笔记
  13. java 类对象_Java中的对象和类是什么?
  14. 案例学习BlazeDS+Spring之九Company Manager
  15. URL different URI
  16. LXC源码编译测试(五)
  17. [转]C#操作Excel开发报表系列整理
  18. 使用SpringBoot+RabbitMQ框架集成例程
  19. Android源码分析(十三)----SystemUI下拉状态栏如何添加快捷开关
  20. 【WebService】Caused by: org.apache.cxf.transport.http.HTTPException: HTTP respon ...

热门文章

  1. 清除异常关闭进程的任务栏托盘区残留图标
  2. 刷微信点击量的php,PHP一键刷QQ微信支付宝步数代码
  3. meethigher-定时刷步数收取蚂蚁森林能量
  4. Android 获取点击屏幕压力和坐标
  5. 让人爱不释手的工具,每款都是高质量工具分享
  6. vt100 c语言控制,【转】C语言中控制printf的打印颜色实例及vt100的控制符文档
  7. ros入门 工程目录结构、节点通信方式、基本操作命令
  8. Word操作之Mathtype自动进行公式编号
  9. 【正点原子FPGA连载】 第七章 Verilog HDL语法 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0
  10. vivo 推送平台架构演进