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

一. 内容总览

在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述

①连续分配管理方式

在这里插入图片描述

1. 单一连续分配方式

在这里插入图片描述

2. 固定分区分配

在这里插入图片描述

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

在这里插入图片描述

3. 动态分区分配

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

(1). 首次适应算法

在这里插入图片描述
在这里插入图片描述

(2). 最佳适应算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3). 最坏适应算法

在这里插入图片描述
在这里插入图片描述

(4). 邻近适应算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(5). 总结

在这里插入图片描述

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

分配方式一
在这里插入图片描述
分配方式二
在这里插入图片描述
回收进程4 情况一
在这里插入图片描述

回收进程3 情况二
在这里插入图片描述
回收进程4 情况三
在这里插入图片描述
回收进程2 情况四
在这里插入图片描述

动态分区分配算法总结

在这里插入图片描述
在这里插入图片描述

4. 连续分配方式的缺点

在这里插入图片描述

②非连续分配管理方式

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

在这里插入图片描述

1. 基本分页存储管理

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

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

在这里插入图片描述

(1). 非连续分配举例

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

举例1:
在这里插入图片描述
举例2:
在这里插入图片描述

(5). 逻辑地址的结构

在这里插入图片描述

(6). 页表

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
举例
在这里插入图片描述
对页表项大小进一步探讨
在这里插入图片描述
在这里插入图片描述
解决办法
在这里插入图片描述
注:一个进程的页表太大(页表项太多的话),那么这个进程的页表一般装到内存里面也是尽可能的然他们装在连续的内存空间里面,这样的话我们可以使用统一的计算方式,就可以得到我们想要得到的页表项存储的位置

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

在这里插入图片描述

1. 局部性原理

在这里插入图片描述

2. 什么是快表(TLB)

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

在这里插入图片描述

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

在这里插入图片描述
查询完第一个指令(0,0)之后,查询第二个指令(0.4)的时候,发现快表已近命中,则可以通过快表内存块号和内存偏移量得到物理地址
在这里插入图片描述
其中快表当中存放的是页表的一部分副本
在这里插入图片描述
举例:
在这里插入图片描述
总结:
在这里插入图片描述

(10). 两级页表

在这里插入图片描述

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

问题一:
在这里插入图片描述
问题二:
在这里插入图片描述
如何解决呢?
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

3. 如何实现地址变换?

在这里插入图片描述

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

在这里插入图片描述

5. 总结

在这里插入图片描述

2. 基本分段存储管理

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

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

在这里插入图片描述
在这里插入图片描述

(1). 什么是分段

在这里插入图片描述
在这里插入图片描述

(2). 什么是段表

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 段页式存储管理

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

(4). 段表、页表

在这里插入图片描述

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

在这里插入图片描述

三. 内存空间的扩充

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1. 覆盖技术

在这里插入图片描述
举例:
在这里插入图片描述

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

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(1). 对换的类型

  • 类型一:整体对换

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

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

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

  1. 对换空间的管理(包括文件区和对换区)
    在这里插入图片描述
  2. 对换区空闲盘块管理中的数据结构
  3. 对换空间的分配和回收
  4. 进程的换入换出

3. 虚拟存储技术

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

①虚拟内存的基本概念

在这里插入图片描述

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

在这里插入图片描述

(2). 局部性原理

在这里插入图片描述

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

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

②请求分页存储管理方式

在这里插入图片描述
在这里插入图片描述

1. 知识总览

在这里插入图片描述

2. 页表机制

在这里插入图片描述

3. 缺页中断机构

在这里插入图片描述

情况一:内存中有空闲块

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 地址变换机构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 页面置换算法

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
注:该算法的实现需要专门的硬件支持,虽然算法性能,但是实现困难,开销大

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
情况一:
在这里插入图片描述

情况二:
在这里插入图片描述
情况三:
在这里插入图片描述
情况四:
在这里插入图片描述
在这里插入图片描述

(6). 以上算法总结

在这里插入图片描述

6. 页面分配策略

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

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

在这里插入图片描述
在这里插入图片描述

(1). 驻留集

在这里插入图片描述

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

在这里插入图片描述

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

1. 固定分配局部置换

在这里插入图片描述

2. 可变分配全局置换

在这里插入图片描述

3. 可变分配局部置换

在这里插入图片描述

4. 三种置换策略的比较

在这里插入图片描述

(3).调入页面的时机

在这里插入图片描述

(4). 从何处调页

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
抖动预防的方法

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

在这里插入图片描述

③请求分段存储管理方式

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

四. 地址转换

五. 存储保护

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值