内存管理

140 阅读3分钟

操作系统学习笔记总目录+思维导图_BitHachi的博客

基本概念

逻辑地址与物理地址

image.png

程序运行过程

image.png

链接的三种方式

  1. 静态链接

在这里插入图片描述

  1. 装入时动态链接

在这里插入图片描述

  1. 运行时动态链接

在这里插入图片描述

装入时地址转换三种方式

  1. 绝对装入

在这里插入图片描述

  1. 静态重定位

在这里插入图片描述

  1. 动态重定位

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

内存保护

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

存储管理方案

分区管理方案

固定分区

系统预先把内存分为若干个大小固定的分区,各分区大小可以不等,程序运行时寻找可容纳自身的 image.png

可变分区

  1. 思想:系统不预先划分固定分区,而是在装入程序时划分内存分区。

  2. 实现方式:使用两张内存分配表记录内存实现内存分配与回收,

image.png

添加作业时,通过算法选择合适的内存区块,从中截取作业所需大小的内存块
作业结束时,回收内存,如回收内存块有相邻空闲内存块,则合并称为一个大内存块。

  1. 缺点: 会产生内存碎片,可以通过移动技术来移动,合并内存碎片,但会增加系统开销

页式存储管理

基本思想

image.png

整体内存分配组织方式

简单的内存分配表可以用一张“位示图”构成。 利用遗传二进制位(bit)的值来访反应磁盘空间的分配情况。在位示图中,每一个磁盘中物理块用一个二进制位对应,0表示对应的内存块为空闲,1表示已占用
假设内存的可分配区域被分成256块,则可用字长为32位的8个字作为“位示图”。位示图中的每一位与一个内存块对应,每一位的值可以是0或1,0表示对应的内存块为空闲,1表示已占用

image.png

进程内存分配组织方式

  1. 页表
    页表是硬件进行地址转换的依据,指出该程序逻辑地址中页号与所占用的内存块号之间的对应关系,每执行一条指令时按逻辑地址中的页号查页表,得到物理地址。
    进程使用页表记录占用的内存空间,页表的长度由程序拥有的页面数决定,页表所在的内存的起始地址和长度作为现场信息存放在该进程的PCB中
    物理地址 = 内存块号 × 块长(每块大小)+ 页内地址 image.png
  2. 多级页表
    现代计算机内存空间较大,进程占用内存较大,所有表项放在一个页表中或导致单个页表过于庞大
    二级页表由页表和而目录组成,每个进程一个页目录,记录子页表。 image.png
  3. 快表
    为提高存取速度,在地址映射机制中增加一个小容量的由高速缓冲存储器组成的寄存器,存放当前访问最频繁的少数活动页面的页号。
    查找快表与查找内存页并行进行,一旦发现快表中发现与所查页号一致的逻辑页号就停止查找页表,直接利用快表中逻辑页号。 image.png

段式存储管理

基本思想

image.png

进程内存组织形式

image.png

image.png

页式存储与段式存储区别

  1. 维度不同
    页式存储管理是一维的,因为页表大小是固定的,程序员只需给出一个逻辑地址即可通过运算得到页号和页内偏移。
    段式存储管理是二维的,每个段大小不固定,程序员给出段号和段内偏移。 image.png
  2. 目的不同 image.png
  3. 段式存储对进程组件的操作更加灵活,每个程序段对应一个逻辑段,便于实现信息的保护和共享

段页式存储管理

基本思想

image.png

进程内存组织形式

段式存储管理、段页式存储管理_sHuXnHs的博客 image.png

image.png

image.png

交换技术与虚拟内存