分页式存储管理

合集下载

分页存储管理

分页存储管理

非连续分配方式1.基本内容:页式存储管理基本思想、数据结构、地址转换过程。

段式存储管理以及段页式存储管理。

2.学习要求:;掌握页式存储管理、段式存储管理以及段页式存储管理的实现原理、数据结构、地址转换机构等内容。

3.教学要求:本单元共安排4学时。

采用教员课堂讲授方法实施教学。

该部分内容抽象,是本章学习重点与难点。

课后可通过课程设计使学员加深对于抽象理论的理解和掌握。

4.重点:各种管理实现原理、数据结构、地址转换机构。

5.难点:段式存储管理。

分页存储管理可重定位分区分配虽然可以解决碎片和共享问题,但由于信息的大量移动而损失了许多宝贵的CPU时间,且存储用户的作业受到实际存储容量的限制。

多重分区分配虽在一定程度上解决了这些问题,但由于要求各分区设置分段的重定位寄存器,存储分配策略较复杂,且需较多的硬件支持。

分页式管理技术通过地址转换机制,能明显消除内、外存之间的差别,将外存看作内存的扩充和延伸。

并能很好解决“外零头”的问题。

一、分页在储管理实现的基本思想:在分页存储管理中,将每个作业的逻辑地址空间分为大小相同的块,称为虚页面或页(page),通常页面大小为2的整数次幂(512K~4K)。

同样地,将物理空间也划分为与页面大小相等的块,称之为存储块或页框(page frame),为作业分配存储空间时,总是以页框为单位。

例如:一个作业的地址空间有M页,那么只要分配给它M个页框,每一页分别装入一个页框即可。

纯分页系统的定义:指在调度一个作业时,必须把它的所有页一次装入到主存的矾框。

若当时页框数不足,则该作业必须等待,系统再调度其他作业。

这里,并不要求这些页框是相邻的。

即连续逻辑地址空间的页面,通过页面地址转换机构可以映射到不连续的内存块中。

对地址空间的分页是由系统自动进行的,其逻辑地址由相对页号和页内位移量(页内地址)两部分组成(下面a)。

图中设逻辑地址长度为16位,可表示64K的逻辑地址空间。

物理地址也由块号及块内移量(块内地址)两部分组成(下图b)。

简述分页存储管理基本方法

简述分页存储管理基本方法

简述分页存储管理基本方法分页存储管理是计算机系统中一种用于管理内存空间的技术。

它将内存空间划分成若干个大小相等的块,称为页,然后通过管理这些页来实现内存空间的有效利用。

分页存储管理的基本方法包括:
1.页表法:将所有的页映射到一张表中,表中的每一项
记录了该页所在的位置。

在访问内存时,先根据地址
查找页表,然后获取该页所在的位置,最后再访问该
位置的内存。

2.页式存储法:将内存空间划分为若干个区域,每个区
域包含若干个页。

在访问内存时,先根据地址确定所
在的区域,然后再访问该区域的内存。

3.段页式存储法:将内存空间划分为若干个段,每个段
再划分为若干个页。

在访问内存时,先根据地址确定
所在的段,然后再根据地址确定所在的页,最后访问
内存。

分页存储管理能够有效提高内存的利用率,减少内存碎片的问题,但同时也会增加访问内存的时间开销。

第16讲 存储器管理之请求分页存储管理方式

第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中,当该进程被调度时,就将它们装入页表寄存 器。在进行地址变换时,系统将页号与页表长度进行比较, 如果页号大于页表寄存器中的页表长度,则访问越界,产生 越界中断。如未出现越界,则根据页表寄存器中的页表始址 和页号计算出该页在页表项中的位置,得到该页的物理块号, 将此物理块号装入物理地址寄存器中。与此同时,将有效地 址(逻辑地址)寄存器中页内地址直接装入物理地址寄存器 的块内地址字段中,这样便完成了从逻辑地址到物理地址的 变换。

分页存储器管理

分页存储器管理

实验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算法流程图四、小结本次课程设计目的是通过请求页式管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。

分页和分段有什么区别(内存管理)?

分页和分段有什么区别(内存管理)?

分页和分段有什么区别(内存管理)?
分页和分段有什么区别(内存管理)?
段式存储管理是⼀种符合⽤户视⾓的内存分配管理⽅案。

在段式存储管理中,将程序的地址空间划分为若⼲段(segment),如代码段,数据段,堆栈段;这样每个进程有⼀个⼆维地址空间,相互独⽴,互不⼲扰。

段式管理的优点是:没有内碎⽚(因为段⼤⼩可变,改变段⼤⼩来消除内碎⽚)。

但段换⼊换出时,会产⽣外碎⽚(⽐如4k的段换5k的段,会产⽣1k的外碎⽚)
页式存储管理⽅案是⼀种⽤户视⾓内存与物理内存相分离的内存分配管理⽅案。

在页式存储管理中,将程序的逻辑地址划分为固定⼤⼩的页(page),⽽物理内存划分为同样⼤⼩的帧,程序加载时,可以将任意⼀页放⼊内存中任意⼀个帧,这些帧不必连续,从⽽实现了离散分离。

页式存储管理的优点是:没有外碎⽚(因为页的⼤⼩固定),但会产⽣内碎⽚(⼀个页可能填充不满)。

两者的不同点:
⽬的不同:分页是由于系统管理的需要⽽不是⽤户的需要,它是信息的物理单位;分段的⽬的是为了能更好地满⾜⽤户的需要,它是信息的逻辑单位,它含有⼀组其意义相对完整的信息;
⼤⼩不同:页的⼤⼩固定且由系统决定,⽽段的长度却不固定,由其所完成的功能决定;
地址空间不同:段向⽤户提供⼆维地址空间;页向⽤户提供的是⼀维地址空间;
信息共享:段是信息的逻辑单位,便于存储保护和信息的共享,页的保护和共享受到限制;
内存碎⽚:页式存储管理的优点是没有外碎⽚(因为页的⼤⼩固定),但会产⽣内碎⽚(⼀个页可能填充不满);⽽段式管理的优点是没有内碎⽚(因为段⼤⼩可变,改变段⼤⼩来消除内碎⽚)。

但段换⼊换出时,会产⽣外碎⽚(⽐如4k的段换5k的段,会产⽣1k的外碎⽚)。

分页存储管理方式

分页存储管理方式
15
练习题 【例4】:有一页式系统,其页表存放在主存中
①如果对主存的一次存取需要1.5μs,试问实现一次页面访 问的存取时间是多少? ②如果系统加有快表,平均命中率为85%,当页表项在快表 中时,其查找时间忽略为0, 试问此时的存取时间是多少?
答:若页表存放在主存中,则要实现一次页面访问需两次 访问主存:一次是访问页表,确定所存取页面的物理地 址(称为定位)。第二次才根据该地址存取页面数据。
① 将逻辑地址转换成二进制; ② 按页的大小分离出页号P和位移量W(低位部分是位
移量,高位部分是页号);
③ 将位移量直接复制到内存地址寄存器的低位部分; ④ 以页号查页表,得到对应页装入内存的块号B,将
块号转换成二进制数填入地址寄存器的高位部分, 从而形成内存地址。
14
练习题:
例1:设有8页的逻辑地址空间,每页有1024个字节,它们被 映射到32块的物理存储区,那么逻辑地址的有效位是多少, 物理地址至少多少位?
越界保护
查页表前,将页号与PTR中的页表长度比较,超出
(>=)则越界
10
页表寄存器 页表始址 址 页号(3) 页内地址

页号 0 1 2 3
块号 1
b
页表
物理地址
分页系统地址变换机构
11
具有快表的地址变换机构
对于基本的地址变换机构(无快表),每存取一个数据, 需要访问两次内存
将页表全部放入。大作业虽然无法全部放入,但由于程序和数据访问的
局部性,也可以取得较好的效果。据统计:命中率>90%
13
分页管理中的地址映射问题
【注意】将逻辑地址线性分割求出页号P和页内位移W: 1、逻辑地址以十进制数给出: 页号P=逻辑地址 / 页大小
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

”缺小页表”中断信号
SUN微系统公司的计算机采用的 三级分页结构。
• 为了避免进程切换时重新装入页表,硬件 可以支持多达4096个上下文,每个进程一 个;当一个新进程装入主存时,操作系统 分给一个上下文号,进程保持这个上下 文号直到终止。
物理地址形成
• 当CPU访问内存时,上下文号和逻辑地址一起送 入称作MMU(memory management unit)的地址转换 机构(现代计算机中的MMU完成逻辑地址到物理 地址的转换功能,通常它是由一个或一组芯片 组成,接受虚拟地址作为输入,物理地址作为 输出,直接送到总线上),
• 具体做法是:把整个页表进行分页,分成一张张小 页表,每个小页表的大小与页框相同,例如每个 小页表形成的页面可以有1K(210)个页表表目。我 们可对小页表顺序编号,允许小页表分散存放在 不连续的页框中,为了进行索引查找,应该为这些 小页表建一张页目录表,其表项指出小页表所在 页框号及相关信息。

页内地址
4.3.2 相联存储器和快表
• 相联存储器 • 快表的格式 • 采用相联存储器后地址转换
采用相联存储器的方法后,地 址转换时间大大下降
假定访问主存的时间为100毫微秒,访问相联存 储器的时间为20毫微秒,相联存储器为32个单 元时查快表的命中率可达90%,于是按逻辑地 址进行存取的平均时间为:
• 解决后一个问题的方法如下,对于进程运行涉及 页面的小页表应放在主存,而其它小页表使用时再 行调入。为了实现这一点,需要在页目录表中增加 一个特征位,用来指示对应的小页表是否已调入内 存,地址转换机构根据逻辑地址中的dir,去查页目 录表对应表项,如未调入内存,应产生一个”缺小 页表”中断信号,请求操作系统将这张小页表调 入主存。
• 多对基址/限长寄存器
4.4.4 分段和分页的比较
• 分段是信息的逻辑单位,由源程序的逻辑结 构所决定,用户可见,段长可根据用户需要 来规定,段起始地址可以从任何主存地址开 始。在分段方式中,源程序(段号,段内位移) 经连结装配后仍保持二维结构。
• 分页是信息的物理单位,与源程序的逻辑结 构无关,用户不可见,页长由系统确定,页 面只能以页大小的整倍数地址开始。在分页 方式中,源程序(页号,页内位移)经连结装配 后变成了一维结构。
反置页表
• IPT是为内存中的每一个物理块建 立一个页表并按照块号排序,该表 的每个表项包含正在访问该页框的 进程标识、页号及特征位,用来完 成主存页框到访问进程的页号、即 物理地址到逻辑地址的转换。
地址转换过程如下:
• 逻辑地址给出进程标识和页号,用 它们去比较IPT,若整个反置页表中 未能找到匹配的页表项,说明该页 不在主存,产生请页中断,请求操作 系统调入;否则,该表项的序号便 是页框号,块号加上位移,便形成物 理地址。
(100+20)×90%+(100+100+20)×(1-90%)= 130毫微秒
比两次访问主存的时间100毫微秒×2+20=220 毫微秒下降了四成多。
4.3.3分页式存储空间的分配和去配
• 位示图 • 分配算法 • 链表方法
分页存储管理能实现多个作业 共享程序和数据
• 数据共享 • 程序共享 • 共享信息的保护问题
• 使用上下文号作上下文表的索引,以找到进程 的顶级页目录,然后,使用逻辑地址中的索引 值找下一级表项,直至找到访问页面,形成物理地 址。
4.3.5反置页表
• 反置页表IPT(Inverted Page Table)
逻辑地址
pid
page
offset
物理地址
B
offset
进程标识 特征位 页面号
B
4.3 分页式存储管理
4.3.1 分页式存储管理的基本原理
• 1、页框 • 2、页面 • 3、逻辑地址形式 • 4、页表和地址转换
页式存储管理的地址转换和存储保护
页表控制寄存器
页表
页表始址
页表长度
作业表
地址越界
作业名
页表始址
A
xxxxxx


页表长度 3 …
比较
块号
页号
页内地址
逻辑地址
绝对地址
块号
4.4 分段式存储管理
• 4.4.1 程序的分段结构 分页存储管理---一维地址结构 分段存储管理---二维地址结构
主程序段
┇ call [X]∣<E> (调用X段的入口E)
┇ call [Y]∣<F> (调用Y段的入口F)
┇ load 1,[A]∣<G> (调用数组段A[G])

子程序段X ┇
• 系统要为每个进程建一张页目录表,它的 每个表项对应一个小页表,而小页表的每 个表项给出了页面和页框的对应关系,页 目录表是一级页表,小页表是二级页表。
• 逻辑地址结构有三部分组成:页目录、 页号和位移。
• 页目录表控制寄存器指出当前运行进程的 页目录表内存所在地址,由页目录表起址加 上dir作索引,可找到某个小页表在内存页框 的地址,
• 页表中增加一些标志位,用来指出该页 的信息可读/写;只读;只可执行;不可 访问等,指令执行时进行核对。例如, 要想向只读块写入信息则指令停止执行, 产生中断。
• 另外也可采取键保护的方法。
4.3.4 多级页表
• 多级页表的概念 • 具体做法 • 逻辑地址结构有三部分组成:页目录、
页号和位移。
• 以page作索引,找到小页表的页表项,而该表 项中包含了页面对应的页框号,
• 页框号和位移offset便可生成物理地址。
dir
page
offset
逻辑地址

页目录表
F
控制寄存器
进程一级页表
B
B offset
物理地址
进程二级页表
• 上面的方法解决了可分散存放小页表的问题,但并 未解决占用内存空间的问题。
Windows NT为例,
• 其运行的x86 CPU具有32位地址,它使 用232逻辑地址空间的分页系统,规定 页面4KB时,每个进程的页表的表项有 1兆(220)个,若以每个表项占用4个字节 计算,则每个进程需要占用4KB连续内 存空间存放页表,这样做存储开销太 大了

多级页表的概念
• 内存仅存放当前使用的页表,其余暂时不用部分 放在磁盘上,待用到时再行调进;同时,页表占用内 存空间不必连续可分散存放。
E:┅┅┅┅┅┅ ┇
子程序段Y ┇
F:┅┅┅┅┅┅ ┇
数组段A ┇
G:┅┅┅┅┅┅ ┇
工作区段 ┇ ┇ ┇
4.4.2 分段式存储管理的基本原理
两维逻辑地址 段号:段内地址
作业表和段表 段式存储管理的地址转换和越界?
段号s
位移d
段长
基址
段表
物理地址
4.4.3段的共享
相关文档
最新文档