页式存储管理
计算机存储的层次结构:寄存器,高速缓存cache,主存储器DRAM,DDRAM,外部存储器
分区是进程的连续存储;以下是分散存储
原理:物理内存划分许多固定大小的块,称物理页面,页框,逻辑地址空间划分大小相同的块,称逻辑页面,页面;二者大小相同,两种块之间实现映射,物理页面可以不连续;
管理:逻辑空间统一编址,分页,标记页号(0开始);内存空间统一编址,分页,标记页号(0开始);分页大小一般为2的k次方
逻辑地址表示:页号+页内地址
对应关系:
页号=逻辑地址/页面大小
页内地址=逻辑地址%页面大小
实际采用二进制截取,页面大小2的k次方
逻辑地址二进制表示低k位为页内地址
剩余高位为页号
地址转换:
页表记录映射关系:位于系统空间页表区存放逻辑页号与物理页号的对应关系,PCB中有指向页表的指针,物理页号与逻辑页的页内地址组成物理地址
硬件动态地址转换机构将逻辑地址映射为物理地址
读页表额外的访问内存,影响效率,
快表:联想存储器,类似高速缓存,保存最近一段时间常用的页表项
页式存储可以实现代码共享;几个逻辑块指向同一物理内存块;
优点:没有外部碎片,进程最后一个页面可能有内部碎片;可以不连续存放,标语管理
缺点:进程全装入内存才可以运行,每个进程都有页表,需要维护,有开销;
段式存储管理:
页式中逻辑地址连续,实际程序结构并不如此,由几个片段组成
逻辑空间中:依逻辑单元分段,每个段内部,是一维线性连续地址空间
段大小不等,内容不同,如代码段,数据段,堆,栈等
物理内存中,采用可变分区存储管理(相当于其扩展),依段的大小分配空间;所得物理内存分区可以不连续
逻辑地址表示:段号,段内偏移地址;
管理:段表(每个进程都有),逻辑段有段号,段表中记录了段号,对应的物理内存段基地址和段长等信息;保存于内存,操作系统管理;普通用户进程不可访问,故硬件上增加段表基址寄存器,段表长度寄存器(即段的个数),便于访问;
映射时,与页表不同,段号对应的段基地址+段内偏移即可
优点:没有内部碎片,段间分别管理,便于改变
缺点:进程全装入内存才可以运行,会存在外部碎片
也有快表
集合二者优点
段页式管理
页式管理优势,段式逻辑优势
原理:先程序分段,段中分页;
逻辑地址分为段号,段内偏移,段内偏移分成逻辑页面号,页内偏移
物理内存,按照页式存储管理方案;页面为单位分配
管理:
段表:段号,每个段的页表起始地址,页表长度
页表:页号,内存块号
每个段都有一个自己的页表
从内存取数据或指令,需要访问三次