操作系统——存储器管理的功能

一. 内容总览

操作系统——存储器管理的功能_第1张图片

操作系统——存储器管理的功能_第2张图片

二. 内存空间的分配和回收

为了能将用户程序装入内存,必须为它分配一定大小的内存空间。连续分配方式是最早出现的一种存储器分配方式
该分配方式为一个用户程序分配一个连续的内存空间,即程序代码或数据的逻辑地址相邻,体现在内存空间分配时物理地址的相邻

操作系统——存储器管理的功能_第3张图片

①连续分配管理方式

操作系统——存储器管理的功能_第4张图片

1. 单一连续分配方式

操作系统——存储器管理的功能_第5张图片

2. 固定分区分配

操作系统——存储器管理的功能_第6张图片

操作系统怎么记录内存中各个分区的占用或者空闲的情况呢?

操作系统——存储器管理的功能_第7张图片

3. 动态分区分配

操作系统——存储器管理的功能_第8张图片

问题一:系统要用什么样的数据结构记录内存的使用情况

操作系统——存储器管理的功能_第9张图片

问题二:当有很多空闲分区都能满需要时,应该选择哪个分区进行分配

操作系统——存储器管理的功能_第10张图片

选择分区时,可以通过动态分区分配算法来决定

操作系统——存储器管理的功能_第11张图片

(1). 首次适应算法

操作系统——存储器管理的功能_第12张图片
操作系统——存储器管理的功能_第13张图片

(2). 最佳适应算法

操作系统——存储器管理的功能_第14张图片
操作系统——存储器管理的功能_第15张图片
在这里插入图片描述

(3). 最坏适应算法

操作系统——存储器管理的功能_第16张图片
在这里插入图片描述

(4). 邻近适应算法

操作系统——存储器管理的功能_第17张图片
操作系统——存储器管理的功能_第18张图片
操作系统——存储器管理的功能_第19张图片

(5). 总结

操作系统——存储器管理的功能_第20张图片

问题三:如何进行分区的分配和回收操作

分配方式一
操作系统——存储器管理的功能_第21张图片
分配方式二
操作系统——存储器管理的功能_第22张图片
回收进程4 情况一
操作系统——存储器管理的功能_第23张图片

回收进程3 情况二
操作系统——存储器管理的功能_第24张图片
回收进程4 情况三
操作系统——存储器管理的功能_第25张图片
回收进程2 情况四
操作系统——存储器管理的功能_第26张图片

动态分区分配算法总结

操作系统——存储器管理的功能_第27张图片
操作系统——存储器管理的功能_第28张图片

4. 连续分配方式的缺点

操作系统——存储器管理的功能_第29张图片

②非连续分配管理方式

如果允许将一个进程分散地装入到许多不相邻的分区中,便可充分地利用内存空间,而无需再进行紧凑
基于这个思想,产生了非连续分配方式,或者称为离散分配方式
根据离散分配时所分配的地址空间的基本单位的不同,又可以将离散分配分为三种:分页存储器管理方式、分段存储器管理方式、段页式存储器管理方式

操作系统——存储器管理的功能_第30张图片

1. 基本分页存储管理

将用户程序的地址空间分为若干个固定大小的区域,称为页或页面。相应的将内存空间分为若干个物理块或页框,页和块的大小相同。这样就可以将用户程序的任一页放入任一物理块中,实现了离散分配

分页存储管理方式引入的目的:
提高内存的利用率

操作系统——存储器管理的功能_第31张图片

(1). 非连续分配举例

操作系统——存储器管理的功能_第32张图片
操作系统——存储器管理的功能_第33张图片

(2). 分页存储管理基本概念

操作系统——存储器管理的功能_第34张图片

(3). 采用分页技术之后如何实现地址转换

将进程地址空间分页之后,操作系统该如何实现逻辑地址到物理地址的转换?

操作系统——存储器管理的功能_第35张图片
操作系统——存储器管理的功能_第36张图片
操作系统——存储器管理的功能_第37张图片

(4). 为什么将页面大小设置为2的整数幂就可以方便计算机计算?

原因:在计算机内部,地址是用二进制表示的, 如果页面大小 刚好是 2 的整数幂,则计 算机硬件可以很快速的把逻辑地址拆分 成(页号,页内偏移量)

举例1:
操作系统——存储器管理的功能_第38张图片
举例2:
操作系统——存储器管理的功能_第39张图片

(5). 逻辑地址的结构

操作系统——存储器管理的功能_第40张图片

(6). 页表

操作系统——存储器管理的功能_第41张图片

(7). 为什么每个页表项的长度是相同的,页号是隐含的

操作系统——存储器管理的功能_第42张图片

(8). 基本地址变换机构

基本地址变换机构简单来说:就是用于实现逻辑地址到物理地址转换的一组硬件机构

操作系统——存储器管理的功能_第43张图片

操作系统——存储器管理的功能_第44张图片

操作系统——存储器管理的功能_第45张图片
操作系统——存储器管理的功能_第46张图片
操作系统——存储器管理的功能_第47张图片
举例
操作系统——存储器管理的功能_第48张图片
对页表项大小进一步探讨
操作系统——存储器管理的功能_第49张图片
操作系统——存储器管理的功能_第50张图片
解决办法
操作系统——存储器管理的功能_第51张图片
注:一个进程的页表太大(页表项太多的话),那么这个进程的页表一般装到内存里面也是尽可能的然他们装在连续的内存空间里面,这样的话我们可以使用统一的计算方式,就可以得到我们想要得到的页表项存储的位置

(9). 具有快表的地址变换机构

操作系统——存储器管理的功能_第52张图片

1. 局部性原理

操作系统——存储器管理的功能_第53张图片

2. 什么是快表(TLB)

快表就是计算机组成原理里面的cache

操作系统——存储器管理的功能_第54张图片

3. 引入快表之后,地址的变换过程

操作系统——存储器管理的功能_第55张图片
查询完第一个指令(0,0)之后,查询第二个指令(0.4)的时候,发现快表已近命中,则可以通过快表内存块号和内存偏移量得到物理地址
操作系统——存储器管理的功能_第56张图片
其中快表当中存放的是页表的一部分副本
操作系统——存储器管理的功能_第57张图片
举例:
操作系统——存储器管理的功能_第58张图片
总结:
操作系统——存储器管理的功能_第59张图片

(10). 两级页表

操作系统——存储器管理的功能_第60张图片

1. 单级页表存在什么问题?如何解决?

问题一:
操作系统——存储器管理的功能_第61张图片
问题二:
在这里插入图片描述
如何解决呢?
操作系统——存储器管理的功能_第62张图片
操作系统——存储器管理的功能_第63张图片

2. 两级页表的原理、逻辑地址结构

操作系统——存储器管理的功能_第64张图片
操作系统——存储器管理的功能_第65张图片

3. 如何实现地址变换?

操作系统——存储器管理的功能_第66张图片

4. 两级页表问题需要注意的几个细节

操作系统——存储器管理的功能_第67张图片

5. 总结

操作系统——存储器管理的功能_第68张图片

2. 基本分段存储管理

主要是为了满足用户(程序员)在编程和使用上多方面的要求,把用户程序的地址空间分为若干个大小不同的段,每段可定义一组相对完整的信息。在存储器分配时,以段为单位,这些段在内存中可以不相连接,所以也实现了离散分配

分段存储管理系统引入的目的:
一方面:由于程序都可分为若干个段,如主程序、子程序段A、子程序段B、数据段、栈段,每个段都是一个独立的逻辑单位
另一方面:实现和满足信息共享、信息保护、动态链接、信息的动态增长等需要,都是以段为基本单位

操作系统——存储器管理的功能_第69张图片
操作系统——存储器管理的功能_第70张图片

(1). 什么是分段

操作系统——存储器管理的功能_第71张图片
操作系统——存储器管理的功能_第72张图片

(2). 什么是段表

操作系统——存储器管理的功能_第73张图片

(3). 如何实现地址变换

操作系统——存储器管理的功能_第74张图片
操作系统——存储器管理的功能_第75张图片
操作系统——存储器管理的功能_第76张图片

(4). 分段、分页管理的对比

操作系统——存储器管理的功能_第77张图片
操作系统——存储器管理的功能_第78张图片
操作系统——存储器管理的功能_第79张图片
操作系统——存储器管理的功能_第80张图片

3. 段页式存储管理

是分页和分段两种存储管理方式相结合的产物,它同时具有两者的优点,是现在应用比较广泛的一种存储方式

操作系统——存储器管理的功能_第81张图片
操作系统——存储器管理的功能_第82张图片

(1). 分页、分段管理方式中最大的优缺点

操作系统——存储器管理的功能_第83张图片
操作系统——存储器管理的功能_第84张图片

(2). 分段+分页的结合—段页式管理方式

操作系统——存储器管理的功能_第85张图片

(3). 段页式管理的逻辑地址结构

操作系统——存储器管理的功能_第86张图片

(4). 段表、页表

操作系统——存储器管理的功能_第87张图片

(5). 如何实现地址变换

操作系统——存储器管理的功能_第88张图片

三. 内存空间的扩充

操作系统——存储器管理的功能_第89张图片
操作系统——存储器管理的功能_第90张图片
操作系统——存储器管理的功能_第91张图片

1. 覆盖技术

操作系统——存储器管理的功能_第92张图片
举例:
操作系统——存储器管理的功能_第93张图片

2. 交换技术(对换技术)

原理:当时的计算机内存特别小,系统把所有的用户作业存放在磁盘上,每次只能调入一个作业进入内存,当该作业的一个时间片用完时,将它调至外存的后备队列上等待,再从后备队列上将另一个作业调入内存

操作系统——存储器管理的功能_第94张图片
操作系统——存储器管理的功能_第95张图片
操作系统——存储器管理的功能_第96张图片

(1). 对换的类型

  • 类型一:整体对换

      又称为处理机的中级调度或者是进程对换
      因为是以进程为单位进行对换的
    
  • 类型二:部分对换

      又叫页面(分段)对换:以进程的一个页面/分段为单位
      主要用于虚拟存储器系统中的请求分页和请求分段式存储器管理
    

(2). 为实现进程对换,系统需实现的功能

  1. 对换空间的管理(包括文件区和对换区)
    操作系统——存储器管理的功能_第97张图片
  2. 对换区空闲盘块管理中的数据结构
  3. 对换空间的分配和回收
  4. 进程的换入换出

3. 虚拟存储技术

虚拟存储器作为现代操作系统中存储器管理的一项重要技术,实现了内存扩充的功能。
这个功能并不是从物理上实际的扩大内存容量,而是在逻辑上实现对内存容量的扩充
用户感觉内容容量比实际内存容量大得多,也可让比内存空间更大的程序运行

①虚拟内存的基本概念

操作系统——存储器管理的功能_第98张图片

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

操作系统——存储器管理的功能_第99张图片

(2). 局部性原理

操作系统——存储器管理的功能_第100张图片

(3). 虚拟内存的定义和特征

当用户看到自己的程序能在系统中正常运行时,他会认为,该系统所具有的内存容量一定比自己的程序大
所谓虚拟存储器:指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统
其逻辑容量由内存容量和外存容量之和一起决定的,其运行的速度接近内存,每位价格接近外存

操作系统——存储器管理的功能_第101张图片

操作系统——存储器管理的功能_第102张图片

(4). 如何实现虚拟内存技术

操作系统——存储器管理的功能_第103张图片

②请求分页存储管理方式

操作系统——存储器管理的功能_第104张图片
操作系统——存储器管理的功能_第105张图片

1. 知识总览

操作系统——存储器管理的功能_第106张图片

2. 页表机制

操作系统——存储器管理的功能_第107张图片

3. 缺页中断机构

操作系统——存储器管理的功能_第108张图片

情况一:内存中有空闲块

操作系统——存储器管理的功能_第109张图片

情况二:内存中没有空闲块

操作系统——存储器管理的功能_第110张图片
操作系统——存储器管理的功能_第111张图片
操作系统——存储器管理的功能_第112张图片
操作系统——存储器管理的功能_第113张图片

4. 地址变换机构

操作系统——存储器管理的功能_第114张图片
操作系统——存储器管理的功能_第115张图片

5. 页面置换算法

操作系统——存储器管理的功能_第116张图片

(1). 最佳置换算法(OPT)

操作系统——存储器管理的功能_第117张图片
操作系统——存储器管理的功能_第118张图片
操作系统——存储器管理的功能_第119张图片
操作系统——存储器管理的功能_第120张图片

(2). 先进先出置换算法(FIFO)

操作系统——存储器管理的功能_第121张图片
操作系统——存储器管理的功能_第122张图片
操作系统——存储器管理的功能_第123张图片
操作系统——存储器管理的功能_第124张图片

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

操作系统——存储器管理的功能_第125张图片
操作系统——存储器管理的功能_第126张图片
注:该算法的实现需要专门的硬件支持,虽然算法性能,但是实现困难,开销大

(4). 时钟置换算法(CLOCK)

操作系统——存储器管理的功能_第127张图片
操作系统——存储器管理的功能_第128张图片
操作系统——存储器管理的功能_第129张图片

(5). 改进型的时钟置换算法

操作系统——存储器管理的功能_第130张图片
情况一:
操作系统——存储器管理的功能_第131张图片

情况二:
操作系统——存储器管理的功能_第132张图片
情况三:
操作系统——存储器管理的功能_第133张图片
情况四:
操作系统——存储器管理的功能_第134张图片
操作系统——存储器管理的功能_第135张图片

(6). 以上算法总结

操作系统——存储器管理的功能_第136张图片

6. 页面分配策略

在为进程分配内存的时候,涉及三个问题:

  1. 为保证进程正常运行,所需的最小物理块数的确定
  2. 在为每个进程分配物理块时,应该采取什么样的分配策略,即所分配的物理块是固定的还是可变的
  3. 为不同进程所分配的物理块数,是采取平均分配算法还是根据进程的大小按比例分配

操作系统——存储器管理的功能_第137张图片
操作系统——存储器管理的功能_第138张图片

(1). 驻留集

操作系统——存储器管理的功能_第139张图片

(2). 页面分配、置换策略

操作系统——存储器管理的功能_第140张图片

综上存在3种页面分配、置换策略

1. 固定分配局部置换

在这里插入图片描述

2. 可变分配全局置换

操作系统——存储器管理的功能_第141张图片

3. 可变分配局部置换

在这里插入图片描述

4. 三种置换策略的比较

在这里插入图片描述

(3).调入页面的时机

操作系统——存储器管理的功能_第142张图片

(4). 从何处调页

操作系统——存储器管理的功能_第143张图片
操作系统——存储器管理的功能_第144张图片
操作系统——存储器管理的功能_第145张图片

(5). 抖动(颠簸)现象

操作系统——存储器管理的功能_第146张图片
抖动预防的方法

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

操作系统——存储器管理的功能_第147张图片

③请求分段存储管理方式

④请求段页式存储管理方式

四. 地址转换

五. 存储保护

你可能感兴趣的:(操作系统,操作系统)