连续分配方式:一个进程连续的装进内存一个大小合适的区。
“碎片” “紧凑” 增大开销
如果允许一个进程直接分散装入多个不相邻分区中,则无需“紧凑”
产生存储管理的离散分配方式。
存储管理的离散分配方式
基本分页存储管理
基本分段存储管理
段页式存储管理
第4章 存储器管理
1 程序的装入和链接
2 连续分配存储管理方式
3 分页存储管理方式
4 分段存储管理方式
5 段、页比较与段页式管理
- 基本分页存储管理方式
本部分讨论不具备对换功能的纯分页模式,作业运行需要全部装入内存。
比较连续分配方式
作业逻辑地址空间有M大,就需要向内存申请一个M大的连续区域。
分页的目的是更细粒度的处理空间,减少粗放管理的浪费或开销问题。
离散分配内存:
作业规定大小划分成小份;内存也按同样大小划分成小份
作业的任一小份可分散放入内存任意未使用的小份
分页方式下,内存的使用率高,浪费少。但不是绝对没有碎片(进程的最后一页不总是能占满一个物理块)
1)页面的概念
2)页表的概念
3)地址的处理
4)地址变换机构
5)快表
6)多级页表
1)页面的概念
内存划分成多个小单元,每个单元K大小,称(物理)块。作业也按K单位大小划分成片,称为页面。
① 物理划分块的大小 = 逻辑划分的页的大小
②页面大小要适中。
太大,(最后一页)内碎片增大,类似连续分配的问题。
太小的话,页面碎片总空间虽然小,提高了利用率,但每个进程的页面数量较多,页表过长,反而又增加了空间使用。
2)页表的概念
为了找到被离散分配到内存中的作业,记录每个作业各页映射到哪个物理块,形成的页面映射表,简称页表。
每个作业有自己的页表
页表的作用:
页号到物理块号的地址映射
要找到作业A
关键是找到页表(PCB)
根据页表找物理块
若内存和作业均按1K大小划分块或页,一个4K大的作业可如下图般分配:
3)地址的处理
连续方式下,每条指令用基地址+偏移量即可找到其物理存放的地址。
分页方式下详细的地址处理会如何呢?
地址映射(地址计算)的过程?
若要执行某作业的一条指令,其相对地址是24B (设10B一页,页表如右表),其物理地址到底是多少呢?
1分析其所在的页和偏移得:2号页(页号从0开始) ,偏移4B处是该条指令
2查页表找页面对应的块(2号页保