文档介绍:分段式虚拟存储系统
分段式虚拟存储系统把作业的所有分段的副本都存放在辅助存储器中,当作业被调度投入运行时,首先把当前需要的一段或几段装入主存,在执行过程中访问到不在主存的段时再把它们装入。
段式虚拟存储管理的段表扩展
段号
扩充位
主存始址
特征
存取权限
辅存始址
标志
限长
l 特征位: 00(不在内存);01(在内存);11(共享段);
l  存取权限: 00(可执行);01(可读);11(可写);
l  扩充位: 0(固定长);1(可扩充);
l  标志位: 00(未修改);01(已修改);11(不可移动);
S段在内存
否
是
B<S段长度
发越界中断
是
否
形成绝对地址
继续执行指令
移动或调
出分段
S段末端相邻的空
闲区长度满足要求
地址错
S段可扩充
是
装入S段
重新启动指令
调整S段段表及主存分配表
操作系统
硬件
否
符合存取权限
发保护中断
是
否
发缺段中断
非法存取
否
主存中有满足S段
长度的连续空闲区
是
否
是
移动或调
出分段
段式存储是基于用户程序结构的存储管理技术,有利于模块化程序设计,便于段的扩充、动态链接、共享和保护,但往往会生成段内碎片浪费存储空间;
页式存储是基于系统存储器结构的存储管理技术, 存储利用率高,便于系统管理,但不易实现存储共享、保护和动态扩充。
如果把两者优点结合起来, 在分页式存储管理的基础上实现分段式存储管理这就是段页式存储管理,
1、虚地址以程序的逻辑结构划分成段,这是段页式存储管理的段式特征。
2、实地址划分成位置固定、大小相等的页框(块) ,这是段页式存储管理的页式特征
3、将每一段的线性地址空间划分成与页框大小相等的页面,于是形成了段页式存储管理的特征
段号(s) 段内页号(p) 页内位移(d)4、逻辑地址形式为:
对于用户来说,段式虚拟地址应该由段号s和段内位移d’组成,操作系统内部再自动把d’解释成两部分:段内页号p和页内位移d,也就是说,d’=p×块长+d。
段页式存储管理的基本原理。
段号(s) 段内页号(p) 页内位移(d)
数据结构
段页式存储管理的数据结构包括作业表、段表和页表三级结构。
作业表中登记了进入系统中的所有作业及该作业段表的起始地址,
段表中至少包含这个段是否在内存,以及该段页表的起始地址,
页表中包含了该页是否在主存(中断位)、对应主存块号。
动态地址转换
从逻辑地址出发,先以段号s和页号p作索引去查快表,如果找到,那么立即获得页p的页框号p’,并与位移d一起拼装得到访问主存的实地址,从而完成了地址转换。若查快表失败,就要通过段表和页表来作地址转换了,用段号s作索引,找到相应表目,由此得到s段的页表的起始地址s’,再以p作索引得到s段p页对应的表目,由此得到页框号p’;这时一方面把s段p页和页框号p’置换进快表,另一方面用p’和d生成主存的实地址,从而完成地址转换。
段表控制寄存器
段表始址段表长度
段号s 页号p 位移d
段超长?
页框号位移
段表
页表
:Intel Pentium
Intel的Pentium和Pentium Pro既可以作为分段系统,又可以作为分页系统,也可以作为一个段页式存储管理系统来运行