分页存储管理课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《分页存储管理课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分页 存储 管理 课件
- 资源描述:
-
1、 43 分页管理 4.3.1分页管理的基本原理 分页存储管理是解决存储零头的一种方法。动态重定位是解决存储器零头问题的一种途径,但要移动大量信息花去不少处理机时间,代价比较高,这是因为这种分配要求把作业必须安置在一连续存储区内的缘故,而分页存储管理正是要避开这种连续性要求。q分页存储管理,在该方式中,用户程序的地址分页存储管理,在该方式中,用户程序的地址被划分成划分若干个固定大小的区域,称为页被划分成划分若干个固定大小的区域,称为页(或页面)。页面的典型大小为(或页面)。页面的典型大小为1k;相应地将;相应地将内存空间分成若干个物理块内存空间分成若干个物理块(或页框或页框),页和块,页和块的大
2、小相同,这样可将用户程序的任一页放到的大小相同,这样可将用户程序的任一页放到内存的任一块中,实现离散分配。这时内存中内存的任一块中,实现离散分配。这时内存中的碎片大小不会超过一页。的碎片大小不会超过一页。q关键问题是实现逻辑地址到物理地址的二维动关键问题是实现逻辑地址到物理地址的二维动态映射,这是通过页表实现的。引入联想存贮态映射,这是通过页表实现的。引入联想存贮器(超高速缓存)构成的快表可加快映射的速器(超高速缓存)构成的快表可加快映射的速度。内存空间的保护是通过地址映射过程中检度。内存空间的保护是通过地址映射过程中检查页号越界来实现的。查页号越界来实现的。(1 1)基本分页存储管理原理)基
3、本分页存储管理原理1分页分页 分页存储管理是将一个进程的地址空间划分成若干个大小相等的区域,称为页。相应地,将内存空间划分成与页相同大小的若干个物理块,称为块或页框。在为进程分配内存时,将进程中若干页分别装入多个不相邻接的块中。2.2.地址结构地址结构分页系统的地址结构如下图所示,它由两部分组成:前一部分为页号P;后一部分为位移量W,即页内地址。图中的地址长度为32位,其中011位为页内地址(每页的大小为4K),1231位为页号,所以允许地址空间的大小最多为1M个页。31 12 11 0 页号 P 位移量W 页页 号号 页内地址页内地址 5 5 10 102 25 53232(页)(页)2 2
4、101010241024(每页每页10241024字节字节)在分配存储空间时,是以页面为单位来分配.例如,一个作业的地址空间有M页,那么只需要分配给他M个页面的存储空间,每一页分别装入一个存储页面即可.并不需要这些页面是连续的.以上这些问题需要一个地址映射.若给定一个逻辑地址空间中的地址为A,页面大小为L,则页号P和页内地址w可按下式求得:P=INTA/LW=AMODL其中,INT是整除函数,MOD是取余函数。例:系统页面大小为KB,设A2170B,则P=2,W=1223.3.页表页表 在将进程的每一页离散地分配到内存的多个在将进程的每一页离散地分配到内存的多个物理块中后,系统应能保证能在内存
5、中找到每个物理块中后,系统应能保证能在内存中找到每个页面所对应的物理块。为此,系统为每个进程建页面所对应的物理块。为此,系统为每个进程建立了一张立了一张页面映射表页面映射表,简称,简称页表页表(如下图(如下图所示所示)。)。每个页在页表中占一个表项,记录该页在内存中每个页在页表中占一个表项,记录该页在内存中对应的物理块号。进程在执行时,通过查找页表,对应的物理块号。进程在执行时,通过查找页表,就可以找到每页所对应的物理块号。可见,就可以找到每页所对应的物理块号。可见,页表页表的作用的作用是实现从页号到物理块号的地址映射。是实现从页号到物理块号的地址映射。页表:由页号和页面号组成,指出逻辑地址中
6、页号与主存中块号(页面号)的对应关系 页号-作业地址空间的页序号 页面号-内存空间的页面序号 页页 号号页面号页面号页页 表表存储页面表 一个系统只有一张存储页面表.它指出内存各页面是否被分配,以及来分配页面的总数.19 18 3 2 1 0 若内存被分配为1024个页面,内存单元长20比特.1024/20=52个单元.描述了1024个页面是否分配.4.3.2地址变换(映射)机构1.基本的地址变换机构基本的地址变换机构地址变换机构的基本任务是利用页表把用户程序中的逻辑地址变换成内存中的物理地址,实际上就要将用户程序中的页号变换成内存中的物理块号。为了实现地址变换功能,在系统中设置页表寄存器,用
7、来存放页表的始址和页表的长度。在进程未执行时,每个进程对应的页表的始址和长度存放在进程的PCB中,当该进程被调度时,就将它们装入页表寄存器。在进行地址变换时,系统将页号与页表长度进行比较,如果页号大于页表寄存器中的页表长度,则访问越界,产生越界中断。如未出现越界,则根据页表寄存器中的页表始址和页号计算出该页在页表项中的位置,得到该页的物理块号,将此物理块号装入物理地址寄存器中。与此同时,将有效地址(逻辑地址)寄存器中页内地址直接装入物理地址寄存器的块内地址字段中,这样便完成了从逻辑地址到物理地址的变换。物理地址(绝对地址)相对地址(有效逻辑地址)页面号页面号页内地址页内地址页号页号页内地址页内
8、地址页表长度页表长度页表始址页表始址控制寄存器页表长度页表长度 页表始址页表始址 3 1k2452相对地址页号页号 页面号页面号 0 2 1 3 2 88452OS物理地址 86441024*8+452=8644第0页第1页第2页第3页第4页第5页第6页05k6k7k8k9k10k11k12k13k14k15k16k17k31k57915131016.0k1k2k3k4k5k6k0k1k2k3k4k5k6k作业1的地址空间作业1的地址空间 页表 图图 页式管理的示意图页式管理的示意图主存空间页表 例:作业地址空间共有例:作业地址空间共有7 7个页,个页,每页的相对地址为每页的相对地址为0102
9、301023,1024204710242047,2048307120483071,6144615061446150。其对应的主存块在。其对应的主存块在页表中已列出。分别为页表中已列出。分别为5 5,7 7,9 9,1515,1313,1010,1616共共7 7块。假定页块。假定页表在主存始址为表在主存始址为500500。若该程序。若该程序从第从第0 0页开始运行,且现程序计页开始运行,且现程序计数器内容为:数器内容为:14.10 9 014.10 9 0 硬件动态地址转换机构工作如下:硬件动态地址转换机构工作如下:1.1.把该作业的页表始址(把该作业的页表始址(500500)和页)和页表长度
10、(表长度(7 7)放入控制寄存器中。)放入控制寄存器中。2.2.将程序计数器内容的页号部分(将程序计数器内容的页号部分(0 0)与控制寄存器中的页表长度(与控制寄存器中的页表长度(7 7)相比较,)相比较,若页号若页号+57915131016页表内存地址寄存器5(内存块号)100(页内地址)12345图图 页式地址变换过程页式地址变换过程 页表寄存器 逻辑地址2500 页号 块 号 0 1 2 每页1KB(1024)页 号2 页内地址452页表始址页表长度 2 45写出下图中逻辑地址2500所对应的物理地址 越界中断 页表寄存器 逻辑地址2500 页号 块 号 0 1 2 每页1KB(1024
11、)物理地址5572 5*1024+452块号5 块内地址452 页 号2 页内地址452页表始址页表长度 2 45逻辑地址2500所对应的物理地址快表和联想存贮器快表和联想存贮器 从上述地址转换过程可以看出,执从上述地址转换过程可以看出,执行一次访内操作至少要访问主存两次。行一次访内操作至少要访问主存两次。一次访页表,以确定所取数据或指令的一次访页表,以确定所取数据或指令的物理地址;另一次是根据地址取数据或物理地址;另一次是根据地址取数据或指令。这样就把程序的执行速度降低一指令。这样就把程序的执行速度降低一倍。为了提高存取速度,通常设置一个倍。为了提高存取速度,通常设置一个专用的高速缓冲寄存器
12、组,用来存放页专用的高速缓冲寄存器组,用来存放页表的一部分。我们把存放在高速缓冲寄表的一部分。我们把存放在高速缓冲寄存器中的页表叫快表,存器中的页表叫快表,这个高速缓冲寄这个高速缓冲寄存器又叫联想存贮器。存器又叫联想存贮器。联想存贮器的存取速度比主存高联想存贮器的存取速度比主存高,但造价也高。因此只能采用少量,但造价也高。因此只能采用少量,整个系统通常只要用整个系统通常只要用816816个寄存器个寄存器即可使程序执行速度大大提高。快即可使程序执行速度大大提高。快表的格式见下图。表的格式见下图。页号块号访问位状态位 其中,其中,“页号页号”是程序访问过的地址空是程序访问过的地址空间的页号,间的页
13、号,“块号块号”是该页所对应的主是该页所对应的主存块号;访问位指示该页最近是否被访存块号;访问位指示该页最近是否被访问过。问过。“0”0”表示没有被访问,表示没有被访问,“1”1”表表示访问过示访问过 ;“状态状态”位指示该寄存器是位指示该寄存器是否被占用。通常否被占用。通常“0”0”表示空闲,表示空闲,“1”1”表示占用。表示占用。为了保证快表中的内容为现正运行程为了保证快表中的内容为现正运行程序的页表内容,在每个程序被选中时,序的页表内容,在每个程序被选中时,由恢复现场程序把快表的所有状态位清由恢复现场程序把快表的所有状态位清“0”0”,或恢复已保存的快表内容。,或恢复已保存的快表内容。当
14、进程访问一页时,系统将页号与快表当进程访问一页时,系统将页号与快表中的所有项进行并行比较。若访问的页中的所有项进行并行比较。若访问的页在快表中,即可立即进行地址转换。在快表中,即可立即进行地址转换。当被访问的页不在快表中时,就要当被访问的页不在快表中时,就要将由慢表找到的内存块号与虚页号填入将由慢表找到的内存块号与虚页号填入快表中,若快表已满,则置换其中访问快表中,若快表已满,则置换其中访问位为位为0 0的一项。的一项。另外,在设置快表的情况下,硬件地另外,在设置快表的情况下,硬件地址转换机构在进行地址变换时,同时开址转换机构在进行地址变换时,同时开始两个变换过程。始两个变换过程。一个是利用主
15、存页表进行的正常变一个是利用主存页表进行的正常变换过程,另一个是利用快表进行的换过程,另一个是利用快表进行的快速变换过程。一旦快表中有与查快速变换过程。一旦快表中有与查找的页号相符合时,则立即停止正找的页号相符合时,则立即停止正常的访主存页表过程。并将快表中常的访主存页表过程。并将快表中的块号与的块号与CPUCPU给出的页内位移相拼接,给出的页内位移相拼接,得到访问主存的绝对地址。从而结得到访问主存的绝对地址。从而结束了快表的查找工作。束了快表的查找工作。当利用快表进行变换时,若没有找到要查询的当利用快表进行变换时,若没有找到要查询的页时,则继续正常的转换过程,直到形成访问页时,则继续正常的转
16、换过程,直到形成访问主存的绝对地址。而且还要把从主存页表中取主存的绝对地址。而且还要把从主存页表中取出的块号和出的块号和CPUCPU给出的页号一起写入快表中状给出的页号一起写入快表中状态位为态位为0 0的一行中。若没有这样行存在,则写的一行中。若没有这样行存在,则写入访问位为入访问位为0 0的某一行中,并同时置状态位和的某一行中,并同时置状态位和访问位为访问位为1 1。需要说明的是,快表的地址转换需要说明的是,快表的地址转换是非常快的,因为它是将页号与快表中的各行是非常快的,因为它是将页号与快表中的各行同时比较,从而大大减少了地址变换时间,基同时比较,从而大大减少了地址变换时间,基本上克服了两
17、次访问主存的缺点。本上克服了两次访问主存的缺点。由于成本的原因,快表不可能做得很大,通常只能由于成本的原因,快表不可能做得很大,通常只能存放存放16512个页表项。例如,在个页表项。例如,在Intel80486中有中有32个。这对中、小型作业来说,已可能把全部页表项个。这对中、小型作业来说,已可能把全部页表项放入快表中;但对于大型作业来说,则只能将一部放入快表中;但对于大型作业来说,则只能将一部分页表放入快表中。分页表放入快表中。由于对程序和数据的访问往往带有局限性,所以快由于对程序和数据的访问往往带有局限性,所以快表的命中率可以达到表的命中率可以达到80%90%。例如,假设检索。例如,假设检
18、索联想存储器的时间为联想存储器的时间为20ns,访问内存的时间为,访问内存的时间为100ns,访问联想存储器的的命中率为,访问联想存储器的的命中率为85%,则,则CPU存取一个数据的平均时间存取一个数据的平均时间T=0.85*120+0.15*220=135ns,所以访问时间只增,所以访问时间只增加加35%。如果不引入联想存储器,其访问将延长一。如果不引入联想存储器,其访问将延长一倍(达倍(达200ns)。)。具有快表的地址变换机构 越界中断 页表寄存器 逻辑地址 页号 块号 页 号 块 号 0 2 0 1 4 1 2 5 2 快 表 页 表 物理地址 页 号 页内地址页表始址 页表长度 2
19、4 5块号 块内地址 输入寄存器4.3.3两级页表机制 80386 80386的逻辑地址有的逻辑地址有232B,如,如页面大小为页面大小为4KB4KB(2 21212B B),),则页表项达则页表项达1M1M个,每个页表项占用个,每个页表项占用4B4B,故每个进程,故每个进程的页表占用的页表占用4MB4MB内存空间,还要求是连续的,显然这内存空间,还要求是连续的,显然这是不现实的。是不现实的。在在8038680386中,为了减少页表所占用的连续的内存空间,中,为了减少页表所占用的连续的内存空间,采用了采用了两级页表机制两级页表机制:基本方法是将页表进行分页,:基本方法是将页表进行分页,每个页面
20、的大小与内存物理块的大小相同,并为它每个页面的大小与内存物理块的大小相同,并为它们进行编号,可以离散地将各个页面分别存放在不们进行编号,可以离散地将各个页面分别存放在不同的物理块中,为此再建立一张页表,称为同的物理块中,为此再建立一张页表,称为外层页外层页表表(页表目录),即第一级页表,其中的每个表目(页表目录),即第一级页表,其中的每个表目是存放某个页表的物理地址。第二级才是页表,其是存放某个页表的物理地址。第二级才是页表,其中的每个表目所存放的才是页的物理块号。中的每个表目所存放的才是页的物理块号。两级页表系统将32位逻辑地址空间的地址分成三段:其中,页表目录号(外层页号p1)和页号(外层
21、页内地址p2)两项各占10位,偏移量(页内地址d)占12位。每页的大小为4KB。由于物理块号和页表的物理地址都占4个字节,使每页中包含1024个页表项,所以页表目录和页表的大小也都是4KB,即一页。在80386中设置了一个外层页表寄存器(CR3),用于存放页表目录的基址。两级页表的逻辑地址结构和两级页表的地址变换机构图如下:31 22 21 12 11 0 外层页表 页表 物理地址 外层页号p1 外层页内地址p2 页内地址d外层页表寄存器+b d两级页表机制图 第第0 0页页表(物理块号页页表(物理块号1010)内内 存存 0 0 1 1 0 0 1 1023 1 1023 2 2 第第1 1
22、页页表(物理块号页页表(物理块号2525)0 0 1 1 1023 1023 第第N N页页表(物理块号页页表(物理块号120120)0 0 1 1 外层页外层页表表 1023 102310251201214323515115201121314323334351511524.5 虚拟存储器4.6 请求分页存储管理 (动态页式)4.5 虚拟存储器的基本概念的基本概念(1 1)虚拟存储器的引入虚拟存储器的引入v 常规存储管理方式的特征是:一次性、驻留性。常规存储管理方式的特征是:一次性、驻留性。1 1局部性原理局部性原理 早在1968年PDenning就指出过,程序在执行时将呈现出程序在执行时将呈
23、现出局部局部性规律性规律,即在一段时间内,程序的执行仅局限于某个部分;,即在一段时间内,程序的执行仅局限于某个部分;相应地,它所访问的存储空间也局限于某个区域内。相应地,它所访问的存储空间也局限于某个区域内。那么程序为什么会出现局部性规律呢?原因可以归结为以下几点:程序在执行时,除了少部分的转移和过程调用指令外,大多数仍是顺序执行的。子程序调用将会使程序的执行由一部分内存区域转至另一部分区域。但在大多数情况下,过程调用的深度都不超过5。程序中存在许多循环结构,循环体中的指令被多次执行。程序中还包括许多对数据结构的处理,如对连续的存储空间数组的访问,往往局限于很小的范围内。所以局限性表现为:时间
24、局限性时间局限性:如果程序中的某条指令一旦执行,则不久的将来该指令可能再次被执行;如果某个存储单元被访问,则不久以后该存储单元可能再次被访问。产生时间局限性的典型原因是在程序中存在着大量的循环操作。空间局限性空间局限性:一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。即程序在一段时间内所访问的地址,可能集中在一定的范围内,其典型原因是程序是顺序执行的。2.虚拟存储器的定义虚拟存储器的定义 根据局部性原理,一个作业在运行之前,没有必要把全部作业装入内存,而仅将那些当前要运行的那部分页面或段,先装入内存便可启动运行,其余部分暂时留在磁盘上。程序在运行时如果它所要访问的
25、页(段)已调入内存,便可继续执行下去;但如果程序所要访问的页(段)尚未调入内存(称为缺页或缺段),此时程序应利用OS所提供的请求调页(段)功能,将它们调入内存,以使进程能继续执行下去。如果此时内存已满,无法再装入新的页(段),则还须再利用页(段)的置换功能,将内存中暂时不用的页(段)调出至磁盘上,腾出足够的内存空间后,再将所要访问的页(段)调入内存,使程序继续执行下去。这样,便可使一个大的用户程序在较小的内存空间中运行;也可使内存中同时装入更多的进程并发执行。从用户角度看,该系统所具有的内存容量,将比实际内存容量大得多,人们把这样的存储器称为虚拟存储器。虚拟存储器是具有请求调入功能和置换功能,
展开阅读全文