《第4章存储器管理(3)》由会员分享,可在线阅读,更多相关《第4章存储器管理(3)(22页珍藏版)》请在金锄头文库上搜索。
1、第四章 存 储 器 管 理 4.4基本分页存储管理方式基本分页存储管理方式连连续续分分配配方方式式会会形形成成许许多多碎碎片片(块块内内/块块外外),通通过过“紧紧凑凑”可拼接成较大空闲区,但开销较大。可拼接成较大空闲区,但开销较大。若进程分散装入不相邻位置,就不需要紧凑。若进程分散装入不相邻位置,就不需要紧凑。离散分配方式离散分配方式1第四章 存 储 器 管 理 4.4基本分页存储管理方式基本分页存储管理方式4.3.1页面与页表页面与页表1.页面页面1)页面和物理块页面和物理块分分页页存存储储管管理理,是是将将一一个个进进程程的的逻逻辑辑地地址址空空间间分分成成若若干干个个大大小小相相等等的
2、的片片,称称为为页页面面或或页页,并并为为各各页页加加以以编编号号,从从0开开始始,如如第第0页页、第第1页页等等。相相应应地地,也也把把内内存存空空间间分分成成与与页页面面相相同同大大小小的的若若干干个个存存储储块块,称称为为(物物理理)块块或或页页框框(frame),也也同同样样为为它们加以编号,如它们加以编号,如0块、块、1块等等。块等等。在在为为进进程程分分配配内内存存时时,以以块块为为单单位位将将进进程程中中的的若若干干个个页页分分别别装装入入到到多多个个可可以以不不相相邻邻接接的的物物理理块块中中。由由于于进进程程的的最最后后一一页页经经常常装装不不满满一一块块而而形形成成了了不不
3、可可利利用用的的碎碎片片,称称之之为为“页页内内碎碎片片”。2第四章 存 储 器 管 理 分页管理时,用户进程在内存空间内除了分页管理时,用户进程在内存空间内除了在每个页面内地在每个页面内地址连续址连续之外,每个页面之间不再连续。之外,每个页面之间不再连续。实现了内存中碎片的减少,因为任一碎片都会小于一个页面。实现了内存中碎片的减少,因为任一碎片都会小于一个页面。实现了由连续存储到非连续存储这个飞跃,为在内存中局部实现了由连续存储到非连续存储这个飞跃,为在内存中局部地、动态地存储那些反复执行或即将执行的程序和数据段打下地、动态地存储那些反复执行或即将执行的程序和数据段打下了基础。了基础。页式管
4、理把页式管理把页式虚地址与内存页面物理地址页式虚地址与内存页面物理地址建立一一对建立一一对应应页表页表,并用相应的,并用相应的硬件地址变换机构硬件地址变换机构,来解决离散地址变,来解决离散地址变换问题。页表方式实质上是动态重定位技术的一种延伸。换问题。页表方式实质上是动态重定位技术的一种延伸。3第四章 存 储 器 管 理 2)页面大小页面大小在分页系统中的页面其大小应适中。在分页系统中的页面其大小应适中。页面若太小页面若太小,一一方方面面虽虽然然可可使使内内存存碎碎片片减减小小,从从而而减减少少了了内内存存碎碎片的总空间,片的总空间,有利于提高内存利用率,有利于提高内存利用率,但但另另一一方方
5、面面也也会会使使每每个个进进程程占占用用较较多多的的页页面面,从从而而导致进程的页表过长,占用大量内存;导致进程的页表过长,占用大量内存;此外,还会降低页面换进换出的效率。此外,还会降低页面换进换出的效率。页页面面较较大大,虽虽然然可可以以减减少少页页表表的的长长度度,提提高高页页面面换换进进换换出出的的速速度度,但但却却又又会会使使页页内内碎碎片片增增大大。因因此此,页页面面的的大大小小应应选择得适中,且页面大小应是选择得适中,且页面大小应是2的幂,的幂,通常为通常为512B8KB。4第四章 存 储 器 管 理 2.地址结构地址结构分页地址中的地址结构如下: 页号页号P位移量位移量W3112
6、110对对某某特特定定机机器器,其其地地址址结结构构是是一一定定的的。若若给给定定一一个个逻逻辑辑地地址址空空间间中中的的地地址址为为A,页页面面的的大大小小为为L,则则页页号号P和和页页内地址内地址d可按下式求得:可按下式求得:5第四章 存 储 器 管 理 例:在一分页存储管理系统中,逻辑地址长度为例:在一分页存储管理系统中,逻辑地址长度为16位,位,页面大小为页面大小为4096字节,现有一逻辑地址为字节,现有一逻辑地址为2F6AH,问页号及页内地址是什么?问页号及页内地址是什么?解:解:4096=4K(12位)位)=(1,0000,0000,0000)2=1000H解法二:逻辑地址解法二:
7、逻辑地址16位,页面大小位,页面大小4096B(412B),),可知逻辑地址中,页内偏移量占可知逻辑地址中,页内偏移量占12位,页号占位,页号占4位。位。A6F2页号页号页内地址页内地址6第四章 存 储 器 管 理 3.页表页表最简单的页表由页号与页面号组最简单的页表由页号与页面号组成。如图所示。成。如图所示。页表在内存中占有一块固定的存页表在内存中占有一块固定的存储区。储区。页表的大小由进程或作业页表的大小由进程或作业的长度决定。的长度决定。图图4-11页表的作用页表的作用例如,对于一个每页长例如,对于一个每页长1K,大小为,大小为20K的进程来的进程来说,如果一个内存单元存放一个页表项,则
8、只要说,如果一个内存单元存放一个页表项,则只要分配给该页表分配给该页表20个存储单元即可。个存储单元即可。显然,页式管理时每个进程至少拥有一个页表。显然,页式管理时每个进程至少拥有一个页表。7第四章 存 储 器 管 理 4.3.2地址变换机构地址变换机构1.基本的地址变换机构基本的地址变换机构图 4-12 分页系统的地址变换机构 8第四章 存 储 器 管 理 设每个页面长度为设每个页面长度为1K,指令,指令LOAD1,2500的虚地址为的虚地址为100,怎样,怎样通过图示页表来找到该指令所对应的物理地址呢通过图示页表来找到该指令所对应的物理地址呢?为了找出为了找出2500对应的实际物理地址,地
9、址变换机构对应的实际物理地址,地址变换机构首先将首先将2500转换为页号与页内相对地址组成的地址转换为页号与页内相对地址组成的地址形式。即形式。即p=2,w=452。由控制寄存器的页表始址,由控制寄存器的页表始址,可以找到页表所在位置。可以找到页表所在位置。由虚地址由虚地址100可知,指令可知,指令LOAD1,2500在第在第0页的第页的第100单元之中。单元之中。由于第由于第0页与第页与第2个页面相对个页面相对应,因此,该指令在内存中应,因此,该指令在内存中的地址为的地址为2048+100=2148。当当CPU执行到第执行到第2148单元的指令时,单元的指令时,CPU要从有效地址要从有效地址
10、2500中取数据放中取数据放入入1号寄存器中。号寄存器中。由页表,可知第由页表,可知第2页所对应的页面页所对应的页面号等于号等于8。最后,将页面号。最后,将页面号8与页内与页内相对地址相对地址w=452相连,得到待访问相连,得到待访问的物理内存地址的物理内存地址8644。9第四章 存 储 器 管 理 例:在一分页存储管理系统中,逻辑地址长度为例:在一分页存储管理系统中,逻辑地址长度为16位,位,页面大小为页面大小为4096字节,现有一逻辑地址为字节,现有一逻辑地址为2F6AH,且第且第0、1、2页依次存放在物理块页依次存放在物理块5、10、11中,问中,问相应的物理地址为多少?相应的物理地址为
11、多少?页号页号块号块号05110211题目中给出页表:题目中给出页表:A6F2页号页号页内地址页内地址块内地址块内地址A6F块号块号11解法一解法一:(按十六进制考虑)按十六进制考虑)10第四章 存 储 器 管 理 例:在一分页存储管理系统中,逻辑地址长度为例:在一分页存储管理系统中,逻辑地址长度为16位,位,页面大小为页面大小为4096字节,现有一逻辑地址为字节,现有一逻辑地址为2F6AH,且第且第0、1、2页依次存放在物理块页依次存放在物理块5、10、11中,问中,问相应的物理地址为多少?相应的物理地址为多少?页号页号块号块号05110211题目中给出页表:题目中给出页表:A6F2页号页号
12、页内地址页内地址块内地址块内地址A6F块号块号B解法二解法二:(按十进制考虑)按十进制考虑)11第四章 存 储 器 管 理 上述地址变换过程全部由上述地址变换过程全部由硬件地址变换机构硬件地址变换机构自动自动完成。完成。由于页表是驻留在内存的某个固定区域中,而取数据或指由于页表是驻留在内存的某个固定区域中,而取数据或指令又必须经过页表变换才能得到实际物理地址。因此,令又必须经过页表变换才能得到实际物理地址。因此,取一个取一个数据或指令至少要访问内存两次以上。数据或指令至少要访问内存两次以上。一次访问页表以确定所取数据或指令的物理地址,一次访问页表以确定所取数据或指令的物理地址,另一次是根据地址
13、取数据或指令。另一次是根据地址取数据或指令。这比通常执行指令的速度慢了一倍。这比通常执行指令的速度慢了一倍。提高查找速度:提高查找速度:u一个最直观的办法就是一个最直观的办法就是把页表放在寄存器把页表放在寄存器中而不是内存中,但由于中而不是内存中,但由于寄存器价格太贵,寄存器价格太贵,这样做是不可取的这样做是不可取的。u另一种办法是在地址变换机构中另一种办法是在地址变换机构中加入一个高速联想存储器,构成加入一个高速联想存储器,构成一张快表一张快表。在快表中,存入那些当前执行进程中最常用的页号与所。在快表中,存入那些当前执行进程中最常用的页号与所对应的页面号,从而以提高查找速度。对应的页面号,从
14、而以提高查找速度。12第四章 存 储 器 管 理 2.具有快表的地址变换机构具有快表的地址变换机构图 4-13 具有快表的地址变换机构 13第四章 存 储 器 管 理 TLB初始为空;初始为空;地址转换时先访问地址转换时先访问TLB,若,若TLB未命中,再访问页表未命中,再访问页表(忽略访问页表之后的(忽略访问页表之后的TLB更新时间)。更新时间)。设有虚地址访问序列设有虚地址访问序列2362H、25A5H,请问:,请问:依次访问上述依次访问上述2个虚地址,各需多少时间?给出计算过程。个虚地址,各需多少时间?给出计算过程。页号号页框号框号有效位有效位(存在位)(存在位)0101H11345H1
15、2254H1*例题:例题:页面大小为页面大小为4KB,一次内存的访,一次内存的访问时间是问时间是100ns,一次快表(,一次快表(TLB)的)的访问时间是访问时间是10ns。假设。假设14第四章 存 储 器 管 理 (1)根据页式管理的工作原理,应先考虑页面大小,以便将)根据页式管理的工作原理,应先考虑页面大小,以便将页号和页内位移分解出来。页号和页内位移分解出来。页面大小为页面大小为4KB,即,即212,则得到页内位移占虚地址的低,则得到页内位移占虚地址的低12位,页号占剩余高位。可得虚地址的页号位,页号占剩余高位。可得虚地址的页号P如下(十六进制的如下(十六进制的低三位正好为页内位移,最高
16、位为页号):低三位正好为页内位移,最高位为页号):2362H:P=2,访问快表,访问快表10ns,因初始为空,访问页表,因初始为空,访问页表100ns得到页框号,合成物理地址后访问主存得到页框号,合成物理地址后访问主存100ns,共计,共计10ns+100ns+100ns=210ns。25A5H:P=2,访问快表,因第一次访问已将该页号放入,访问快表,因第一次访问已将该页号放入快表,因此花费快表,因此花费10ns便可合成物理地址,访问主存便可合成物理地址,访问主存100ns,共,共计计10ns+100ns=110ns。15第四章 存 储 器 管 理 4.3.3两级和多级页表两级和多级页表现现代
17、代的的大大多多数数计计算算机机系系统统,都都支支持持非非常常大大的的逻逻辑辑地地址址空空间间(232264)。在在这这样样的的环环境境下下,页页表表就就变变得得非非常常大大,要要占占用用相相当当大大的的内内存存空空间间。例例如如,对对于于一一个个具具有有32位位逻逻辑辑地地址址空空间间的的分分页页系系统统,规规定定页页面面大大小小为为4KB即即212B,则则在在每每个个进进程程页页表表中中的的页页表表项项可可达达1兆兆个个之之多多。又又因因为为每每个个页页表表项项占占用用一一个个字字节节,故故每每个个进进程程仅仅仅仅其其页页表表就就要要占用占用4KB的内存空间,而且还要求是连续的的内存空间,而
18、且还要求是连续的。可可以以采采用用两两个个方方法法来来解解决决这这一一问问题题:采采用用离离散散分分配配方方式式来来解解决决难难以以找找到到一一块块连连续续的的大大内内存存空空间间的的问问题题:只只将将当当前前需需要要的的部部分分页页表表项项调调入入内内存存,其其余余的的页页表表项项仍仍驻驻留留在在磁磁盘盘上,需要上,需要时再调入。时再调入。16第四章 存 储 器 管 理 1.两级页表两级页表(Two-LevelPageTable)逻辑地址结构可描述如下: 17第四章 存 储 器 管 理 图 4-14 两级页表结构 18第四章 存 储 器 管 理 图 4-15 具有两级页表的地址变换机构 19
19、第四章 存 储 器 管 理 2.多级页表多级页表对对于于32位位的的机机器器,采采用用两两级级页页表表结结构构是是合合适适的的;但但对对于于64位位的的机机器器,如如果果页页面面大大小小仍仍采采用用4KB即即212B,那那么么还还剩剩下下52位位,假假定定仍仍按按物物理理块块的的大大小小(212位位)来来划划分分页页表表,则则将将余余下下的的42位位用用于于外外层层页页号号。此此时时在在外外层层页页表表中中可可能能有有4096G个页表项,个页表项,要占用要占用16384GB的连续内存空间。的连续内存空间。必必须须采采用用多多级级页页表表,将将外外层层页页表表再再进进行行分分页页,也也是是将将各
20、各分分页页离离散散地地装装入入到到不不相相邻邻接接的的物物理理块块中中,再再利利用用第第2级级的的外层页表来映射它们之间的关系。外层页表来映射它们之间的关系。对对于于64位位的的计计算算机机,如如果果要要求求它它能能支支持持2(=1844744TB)规规模模的的物物理理存存储储空空间间,则则即即使使是是采采用用三三级级页页表表结结构构也也是是难以办到的;而在当前的实际应用中也无此必要。难以办到的;而在当前的实际应用中也无此必要。20第四章 存 储 器 管 理 静态静态(静态静态)页式管理页式管理解决了分区管理时的碎片解决了分区管理时的碎片问题问题。但是,由于静态页式管理要求进程或作业在执但是,由于静态页式管理要求进程或作业在执行前行前全部装入内存全部装入内存,如果可用页面数小于用户要求,如果可用页面数小于用户要求时,该作业或进程只好等待。而且,作业或进程的时,该作业或进程只好等待。而且,作业或进程的大小仍受内存可用页面数的限制。大小仍受内存可用页面数的限制。这些问题将在这些问题将在动态动态(请求请求)页式管理页式管理中解决。中解决。21第四章 存 储 器 管 理 22