当前位置:
文档之家› 操作系统原理 第4章 存储管理-段式存储管理
操作系统原理 第4章 存储管理-段式存储管理
举例:一作业由三个程序段,按照段页式划分地 址空间如下图
段页式作业地址空间和地址结构示意图
页面大小为4KB
0 4K 8K 1 2K 1 5K 1 6K
主程 序段
0 4K 8K
子程 序段
0 4K 8K 1 0K 1 2K
数据 段
(a ) 段 号 (S) 段 内 页 号 (P) (b )
改为:页内地址
4.4.3 信息共享
论点:分段技术中信息共享比分页技术中的信息共享更 方便有效。
信息共享举例:
有一多用户系统,可同时接纳40个用户,他们都执行一 个文本编辑程序(Text Editor)。假设文本编辑程序有 160KB的指令代码和另外40KB的数据区。
假设文本编辑程序代码是可重入的,试以分页和分段存 储管理方式探讨文本编辑程序的共享问题。假设分页系 统页的大小为4K。具体见下图。
授课内容与重难点
基本分段存储管理方式:理解相关概念,掌握实现 原理(重)和地址变换过程(难); 段页式存储管理方式:理解基本概念,掌握实现原 理(重)和地址变换过程(难); 虚拟存储器的基本概念:理解虚拟存储器的基本概
念与实现思想(重点);
4.4 基本分段存储管理方式
固定分区
知识回忆
动态分区
③ 然后,由块号与页内地址(偏移)构成实际的物理 地址; ④ 最后根据物理地址获取实际信息数据。
注意:在段页式存储系统中,获取一条指令或数据需要 访问三次内存:段表、页表和实际数据。
段页式系统中的地址变换机构与过程示意图
段表寄存器 段表始址 + 段表 0 1 2
第一次访问内存
S≥TL
> 段超长
逻辑地址(注意:是二维的, 后两个构成段内偏移量)
分页存储管理 提高内存利用率
4.4.1 分段存储管理方式的引入 分段存储 管 理引入原 因
方便 编程 分段 共享
满足用户(程序员) 在编程和使用上多 方面的需要
动态 链接 分段 保护 动态 增长
4.4.2 分段系统的基本原理
1 基本分段存储管理的基本思想:
作业地址空间按逻辑分段,物理内存空间按段的实 际大小分配,所有逻辑段运行前需要全部装入
4.4.4 段页式存储管理方式
段页式存储管理方式是将分段存储管理方式与分 页存储管理方式相结合而形成的一种存储管理方 式; 段页式存储管理方式具有分段和分页方式的共同 优点;
1. 基本原理:先将用户程序分成若干段,每个段有 其段名/号;然后再将每个段分成若干页,段内 各页顺序编号(从0开始相对编号);
1 2 3
20K 15K 10K
段表示意图
80K 120K 150K
段表的存储和隶属关系:
存储:段表一般存放在内存中,由段表始址和
段表长度唯一确定;
归属:每个进程拥有一个段表;并在进程 PCB 记录段表的始址和段表长度;
目的:实现段的地址映射。
0
作业空间 (MAIN)=0 段表
内存空间
0
3 0K 0 2 0K 0 1 5K 0
段 内 地 址 (W)
2. 段页式存储管理系统地址变换过程
段页式地址变换机构:每一进程拥有段表(置于
内存);各段拥有自己的一个段内页表(置于内 存);段表寄存器;物理地址寄存器等;
段表与段内页表的组成:段表由段表项组成、段
内页表由页表项组成,所含字段如下图所示;
从段表、页表实现地址映射的结构示意图
8292
not
W<500
8k+100
+
8292 物理地址
8k 8691
段表
主存
段式系统地址变换过程示意图
段地址变换过程描述
① 从段逻辑地址寄存器中取得段号S和段内位移量W;
② 将 S 与段表寄存器中的段表长度 TL 比较,若S≥TL, 越界异常处理; ③ 否则,根据段表始址和段号在段表中查找段号为S的 表项,得到该段的内存空间首地址;
4.5.2 虚拟存储器的实现方法
1. 请求分页系统 实现方法是在分页系统的基础上,增加了请求调页功 能和页面置换功能所形成的页式虚拟存储系统。 1)需要硬件支持: ① 请求分页的页表机制:用于请求分页的数据结构;
② 缺页中断机构:产生缺页中断,以请求OS将所缺的页调 入内存;
③ 地址变换机构:实现逻辑地址到物理地址的变换(类似
0 15K-1 0 7K-1 0 8K-1
主程序段 0 子程序段 1 数据段 2 作业地址空间
一个作业被划分为分若干个段; 一个段拥有一个段名或段号; 一个段标识一个完整的信息单位 段号从0开始,依次编号到n; 每一段段内从0开始连续编址; 作业的地址空间为二维的; LOAD 1,[A]|<D> STORE 1,[B]|<C>
2. 虚拟性 :从逻辑上扩充内存。
小结
分段系统的逻辑特征与物理实现; 分段系统的优点和缺点; 段页式系统的基本实现原理及优缺点; 虚拟存储系统的基本概念与实现原理;
④ 把段首地址与段内位移相加,形成内存地址送入物 理地址寄存器中,并以此地址访问内存取出指令或 数据。
地址变换特点: 同页式地址变换一样,在段地址变换过程
中,也有两次访问内存的问题。为了加快访
问内存的速度,也可采用联想存储器组成快 表。
4 分页和分段的比较
相同点:离散分配方式; 不同点如下:
① 段是依据程序的逻辑结构划分的,页是按线性地址空 间顺序分割的; ② 分段中程序地址空间是二维的,分页中程序地址空间 是一维的; ③ 段是面向用户的(用户决定),页对用户是透明的; ④ 段长由用户决定,且各段的大小一般不相等(最大长 度限制);面页长是由系统决定的,各页的长度必须 相等; ⑤ 段的共享比页的共享更容易;
段表寄存器段表大小 段来自始址页号 状态 0 1 1 1 页表始址 2 3 4 1 0 1 存储块#
操作系统
段号 状态 0 1 2 3 4 1 1 1 0 1
页表大小
段表
页表
主存
段页式系统地址变换过程
具体变换过程(如下图所示):
① 从逻辑地址中取得段号S,并与段表寄存器中的段表 长度TL比较,若S>=TL,越界处理;否则,由段表寄存 器中的段表始址访问段表,并找到本段的段表项; ② 由段表项指定的本段页表起始地址访问本段的页表, 并根据逻辑地址的页号找到本页所在的存储块;
3 地址变换
地址变换机构:段地址变换机构由段表、段表寄存
器、物理地址寄存器等硬件设施以及相关软件
组成; 段表寄存器:存放段表始址和段表长度; 地址变换过程如下图所示:
段表寄存器
段表始址 段表长度TL
越界中断 段号S
位移量W 100 逻辑地址
≤
2
+
段号 段长 始址 0 1k 6k 1 600 4k 2 500 3 200 8k 9200
分段地址结构: 段号
31
段内地址
16 15 0
内存分配思想: 以段为单位,为每个段分配一片连续的内存空间依次存 放段的全部信息; 每个段分配的内存空间由其起始地址和段长度确定; 段之间为离散分配,即各段之间地址可以不连续;
分段存储分配的算法与特点:
动态分区分配:采用空闲分区表或链表管理可
用内存空间;分配策略可采用首次适应、循环
首次适应或最佳适应算法。
段内连续,段间离散:分段式管理以段为单位 为一个段分配一片连续存储空间;各段之间的 内存分配可以是连续的,即段间离散。 缺点:同样不可避免碎片问题。
2 段表:为了实现段的逻辑地址到物理地址的转换,必须 为每个进程建立一个段表,用于记录各段的内存 分配信息。 段号 段长 基址 0 30K 40K
2.
局部性原理:
早在 1968 年, Denning.P 就曾指出:程序在执行时将 呈现局部性原理,即在一较短时间内,程序的执行仅局限 于某个部分;相应地,它所访问的存储空间也局限于某个 区域。 关于局限性的论证参考书上说明,请自学。
3. 虚拟存储器定义
虚拟存储器:是指以软件的方法从逻辑上(非物理)
上扩充内存的容量。
实现思想:根据局部性原理,作业在运行前,没有必 要将其程序(数据)调入内存,而是把当前要执行的部
分(或页或段)调入内存便开始执行;在执行过程中, 陆续将要执行但又不在内存的部分程序(数据)调入 内存;若内存不够时,也可陆续将暂时不运行的程序 调出内存,以腾出内存空间。
功能要求:实现虚拟存储器的核心是存储管理系统必 须具备调入和换出功能。
段号S 页号P 页内地址
段表长度
页表 0 1 2 + 3 b 块号 b 块内地址
第二次访问内存
3
页表长度
页表始址
第三次访问内存
4.5 虚拟存储器的基本概念
4.5.1
1. ① 一次性:作业在运行前必须一次性将程序、数据 装入内存(包括运行期间不执行的部分)才能运 行; ② 驻留性:作业装入内存后,便一直驻留于内存, 直到作业运行结束 。 缺点:作业在运行过程中,不运行或暂时不运行 的程序(数据)将一直呆在内存中。
② 缺段中断机构:产生缺段中断,以请求OS将所缺段调入 内存;
③ 地址变换机构:实现段逻辑地址到物理地址的变换 2)实现请求分段的软件:在硬件的支持下,还需实现请求 调段功能的软件和实现分段置换功能的软件。
4.5.3
虚拟存储器的特征
1. 多次性:一个作业被多次调入;
2. 对换性:作业在运行期间可换进、换出;
分页系统)
2)实现请求分页的软件:在硬件的支持下,还需实现请求 调页功能的软件和实现页面置换功能的软件。
4.5.2 虚拟存储器的实现方法
2. 请求分段系统 请求分段系统是在分段系统的基础上,增加了请求调 段和分段置换功能所形成的段式虚拟存储系统。 1)需要硬件支持: ① 请求分段的段表机制:用于请求分段的段表数据结构;