操作系统(三):内存管理

1、内存管理概述

  1. 内存空间的扩充
  2. 存储保护:保证各进程在自己的内存空间内运行,不会越界访问
  3. 内存的分配与回收
  4. 地址转换:逻辑地址到物理地址的转换

2、内存空间的扩充

2.1、覆盖技术
  • 将程序分为多个段,常用的段存放在“固定区”,常驻内存,不常用的段存放在“覆盖区”,在需要时调入内存。
  • 缺点:对用户不透明,增加了编程难度
2.2、交换技术
  • 前置知识:磁盘分为文件区和交换区,文件区采用离散分配方式,占比大,读写速度慢;交换区采用连续分配方式,占比小,读写速度快。
  • 内存空间紧张时,系统将内存中某些进程暂时换出内存,存放到交换区中,把外存中某些已具备运行条件的进程换入内存(中级(内存)调度)。被换出内存的进程处于挂起态,有就绪挂起和阻塞挂起
  • 覆盖技术与交换技术的区别:覆盖技术针对一个进程的内存空间的,而交换技术是针对不同进程之间的内存空间的。
2.3、虚拟内存
  • 传统内存的缺点
一次性:作业数据必须一次性全部调入内存
驻留性:整个作业的数据的在作业运行期间都会常驻内存
  • 定义:程序不需要全部装入即可运行,运行时需要动态调入数据,若内存不够,需要换出数据。
  • 特征
多次性:无需在作业运行时一次性将全部数据装入内存,而是运行被分成多次装入内存
对换性:无需在作业运行时一直常驻内存,而是允许在作业运行中,将作业换入、换出
虚拟性:从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于真实的物理内存容量
  • 虚拟内存的实现
请求页面功能:访问的信息不存在内存时,引发缺页中断,由操作系统内核负责将所需信息从外存调入内存;
页面置换功能:内存空间不足时,将内存中暂时用不到的信息换出内存

3、存储保护

  • 定义:保证各进程在自己的内存空间内运行,不会越界访问。
  • 两种实现方式
1、设置上下限寄存器,存储进行自己的最低内存地址和最高内存地址
2、利用重定位寄存器、界地址寄存器进行判断

4、内存的分配与回收

4.1、连续分配管理
4.1.1、三种连续分配管理方式
  • 单一连续分配:只支持单道程序,内存分为系统区和用户区,用户程序放在用户区;可能产生内部碎片
  • 固定分区分配:内存被划分成多个大小固定的分区,每个分区只能装入一道作业;可能产生内部碎片。(每个分区的大小不一定都相同)
  • 动态分区分配:在进程装入内存时,根据进程的大小动态建立分区;可能产生外部碎片,外部碎片可通过“紧凑”技术来解决
4.1.2、四种动态分区分配算法
算法算法思想分区排序方式算法优点算法缺点
首次适应算法从头到尾寻找满足条件的分区按地址递增排序算法开销小
最佳适应算法优先使用更小的分区按分区大小递增排序保留了更多大分区,有利于大作业的分配算法开销大;会产生很多很小的,难以利用的分区
最坏适应算法优先使用更大的分区按分区大小递减排序可以减少产生难以利用的小分区算法开销大;不利于大作业的分配
邻近适应算法首次适应改造而来,每次寻找从上一次寻找结束的位置接着寻找按地址递增排序(循环链表)算法开销小高地址的大分区也会被分配,不利于大作业的分配
4.2、非连续分配管理
4.2.1、基本分页存储管理
  • 页框:内存空间被分为一个个大小相等的分区(4KB),每个分区就是一个“页框”,每个“页框”都有编号,“页框号”从0开始。

  • 页:进程的逻辑地址空间被分为一个个与“页框”大小相等的部分,每个部分称为“页”或"页面",每个“页面”都有编号,“页号”从0开始。

  • 页与页框:操作系统以页框为单位给进程分配内存,进程的页面与内存的页框一一对应
    在这里插入图片描述

  • 逻辑地址到物理地址的转换
    在这里插入图片描述

  • 快表:TLB缓存存放了最近访问过的页表项,拥有快表的地址变换机构在查页表前会先访问TLB,如果有需要的页表项就无需去访问内存,命中快表时可减少访存次数。

  • 单级页表存在的问题

1. 所有页表项必须连续存放,页表过大时需要很大的连续空间
2. 一段时间内只需要一部分页表项,无需让整个页表一直常驻内存
  • 多级页表:将长长的页表再分页,存在一级页表和二级页表等,每增加一级页表,在没有快表机制的情况下,会增加一次访问内存的操作。多级页表中,各个页表的大小 不能超过一个页面的大小。
4.2.2、基本分段存储管理
  • 段:将逻辑地址按照程序的逻辑关系划分为若干个段,每个段都从0开始编址,每个段所占大小可以不一样。程序员在编写程序的时候,会给每个段赋予一个段名,但在内存空间中存储的是段号。每个段占用连续的内存空间,段与段之间可以不相邻。
    在这里插入图片描述
  • 段表:段号与页号一样,也是虚拟的,不占用实际的空间。
    在这里插入图片描述
  • 页与段的对比
    在这里插入图片描述
4.2.3、段页式存储管理

在这里插入图片描述

  • 段页式:分段与分页结合实现,再分段存储的基础上,每个段进行分页管理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

it00zyq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值