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