分页存储管理
分页存储管理

非连续分配方式1.基本内容:页式存储管理基本思想、数据结构、地址转换过程。
段式存储管理以及段页式存储管理。
2.学习要求:;掌握页式存储管理、段式存储管理以及段页式存储管理的实现原理、数据结构、地址转换机构等内容。
3.教学要求:本单元共安排4学时。
采用教员课堂讲授方法实施教学。
该部分内容抽象,是本章学习重点与难点。
课后可通过课程设计使学员加深对于抽象理论的理解和掌握。
4.重点:各种管理实现原理、数据结构、地址转换机构。
5.难点:段式存储管理。
分页存储管理可重定位分区分配虽然可以解决碎片和共享问题,但由于信息的大量移动而损失了许多宝贵的CPU时间,且存储用户的作业受到实际存储容量的限制。
多重分区分配虽在一定程度上解决了这些问题,但由于要求各分区设置分段的重定位寄存器,存储分配策略较复杂,且需较多的硬件支持。
分页式管理技术通过地址转换机制,能明显消除内、外存之间的差别,将外存看作内存的扩充和延伸。
并能很好解决“外零头”的问题。
一、分页在储管理实现的基本思想:在分页存储管理中,将每个作业的逻辑地址空间分为大小相同的块,称为虚页面或页(page),通常页面大小为2的整数次幂(512K~4K)。
同样地,将物理空间也划分为与页面大小相等的块,称之为存储块或页框(page frame),为作业分配存储空间时,总是以页框为单位。
例如:一个作业的地址空间有M页,那么只要分配给它M个页框,每一页分别装入一个页框即可。
纯分页系统的定义:指在调度一个作业时,必须把它的所有页一次装入到主存的矾框。
若当时页框数不足,则该作业必须等待,系统再调度其他作业。
这里,并不要求这些页框是相邻的。
即连续逻辑地址空间的页面,通过页面地址转换机构可以映射到不连续的内存块中。
对地址空间的分页是由系统自动进行的,其逻辑地址由相对页号和页内位移量(页内地址)两部分组成(下面a)。
图中设逻辑地址长度为16位,可表示64K的逻辑地址空间。
物理地址也由块号及块内移量(块内地址)两部分组成(下图b)。
第16讲 存储器管理之请求分页存储管理方式

第十六讲存储器管理之请求分页存储管理方式1 基本概述请求分页管理是建立在基本分页基础上的,为了能支持虚拟存储器而增加了请求调页功能和页面置换功能。
基本原理:地址空间的划分同页式;装入页时,可装入作业的一部分(运行所需)页即可运行。
2 请求分页的硬件支持为实现请求分页,需要一定的硬件支持,包括:页表机制、缺页中断机构、地址变换机构。
2.1 页表机制作用:将用户地址空间的逻辑地址转换为内存空间的物理地址。
因为请求分页的特殊性,即程序的一部分调入内存,一部分仍在外存,因此页表结构有所不同。
如图:说明:(1)状态位P:指示该页是否已调入内存。
(2)访问字段A:记录本页在一段时间内被访问的次数或最近未被访问的时间。
(3)修改位M:表示该页在调入内存后是否被修改过。
若修改过,则换出时需重写至外存。
(4)外存地址:指出该页在外存上的地址。
2.2 缺页中断机构在请求分页系统中,每当所要访问的页面不在内存时,便产生缺页中断,请求OS将所缺的页调入内存。
缺页中断与一般中断的区别:(1)在指令执行期间产生和处理中断信号(2)一条指令在执行期间,可能产生多次缺页中断2.3 地址变换机构请求分页系统的地址变换机构。
是在分页系统地址变换机构的基础上,又增加了一些功能。
例:某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。
假定某时刻系统为用户的第0、1、2、3页分别分配的物理块号为5、10、4、7,试将虚拟地址0A5C和093C 变换为物理地址。
解:虚拟地址为:页号(2^5=32)5位页内位移(1K =2^10=1024)10位物理地址为物理块号(2^4=16)4位因为页内是10 位,块内位移(1K =2^10=1024)10位虚拟地址OA5C对应的二进制为:00010 1001011100即虚拟地址OA5C的页号为2,页内位移为1001011100,由题意知对应的物理地址为:0100 1001011100即125C同理求093C。
分页存储管理

5(内存块号)
100(页内地址)
内存地址寄存器
图 页式地址变换过程
写出下图中逻辑地址2500所对应的物理地址
5k 第5页
6k
第6页
作业1的地址空间
5 7 9 15 13 10 16
页表
作业图1的地址页空式间 管理的示页表意图
0
5k
6k
7k
8k
9k
10k
11k
12k
13k
14k
15k
16k
...
17k
31k
主存空间
▪ 例:作业地址空间共有7个页, 每 页 的 相 对 地 址 为 0~1023 , 1024~2047 , 2048~3071 , … , 6144~6150 。 其 对 应 的 主 存 块 在 页表中已列出。分别为5,7,9, 15,13,10,16共7块。假定页 表在主存始址为500。若该程序 从第0页开始运行,且现程序计 数器内容为:
4.3.2地址变换(映射)机构
1 .基本的地址变换机构 地址变换机构的基本任务是利用页表把用户程序中的逻辑地 址变换成内存中的物理地址,实际上就要将用户程序中的页 号变换成内存中的物理块号。为了实现地址变换功能,在系 统中设置页表寄存器,用来存放页表的始址和页表的长度。 在进程未执行时,每个进程对应的页表的始址和长度存放在 进程的PCB中,当该进程被调度时,就将它们装入页表寄存 器。在进行地址变换时,系统将页号与页表长度进行比较, 如果页号大于页表寄存器中的页表长度,则访问越界,产生 越界中断。如未出现越界,则根据页表寄存器中的页表始址 和页号计算出该页在页表项中的位置,得到该页的物理块号, 将此物理块号装入物理地址寄存器中。与此同时,将有效地 址(逻辑地址)寄存器中页内地址直接装入物理地址寄存器 的块内地址字段中,这样便完成了从逻辑地址到物理地址的 变换。
分页式存储管理

”缺小页表”中断信号
SUN微系统公司的计算机采用的 三级分页结构。
• 为了避免进程切换时重新装入页表,硬件 可以支持多达4096个上下文,每个进程一 个;当一个新进程装入主存时,操作系统 分给一个上下文号,进程保持这个上下 文号直到终止。
物理地址形成
• 当CPU访问内存时,上下文号和逻辑地址一起送 入称作MMU(memory management unit)的地址转换 机构(现代计算机中的MMU完成逻辑地址到物理 地址的转换功能,通常它是由一个或一组芯片 组成,接受虚拟地址作为输入,物理地址作为 输出,直接送到总线上),
• 具体做法是:把整个页表进行分页,分成一张张小 页表,每个小页表的大小与页框相同,例如每个 小页表形成的页面可以有1K(210)个页表表目。我 们可对小页表顺序编号,允许小页表分散存放在 不连续的页框中,为了进行索引查找,应该为这些 小页表建一张页目录表,其表项指出小页表所在 页框号及相关信息。
•
页内地址
4.3.2 相联存储器和快表
• 相联存储器 • 快表的格式 • 采用相联存储器后地址转换
采用相联存储器的方法后,地 址转换时间大大下降
假定访问主存的时间为100毫微秒,访问相联存 储器的时间为20毫微秒,相联存储器为32个单 元时查快表的命中率可达90%,于是按逻辑地 址进行存取的平均时间为:
• 解决后一个问题的方法如下,对于进程运行涉及 页面的小页表应放在主存,而其它小页表使用时再 行调入。为了实现这一点,需要在页目录表中增加 一个特征位,用来指示对应的小页表是否已调入内 存,地址转换机构根据逻辑地址中的dir,去查页目 录表对应表项,如未调入内存,应产生一个”缺小 页表”中断信号,请求操作系统将这张小页表调 入主存。
分页存储器管理

实验7 分页存储器管理实验性质:验证+设计建议学时:2学时一、实验目的● 学习i386处理器的二级页表硬件机制,理解分页存储器管理原理。
● 查看EOS应用程序进程和系统进程的二级页表映射信息,理解页目录和页表的管理方式。
● 编程修改页目录和页表的映射关系,理解分页地址变换原理。
二、预备知识阅读本书第6章。
了解i386处理器的二级页表硬件机制,EOS操作系统的分页存储器管理方式,以及进程地址空间的内存分布。
三、实验内容3.1 准备实验按照下面的步骤准备本次实验:1. 启动OS Lab。
2. 新建一个EOS应用程序项目。
3.2 查看EOS应用程序进程的页目录和页表使用OS Lab打开本实验文件夹中的memory.c和getcr3.asm文件(将文件拖动到OS Lab窗口中释放即可打开)。
仔细阅读这两个文件中的源代码和注释,main函数的流程图可以参见图16-1。
按照下面的步骤查看EOS应用程序进程的页目录和页表:1. 使用memory.c文件中的源代码替换之前创建的EOS应用程序项目中EOSApp.c文件中的源代码。
2. 右键点击“项目管理器”窗口中的“源文件”文件夹节点,在弹出的快捷菜单中选择“添加”中的“添加新文件”。
3. 在弹出的“添加新文件”对话框中选择“asm 源文件”模板。
4. 在“名称”中输入文件名称“func”。
5. 点击“添加”按钮添加并自动打开文件func.asm。
6. 将getcr3.asm文件中的源代码复制到func.asm文件中。
7. 按F7生成修改后的EOS应用程序项目。
8. 按F5启动调试。
9. 应用程序执行的过程中,会将该进程的二级页表映射信息输出到虚拟机窗口和OS Lab“输出”窗口中,输出内容如图16-2(a)。
10. 将“输出”窗口中的内容复制到一个文本文件中。
图16-2:(a)EOS应用程序进程的二级页表映射信息(b)有应用程序进程时,系统进程的二级页表映射信息图16-2(a)中第一行是CR3寄存器的值,也就是页目录所在的页框号。
实验六请求分页存储管理

实验六:请求分页存储管理一.实验目的深入理解请求页式存储管理的基本概念和实现方法,重点认识其中的地址变换、缺页中断、置换算法等实现思想。
二.实验属性该实验为综合性、设计性实验。
三.实验仪器设备及器材普通PC386以上微机四.实验要求本实验要求2学时完成。
本实验要求完成如下任务:(1)建立相关的数据结构:页表、页表寄存器、存储块表等;(2)指定分配给进程的内存物理块数,设定进程的页面访问顺序;(3)设计页面置换算法,可以选择OPT、FIFO、LRU等,并计算相应的缺页率,以比较它们的优劣;(4)编写地址转换函数,实现通过查找页表完成逻辑地址到物理地址的转换;若发生缺页则选择某种置换算法(OPT、FIFO、LRU等)完成页面的交换;(5)将整个过程可视化显示出来。
实验前应复习实验中所涉及的理论知识和算法,针对实验要求完成基本代码编写并完成预习报告、实验中认真调试所编代码并进行必要的测试、记录并分析实验结果。
实验后认真书写符合规范格式的实验报告(参见附录A),并要求用正规的实验报告纸和封面装订整齐,按时上交。
三、设计过程3.1算法原理分析OPT算法是未来最远出现,当当前内存中没有正要访问的页面时,置换出当前页面中在未来的访问页中最远出现的页面或再也不出现的页面。
FIFO算法是先进先出,当当前内存中没有正要访问的页面时,置换出最先进来的页面。
LRU算法是最近最久未使用,当当前内存中没有正要访问的页面时,置换出在当前页面中最近最久没有使用的页面。
3.2数据定义int length,num_page,count,seed; //length记录访问串的长度,num_page页面数,count记录缺页次数int result[20][30],order[30],a[10]; //result记录结果,order存储访问串,a存储当前页面中的值int pos1,flag1,flag2,flag3; //pos1位置变量,flag1等为标志变量 char result1[30]; //记录缺页数组 void opt() //最佳void fifo() //先进先出bool search(int n) //查找当前内存中是否已存在该页3.3流程图与运行截图图6.1 FIFO ()函数流程图;否是 是否 开始得到执行的指令指令是否在内存中最先存入指令被淘汰下面是否还有指令 结束得出命中率图2.2 OPT算法流程图四、小结本次课程设计目的是通过请求页式管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。
存储管理作业(二):分页分段管理与页面置换

存储管理作业(二)1、已知某系统页面长4KB,页表项4B,采用多级页表映射64位虚地址空间。
若限定最高层页表占1页,问它可以采用几级页表?2、设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048B,内存总共有8个存储块。
试问逻辑地址至少应为多少位?内存空间有多大?3、在一分页存储管理系统中,逻辑地址长度为24位,页面大小为4096B,现有一逻辑地址为2FA6H,且第0、1、2页依次存放在物理块10、12、14中,问相应的物理地址为多少4、有一个页式虚存系统,某进程占用3个内存块,开始时内存为空,执行如下访问页号序列:0,1,2,3,4,1,2,0,5,1,0,1,2,3,2,4,5(1) 采用先进先出(FIFO)置换算法,缺页次数是多少?(2) 采用LRU置换算法,缺页次数是多少?(3) 若用最优(OPT)算法呢?5、(8分)设某计算机的逻辑地址空间和物理地址空间均为64KB,按字节编址。
若某进程最多需要6页(Page)数据存储空间,页的大小为1KB,操作系统采用固定分配局部置换策略为此进程分配4个页框(Page Frame)。
在时刻260前的该进程访问情况如下表所示(访问位即(1)该逻辑地址的对应的页号是多少?(2)若采用先进先出(FIFO)置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。
46题)10ns,处理一次缺页的平均时间为108ns(已含更新TLB和页表的时间),进程的驻留集大小固定为2,采用最近最少使用置换算法(LRU)和局部淘汰策略。
假设①TLB初始为空;②地址转换时先访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新时间);③有效位为0表示页面不在内存,产生缺页中断,缺页中断后,返回到产生缺页中断的指令处重新执行。
设有虚地址访问序列2362H、1565H、25A5H,请问:(1) 依次访问上述三个虚地址,各需多少时间?给出计算过程。
分页与分段存储管理

分页与分段存储管理
4.4 基本分段存储管理方式
4.4.1 分段存储管理方式的引入
分页与分段存储管理
引入分段存储管理方式, 主要是为了满足用户和程序员
1)
2) 信息共享
3) 信息保护
4)
5) 动态链接
分页与分段存储管理
4.4.2 分段系统的基本原理
1. 分段
分页与分段存储管理
0
作业空间 (MAIN)=0 段表
内存空间
0
3 0K 0 2 0K 0 1 5K 0
段号 段长 基址 (X)=1 0 1 2 (S)=3 3 3 0K 2 0K 4 0K 8 0K
(MAIN)=0 3 0K (X)=1 2 0K (D)=2 1 5K (S)=3 1 0K
4 0K
8 0K
(D)=2
1 5K 1 20 K 1 0K 1 50 K
分页与分段存储管理
第四章 存储器管理
4.1 程序的装入和链接
4.2 连续分配方式
4.3 基本分页存储管理方式
4.4 基本分段存储管理方式
上节回顾
1. 四种内存连续分配方式: 单一连续分配:
分页与分段存储管理
固定分区分配:
动态分区分配:FF、CF、BF分配算法 动态重定位分区分配:重定位寄存器 2. 基本分页 页与物理块 地址结构
分页与分段存储管理
4.3 基本分页存储管理方式
分页存储管理,是将一个进程的逻辑地址空间分成若干个大小 相等的片,称为页面或页,并为各页加以编号,从0开始,如 第0页、第1页等。 相应地,也把内存空间分成与页面相同大小的若干个存储块, 称为(物理)块或页框(frame), 也同样为它们加以编号,如0#块、 1 # 块等等。在为进程分配内存时,以块为单位将进程中的若 干个页分别装入到多个可以不相邻接的物理块中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
第 3 部分 分段存储管理方式
为每个分段分配一个连续的分区,而进 程中的各个段可以离散地移入内存不同 的分区中。 动态分 配方式 分段存储管 理系统
系统为整个进程分配一个 为了能从物理内存中找出每个逻辑段所对应的位置,引 连续的内存空间 入段表 段表:实现逻辑段到物理内存区的映射。
第 3 部分 分段存储管理方式
块
(物理)块或页框。
块号
对分号的若干个物理块分配的编号,每个块号在内存都有对 应物理地址。
31
页表的作用:实现从页号到物理块号的 地址结构 地址映射
12 11
0
第 1 部分-分页存储管理方式
31
12 11 0
就是页内地 址
地址结构
如果逻辑地址空间是2^m,页面大 小是2^n(字节),那么逻辑地址的高 m-n位是页号,低n位是页内地址(即位 移量W),最多允许拥有的页面数是 2^m-n(页) 两部分的地址长度为32位,其中0~11 位(计12位)为位移量,12~31位(计
与分页存
√
相似之处
两者都采用离散分配方式, 且都要通过地址映射机构来 实现地址变换。
储管理方
×
式的比较
段的作业地址空间则是二维的。
第 3 部分 分段存储管理方式
每段分配一个连续的分区,进程 中的各个段可以离散地分配到内存 中不同的分区中。
3
每个段从0开始编址,采用一 段连续的地址空间。
2
程序地址空间按其内在逻辑关系划分 成若干个相对独立的段,如主程序段、 子程序段、数据段及堆栈段等。
(1)块大小=64/16=4KB,因为块的大小=页的大小,所以页面大小=4KB,所以总长=4*4=16(KB) (2)在内存中的起始地址=块号*块的大小 页号为0的页面被装入主存的第2块,所以地址为4*2=8K 页号为1的页面被装入主存的第4块,所以地址为4*4=16K 页号为2的页面被装入主存的第1块,所以地址为4*1=4K 页号为3的页面被装入主存的第6块,所以地址为4*6=24K (3)内存地址=块号*起始地址+页内地址(位移量、页内偏移量、页偏移) 所以对应的内存地址是: 需要注意: 4K*2+100=8292 内存地址用到的是块号,而不是页号 4K*4+50=16434 KB和数字之间的转换 4K*1+0=4096 块大小和页面大小、块内地址和页内 4K*3+10=24636 地址的等值关系
解决办法: 引入快表提高 地址变换速度。 #快表存在命中 率的问题#
引入两级和
多级页表减
少内存的占用 率。
分页存储管理的地址变换,利用快表查找内存所需时间
例题回顾
第 2 部分 例题回顾
1.假定主存为64KB,分成16块.某进程有4页:0.1.2.3 分别被分配到2,4,1,6块
(1)该进程总长度为多少? (2)该进程每一页在内存中的起始地址? (3)给出逻辑地址:[0,100],[1,50],[2,0],[3,10] (页号,页内地址)给出其对应的内存地址.
地址变换任
务是借助于 页表完成的
第 1 部分-分页存储管理方式
获取块号
求P在页表中对应的项的地址: =页表起始地址F+Px页表项大小 取出该表项中物理块号b的内容
地址变换
step1
step2
step3
求页号和页内地址,判断是否越界
※注意 块内地址=页内地址 块的大小=页面大小
利用公式: P=(int)(A/L);W=A%L
谢谢
20位)为页号
所以有: 页面大小L=2^12=4KB; 逻辑地址空间最多允许有2^20=1MB页
第 1 部分-分页存储管理方式
地址变换机构 页表寄存器
实现逻辑地
址变换为物 为了实现上的方便,系统中设置了一 个页表寄存器。 理地址 页表大多驻留在内存中,页表寄存
器中存放页表在内存的起始地址和页 表的长度,因为一个进程可以通过它 的 PCB 来时时保存自己的状态,等到 CPU 要处理它的时候才将 PCB (进程 控制块)交给寄存器,所以,系统中 虽然可以运行多个进程,但也只需要 一个页表寄存器就可以了。
分段存储-回顾
定义,与分页比较,基本原理,地址变换等
第 3 部分 分段存储管理方式
分段存储
离散分配的基 本单位是段
可以满足一下的用户需求: 1、方便编程 2、信息共享 3、信息保护
4、动态增长
5、动态链接
利用分段存储实现地址映射
分段存储的地址变换
第 3 部分 分段存储管理方式
不同之处
(1)页是信息的物理单位,分页 是为实现离散分配方式,以消减内 存的外零头,提高内存的利用率; 段则是信息的逻辑单位,它含有一 组其意义相对完整的信息,分段的 目的是为了能更好地满足用户的需 要 (2)页的大小固定且由系统决定, 段的长度不固定。 (3)分页的作业地址空间是一维 的,即单一的线性地址空间;而分
第 1 部分-分页存储管理方式
页页内碎片 页面或页 : 页表
对程序进行分页存储 对内存进行分块存储
将一个进程的逻辑地址空间分成若干个大小相等的片,称为
由于进程的最后一页经常装不满一块,而形成不可利用的碎 片。 系统为了保证进程的正确运行(能在内存中找到每个页面 所对应的物理块),为每个进程建立的页面映像表。 页面大小应选择得适中: 页面若太小会使每个进程占用较多的页面,导致进程的页表 设逻辑地址由总长度为m的二进制数表示,页内地址为 过长,占用大量内存,还会降低页面换进换出的效率。 页号 n位,则页号为m-n位。 若页面较大,则会使页内碎片增大。 并且页面的大小应是2的幂,通常为 512 B~8 KB 把内存空间分成与页面相同大小的若干个存储块,称为
课堂回顾
分页存储管பைடு நூலகம் 分段存储管理
关硕 20152069
分页存储回顾
关键词:定义、图示、相关公式、存在问题、相关拓展
例题回顾
关键词:逻辑地址、页内地址、页面大小、页号
分段存储回顾
关键词:定义、图示、与分页的区别、越界问题
分段存储-回顾
定义&基本原理、图示、公式、存在问题
第 1 部分-分页存储管理方式
第 2 部分 例题回顾
2、设访问快表时间:20ns,访问内存时间:100ns。计算以下几种情况下cpu存取 一个数据的时间
(1)不使用快表 (2)使用快表,命中率分别为0%,20%,50%,80%,90%,98%,100%
(1)不用快表则访问内存两次:t=200ns (2)用快表会有两种情况,命中和没有命中,t命中=120ns,t没有命中=220ns,所以 0% t=220ns 50% t=0.5*120+0.5*220=170ns 80% t=0.8*120+0.2*220=140ns 需要注意: 90% t=0.9*120+0.1*220=130ns 分析(2)时,要考虑命中和没有命中 98% t=0.98*120+0.02*220=122ns 这两个情况的时间,再根据命中率进 100% t=120ns 行运算。
计算物理地址并访问内存
利用公式: E=bxL+W,得到物理地址E
判断越界的方法:
若P>M(页表长度),则产生越界中断
用得到的物理地址E去访问内存。
第 1 部分-分页存储管理方式
效率问题
原因:由于页表是存放在内存中的,这使得CPU在每存取一个数据时,
都要两次访问内存。
占用内存过多
解决办法: 页表离散分配 部分装入
分段地址中的地址结构
在该地址结构中,允许一个作业最长有64K个 段,每个段的最大长度为64KB。
31
16 15
0
第 3 部分 分段存储管理方式
在进行地址变换时,系统将逻辑地址中 的段号 S与段表长度 TL 进行比较。若 S>TL ,
表示段号太大。访问越界,于是产生越
界中断信号;若未越界,则根据段表的 起始地址和该段的段号+段内地址从而到 的要访问的内存物理地址。