4.3 分页式存储管理
4.3.1 分页式存储管理的基本原理
1、页框
2、页面
3、逻辑地址形式
4、页表和地址转换页式存储管理的地址转换和存储保护页表始址 页表长度作业名

A
页表始址

xxxxxx
页表长度

3
作业表块号比较页号 页内地址块号 页内地址页表页表控制寄存器绝对地址逻辑地址地址越界
4.3.2 相联存储器和快表
相联存储器
快表的格式
采用相联存储器后地址转换采用相联存储器的方法后,地址转换时间大大下降假定访问主存的时间为 100毫微秒,访问相联存储器的时间为 20毫微秒,相联存储器为 32个单元时查快表的命中率可达 90%,于是按逻辑地址进行存取的平均时间为:
( 100+ 20) × 90%+ (100+100+20)× (1-90%)=
130毫微秒比两次访问主存的时间 100毫微秒 × 2+20= 220
毫微秒下降了四成多 。
4.3.3分页式存储空间的分配和去配
位示图
分配算法
链表方法分页存储管理能实现多个作业共享程序和数据
数据共享
程序共享
共享信息的保护问题
页表中增加一些标志位,用来指出该页的信息可读 /写;只读;只可执行;不可访问等,指令执行时进行核对 。 例如,
要想向只读块写入信息则指令停止执行,
产生中断 。
另外也可采取键保护的方法。
4.3.4 多级页表
多级页表的概念
具体做法
逻辑地址结构有三部分组成:页目录、
页号和位移。
Windows NT为例,
其运行的 x86 CPU具有 32位地址,它使用 232逻辑地址空间的分页系统,规定页面 4KB时,每个进程的页表的表项有
1兆 (220)个,若以每个表项占用 4个字节计算,则每个进程需要占用 4KB连续内存空间存放页表,这样做存储开销太大了
多级页表的概念
内存仅存放当前使用的页表,其余暂时不用部分放在磁盘上,待用到时再行调进 ;同时,页表占用内存空间不必连续可分散存放。
具体做法是,把整个页表进行分页,分成一张张小页表,每个小页表的大小与页框相同,例如每个小页表形成的页面可以有 1K(210)个页表表目。我们可对小页表顺序编号,允许小页表分散存放在不连续的页框中,为了进行索引查找,应该为这些小页表建一张页目录表,其表项指出小页表所在页框号及相关信息。
系统要为每个进程建一张页目录表,它的每个表项对应一个小页表,而小页表的每个表项给出了页面和页框的对应关系,页目录表是一级页表,小页表是二级页表。
逻辑地址结构有三部分组成:页目录、
页号和位移。
页目录表控制寄存器指出当前运行进程的页目录表内存所在地址,由页目录表起址加上 dir作索引,可找到某个小页表在内存页框的地址,
以 page作索引,找到小页表的页表项,而该表项中包含了页面对应的页框号,
页框号和位移 offset便可生成物理地址。
B offset
dir page offset
BF
进程一级页表 进程二级页表物理地址逻辑地址页目录表控制寄存器
上面的方法解决了可分散存放小页表的问题,但并未解决占用内存空间的问题 。
解决后一个问题的方法如下,对于进程运行涉及页面的小页表应放在主存,而其它小页表使用时再行调入 。 为了实现这一点,需要在页目录表中增加一个特征位,用来指示对应的小页表是否已调入内存,地址转换机构根据逻辑地址中的 dir,去查页目录表对应表项,如未调入内存,应产生一个,缺小页表,中断信号,请求操作系统将这张小页表调入主存 。
”缺小页表,中断信号
SUN微系统公司的计算机采用的三级分页结构。
为了避免进程切换时重新装入页表,硬件可以支持多达 4096个上下文,每个进程一个;当一个新进程装入主存时,操作系统分给一个上下文号,进程保持这个上下文号直到终止。
物理地址形成
当 CPU访问内存时,上下文号和逻辑地址一起送入称作 MMU(memory management unit)的地址转换机构 (现代计算机中的 MMU完成逻辑地址到物理地址的转换功能,通常它是由一个或一组芯片组成,接受虚拟地址作为输入,物理地址作为输出,直接送到总线上 ),
使用上下文号作上下文表的索引,以找到进程的顶级页目录,然后,使用逻辑地址中的索引值找下一级表项,直至找到访问页面,形成物理地址。
4.3.5反置页表
反置页表 IPT(Inverted Page Table)
pid page offset
进程标识 特征位 页面号
B offset
B
反置页表物理地址逻辑地址
IPT是为内存中的每一个物理块建立一个页表并按照块号排序,该表的每个表项包含正在访问该页框的进程标识、页号及特征位,用来完成主存页框到访问进程的页号、即物理地址到逻辑地址的转换。
地址转换过程如下,
逻辑地址给出进程标识和页号,用它们去比较 IPT,若整个反置页表中未能找到匹配的页表项,说明该页不在主存,产生请页中断,请求操作系统调入 ;否则,该表项的序号便是页框号,块号加上位移,便形成物理地址 。
4.4 分段式存储管理
4.4.1程序的分段结构分页存储管理 ---一维地址结构分段存储管理 ---二维地址结构子程序段 X 数组段 A

call [X]∣<E>
(调用 X段的入口 E)

call [Y]∣<F>
(调用 Y段的入口 F)

load 1,[A]∣<G>
(调用数组段 A[G])

主程序段

E,┅┅┅┅┅┅


F,┅┅┅┅┅┅

子程序段 Y

G,┅┅┅┅┅┅




工作区段
4.4.2 分段式存储管理的基本原理两维逻辑地址段号:段内地址作业表和段表段式存储管理的地址转换和存储保护段控制寄存器段表始址 段表长度 段号 s 位移 d
段长 基址物理地址越界?
段表
4.4.3段的共享
多对基址 /限长寄存器
4.4.4 分段和分页的比较
分段是信息的逻辑单位,由源程序的逻辑结构所决定,用户可见,段长可根据用户需要来规定,段起始地址可以从任何主存地址开始 。 在分段方式中,源程序 (段号,段内位移 )
经连结装配后仍保持二维结构 。
分页是信息的物理单位,与源程序的逻辑结构无关,用户不可见,页长由系统确定,页面只能以页大小的整倍数地址开始 。 在分页方式中,源程序 (页号,页内位移 )经连结装配后变成了一维结构 。