《操作系统》第4节-存储管理1

上传人:hs****ma 文档编号:568279473 上传时间:2024-07-23 格式:PPT 页数:30 大小:235KB
返回 下载 相关 举报
《操作系统》第4节-存储管理1_第1页
第1页 / 共30页
《操作系统》第4节-存储管理1_第2页
第2页 / 共30页
《操作系统》第4节-存储管理1_第3页
第3页 / 共30页
《操作系统》第4节-存储管理1_第4页
第4页 / 共30页
《操作系统》第4节-存储管理1_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《《操作系统》第4节-存储管理1》由会员分享,可在线阅读,更多相关《《操作系统》第4节-存储管理1(30页珍藏版)》请在金锄头文库上搜索。

1、操作系统原理Principles of Operating System 1第4章 存储管理n n存储器是计算机的记忆部件,计算机系统的主要用途是执行程序,在执行程序时,这些程序及其所访问的数据必须在内存里。由于内存通常太小不足以永久地容纳所有数据和程序,因此计算机系统必须提供外存(如硬盘)以扩充内存的技术。n n在现代计算机系统中,内存是一个关键性的资源。能否合理而有效地使用它,在很大程度上反映了操作系统的性能,并直接影响整个计算机系统作用的发挥。所以,存储管理是目前人们研究操作系统的中心问题之一。本章我们将讨论多种不同存储管理方法 24.4.1 存储器的层次n n三级存储器结构三级存储器结

2、构 n n高速缓存(高速缓存(cachecache)内存(内存(primary storageprimary storage)外存外存(secondary storagesecondary storage) 34.1.2 存储管理的功能n n1.1.内存分配和回收内存分配和回收n n内存的利用率与内存分配的技术、方式和策略有直接关内存的利用率与内存分配的技术、方式和策略有直接关系。系。n n2.2.内存保护内存保护n n内存保护就是确保多个进程都在各自分配到内存区域内内存保护就是确保多个进程都在各自分配到内存区域内操作,互不干扰,防止一个进程破坏其他进程的信息。操作,互不干扰,防止一个进程破坏

3、其他进程的信息。 n n3.3.内存扩充内存扩充n n内存内存“ “扩充扩充” ”包含了存储器利用的提高和扩充两方面的包含了存储器利用的提高和扩充两方面的内容。为用户提供比内存物理空间大得多的地址空间。内容。为用户提供比内存物理空间大得多的地址空间。比较典型的内存扩充是虚拟存储器。比较典型的内存扩充是虚拟存储器。 n n4.4.地址映射地址映射n n地址映射就是将进程的逻辑地址变换为内存中的物理地地址映射就是将进程的逻辑地址变换为内存中的物理地址。我们需要实现从逻辑地址到物理地址的变换,即实址。我们需要实现从逻辑地址到物理地址的变换,即实现从虚地址到实地址的变换。这种变换就是重定位。现从虚地址

4、到实地址的变换。这种变换就是重定位。 4几个重要的概念 n n逻辑地址逻辑地址逻辑地址逻辑地址n n逻辑地址就是指令在程序中的地址,源程序经编译(或解释)后逻辑地址就是指令在程序中的地址,源程序经编译(或解释)后逻辑地址就是指令在程序中的地址,源程序经编译(或解释)后逻辑地址就是指令在程序中的地址,源程序经编译(或解释)后编排的地址。逻辑地址也叫相对地址或虚拟地址。编排的地址。逻辑地址也叫相对地址或虚拟地址。编排的地址。逻辑地址也叫相对地址或虚拟地址。编排的地址。逻辑地址也叫相对地址或虚拟地址。n n逻辑地址空间逻辑地址空间逻辑地址空间逻辑地址空间n n逻辑地址空间就是某程序的逻辑地址的集合,

5、逻辑地址空间可简逻辑地址空间就是某程序的逻辑地址的集合,逻辑地址空间可简逻辑地址空间就是某程序的逻辑地址的集合,逻辑地址空间可简逻辑地址空间就是某程序的逻辑地址的集合,逻辑地址空间可简称为地址空间。称为地址空间。称为地址空间。称为地址空间。n n物理地址物理地址物理地址物理地址n n物理地址就是进程中的指令和数据在内存中的地址,指令和数据物理地址就是进程中的指令和数据在内存中的地址,指令和数据物理地址就是进程中的指令和数据在内存中的地址,指令和数据物理地址就是进程中的指令和数据在内存中的地址,指令和数据存放在内存中的内存单元编号。物理地址也叫绝对地址或实地址。存放在内存中的内存单元编号。物理地

6、址也叫绝对地址或实地址。存放在内存中的内存单元编号。物理地址也叫绝对地址或实地址。存放在内存中的内存单元编号。物理地址也叫绝对地址或实地址。n n物理地址空间物理地址空间物理地址空间物理地址空间n n物理地址空间是指进程在内存中一系列存储信息的物理单元的集物理地址空间是指进程在内存中一系列存储信息的物理单元的集物理地址空间是指进程在内存中一系列存储信息的物理单元的集物理地址空间是指进程在内存中一系列存储信息的物理单元的集合。物理地址空间也叫存储空间,存储空间与地址空间既相互关合。物理地址空间也叫存储空间,存储空间与地址空间既相互关合。物理地址空间也叫存储空间,存储空间与地址空间既相互关合。物理

7、地址空间也叫存储空间,存储空间与地址空间既相互关联,又相互独立,是内存管理的核心概念。联,又相互独立,是内存管理的核心概念。联,又相互独立,是内存管理的核心概念。联,又相互独立,是内存管理的核心概念。54.1.4 重定位n n为使程序正确执行。一个程序装入内存,要进行逻辑地址到物理地址的重定位,实现从逻辑地址到物理地址的变换,重定位可分为静态重定位和动态重定位。n n静态重定位n n进程装入内存时,由装入程序对进程中的指令和数据的地址进行修改,将程序中的逻辑地址变换成物理地址。即物理地址基址+逻辑地址。6n n优点:简单,无需增加硬件就优点:简单,无需增加硬件就可以实现。可以实现。n n缺点:

8、要求连续的内存存储空缺点:要求连续的内存存储空间,程序装入内存后就不可移间,程序装入内存后就不可移动,且难以做到程序和数据的动,且难以做到程序和数据的共享,内存的利用率差。共享,内存的利用率差。n n动态重定位动态重定位n n如图如图4-34-3所示,进程装入内存所示,进程装入内存时不定位,在指令执行期间时不定位,在指令执行期间CPUCPU每次访问内存时进行重定每次访问内存时进行重定位,这种定位方法需要硬件的位,这种定位方法需要硬件的支持,系统中需设置一个地址支持,系统中需设置一个地址变换机构。变换机构。 7n n优点:内存空间的占有量可以改变,容易实现共享。n n缺点:需硬件支持,成本增加。

9、n n动态重定位是一种允许进程在执行过程中在内存中移动的技术,必须获得硬件地址变换机构的支持。在多任务操作系统中,多个进程在内存中并发执行,进程的创建与撤消,多个进程之间频繁的上下文切换,其内存分配呈现动态性和随机性。静态重定位仅适应于连续分配,不能满足多任务操作系统动态性和随机性的要求,因此多任务操作系统存储管理适合采用离散分配,必须采用动态重定位。84.2 分区式存储管理n n内存分配方式可分为连续分配方式和离散分配方式,本节将讨论连续分配方式。分区式存储管理是连续分配方式,为一个进程分配一个连续的存储空间。分区式存储管理支持多道程序系统和分时系统,但内存分配存在不可利用的内存空间,即碎片

10、问题。碎片一般可分为内碎片和外碎片。前者是指分区内不可利用的内存空间,后者是指分区之间难以利用的小空闲分区。内碎片和外碎片都可以降低内存的利用率,但外碎片对系统的危害更大。关于碎片问题将在各种内存分配方式中详细讨论。9单一连续分配n n单一连续分配内存分配优缺点单一连续分配内存分配优缺点如下:如下:n n优点:实现简单,不需要复杂优点:实现简单,不需要复杂的软、硬件支持。的软、硬件支持。n n缺点:存在内碎片问题。资源缺点:存在内碎片问题。资源利用率低,由于存储资源利用利用率低,由于存储资源利用率低而造成其他资源利用率低率低而造成其他资源利用率低(如(如CPUCPU、外设等),特别是、外设等)

11、,特别是不允许多个进程并发运行,这不允许多个进程并发运行,这是不容忽视的缺点。是不容忽视的缺点。CP/MCP/M和和DOS2DOS20 0以下的版本就是采用以下的版本就是采用此种方式。此种方式。 10固定分区分配n n固定分区固定分区(fixed partitioning)(fixed partitioning)也叫静也叫静态分区,固定分区存储管理是实现多态分区,固定分区存储管理是实现多道程序设计和分时系统的简单存储管道程序设计和分时系统的简单存储管理技术。如图理技术。如图4-54-5所示,固定分区就是所示,固定分区就是预先把内存空间分割成若干个连续区预先把内存空间分割成若干个连续区域,我们称

12、为分区。每个分区的大小域,我们称为分区。每个分区的大小可以相同也可以不同,但分区大小固可以相同也可以不同,但分区大小固定不变,操作系统占用一个分区,其定不变,操作系统占用一个分区,其余每个分区只能存储一个进程,而且余每个分区只能存储一个进程,而且进程也只能在它所驻留的分区中运行。进程也只能在它所驻留的分区中运行。固定分区的优缺点固定分区的优缺点n n优点:易于实现,开销小,内存分配优点:易于实现,开销小,内存分配和回收算法简单,支持多任务。和回收算法简单,支持多任务。n n缺点:存在内碎片问题,造成内存的缺点:存在内碎片问题,造成内存的浪费。分区总数固定,限制了并发执浪费。分区总数固定,限制了

13、并发执行的进程数目。行的进程数目。114.2.3 动态分区n n动态分区分配是根据进程的实际需要动态创建分区,动态分区分配是根据进程的实际需要动态创建分区,为之分配连续的存储空间。分区大小正好适合进程的为之分配连续的存储空间。分区大小正好适合进程的需要,可谓需要,可谓“ “量体裁衣量体裁衣” ”。与固定分区相比较,动态。与固定分区相比较,动态分区的优点是没有内碎片。但却引入了另一种碎片,分区的优点是没有内碎片。但却引入了另一种碎片,即外碎片。即外碎片。n n系统启动后,初始化程序将内存空间分为两个区域:系统启动后,初始化程序将内存空间分为两个区域:系统区和用户区。以后每当有进程申请进入,系统就

14、系统区和用户区。以后每当有进程申请进入,系统就划出一个大小合适的区域给进程。每当一个进程完成划出一个大小合适的区域给进程。每当一个进程完成后,系统就收回该区域。经过一段时间运行,系统就后,系统就收回该区域。经过一段时间运行,系统就产生了多个动态分区。这时动态分区的分区分配方式产生了多个动态分区。这时动态分区的分区分配方式就是寻找某个空闲分区,其大小需大于或等于进程的就是寻找某个空闲分区,其大小需大于或等于进程的要求。若是大于进程要求,则将该分区分割成两个分要求。若是大于进程要求,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为区,其中一个分区为要求的大小并标记为“ “已分配已分配”

15、”,将该分区分配给进程,而另一个分区为余下部分并,将该分区分配给进程,而另一个分区为余下部分并标记为标记为“ “空闲空闲” ”。当进程运行完成时,回收进程释放。当进程运行完成时,回收进程释放分区时要考虑一个重要问题,就是将相邻的空闲分区分区时要考虑一个重要问题,就是将相邻的空闲分区合并成一个大的空闲分区。合并成一个大的空闲分区。121空闲分区链表n n每个空闲分区的前后两个单元,放置空闲分区的说明信每个空闲分区的前后两个单元,放置空闲分区的说明信息和指针。如图所示,系统设立一个链首指针息和指针。如图所示,系统设立一个链首指针FreeFree,指,指向第一个空闲分区。空闲分区排列需按照一定的规律

16、向第一个空闲分区。空闲分区排列需按照一定的规律(如按大小、按地址),分配进程可以依照空闲分区链(如按大小、按地址),分配进程可以依照空闲分区链表,来查找适合的空闲分区进行分配。表,来查找适合的空闲分区进行分配。132.动态分区的分配算法n n首次适应算法首次适应算法n n首次适应算法的空闲链是对空闲分区按照地址从低到高的顺序排首次适应算法的空闲链是对空闲分区按照地址从低到高的顺序排列起来。为进程选择分区时总是按地址从低到高搜索,只要找到列起来。为进程选择分区时总是按地址从低到高搜索,只要找到可以容纳该进程的空闲区,就把该空闲区切割出进程大小,分配可以容纳该进程的空闲区,就把该空闲区切割出进程大

17、小,分配给该进程,余下的空闲分区仍留在空闲链中。若从链首直至链尾给该进程,余下的空闲分区仍留在空闲链中。若从链首直至链尾都不能找到一个能满足要求的分区,则此次内存分配失败返回。都不能找到一个能满足要求的分区,则此次内存分配失败返回。n n其缺点是低址部分不断被划分,会留下许多难以利用的、很小的其缺点是低址部分不断被划分,会留下许多难以利用的、很小的空闲分区(即碎片),而每次查找又都是从低址部分开始,这无空闲分区(即碎片),而每次查找又都是从低址部分开始,这无疑会增加查找可用空闲分区链时的开销。疑会增加查找可用空闲分区链时的开销。 14n n循环首次适应算法循环首次适应算法n n循环首次适应算法

18、的空闲链是对空闲分区按照地址从低循环首次适应算法的空闲链是对空闲分区按照地址从低到高的顺序排列起来(同上)。每次分区时,总是从上到高的顺序排列起来(同上)。每次分区时,总是从上次查找结束的地方开始,只要找到一个足够大的空闲区,次查找结束的地方开始,只要找到一个足够大的空闲区,就把该空闲区切割出进程大小,分配给该进程,余下的就把该空闲区切割出进程大小,分配给该进程,余下的空闲分区仍留在空闲链中。空闲分区仍留在空闲链中。n n该算法能使内存中的空闲分区分布得更均匀,从而减少该算法能使内存中的空闲分区分布得更均匀,从而减少了查找空闲分区时的开销,但这样会缺乏大的空闲分区。了查找空闲分区时的开销,但这

19、样会缺乏大的空闲分区。15n n最佳适应算法最佳适应算法n n最佳适应算法的空闲链是按空闲区从小到大顺序最佳适应算法的空闲链是按空闲区从小到大顺序排列。为进程选择分区时总是寻找其大小最接近排列。为进程选择分区时总是寻找其大小最接近进程所要求的存储区域。所谓进程所要求的存储区域。所谓“ “最佳最佳” ”是指每次是指每次为进程分配内存时,总是把能满足要求、又是最为进程分配内存时,总是把能满足要求、又是最小的空闲分区分配给进程,避免小的空闲分区分配给进程,避免“ “大材小用大材小用” ”。 n n因为每次分配后所切割下来的剩余部分总是最小因为每次分配后所切割下来的剩余部分总是最小的,这样将加速碎片的

20、形成。的,这样将加速碎片的形成。16n n最差适应算法最差适应算法n n最差适应算法的空闲链是按空闲区从大到小顺序排列。最差适应算法的空闲链是按空闲区从大到小顺序排列。与最佳适应法相反,它为进程选择存储区时,总是寻找与最佳适应法相反,它为进程选择存储区时,总是寻找最大的空白区。最差适应算法可以延缓小空闲区的形成,最大的空白区。最差适应算法可以延缓小空闲区的形成,但是无法保留大空闲区。这给以后到达尺寸大的进程分但是无法保留大空闲区。这给以后到达尺寸大的进程分配内存空间带来了困难。配内存空间带来了困难。n n内存紧缩内存紧缩(compaction)(compaction)技术技术 173动态分区内

21、存的分配与回收。n n规定不再切割尺寸规定不再切割尺寸大小为大小为sizesize。从空闲。从空闲分区链表中找到所分区链表中找到所需大小的分区。设需大小的分区。设进程请求的尺寸大进程请求的尺寸大小为小为u.sizeu.size,空闲分,空闲分区的大小可表示为区的大小可表示为m.sizem.size。若。若m.size-m.size-u.sizesizeu.sizesize,说明多,说明多余部分太小,可不余部分太小,可不再切割,将整个分再切割,将整个分区分配给进程;区分配给进程; 18n n内存回收内存回收 n n情况一:前邻空闲区,回收区与插入点的情况一:前邻空闲区,回收区与插入点的前一个空闲

22、区前一个空闲区F1F1相邻接。此时应将回收区相邻接。此时应将回收区与插入点的前一分区合并,不必为回收分与插入点的前一分区合并,不必为回收分区分配新表项,而只需修改其前一分区区分配新表项,而只需修改其前一分区Fl Fl的大小,大小为两者之和。的大小,大小为两者之和。n n情况二:前后邻空闲区,回收区同时与插情况二:前后邻空闲区,回收区同时与插入点的前空闲区入点的前空闲区F1F1和后空闲区和后空闲区F2F2两个空闲两个空闲区邻接。此时将三个分区合并,使用前空区邻接。此时将三个分区合并,使用前空闲区闲区F1F1的首址作为新空闲区的首址,大小的首址作为新空闲区的首址,大小为三者之和,取消为三者之和,取

23、消F2F2的表项。的表项。n n情况三:后邻空闲区,回收分区与插入点情况三:后邻空闲区,回收分区与插入点的后一空闲区的后一空闲区F2F2相邻接。此时也可将两分相邻接。此时也可将两分区合并,形成新的空闲分区,用回收区的区合并,形成新的空闲分区,用回收区的首址作为新空闲区的首址,大小为两者之首址作为新空闲区的首址,大小为两者之和。和。n n情况四:前后不邻接空闲区,回收区不与情况四:前后不邻接空闲区,回收区不与空闲区邻接。这时应为回收区单独建立一空闲区邻接。这时应为回收区单独建立一新表项,填写回收区的首址和大小,并根新表项,填写回收区的首址和大小,并根据其首址插入到空闲链中的适当位置。据其首址插入

24、到空闲链中的适当位置。194.2.6 伙伴系统n n其实现原理如下:其实现原理如下:n n一个伙伴系统内存的用户可用空间为一个伙伴系统内存的用户可用空间为2 2U U。进程申请存储空间时,。进程申请存储空间时,系统总是为其分配大小为系统总是为其分配大小为2 2I I的一个空闲分区。其中的一个空闲分区。其中SIUSIU,2S2S是是系统允许的最小分区尺寸。在实际操作系统中,最小分区尺寸一系统允许的最小分区尺寸。在实际操作系统中,最小分区尺寸一般为般为2 21212。n n如果进程申请的存储空间大小为如果进程申请的存储空间大小为K K,且,且2 2I-1I-1K2K2I I,则将整个,则将整个2

25、2I I大大小的分区分配给该进程;否则,该分区被分割成两个大小相等的小的分区分配给该进程;否则,该分区被分割成两个大小相等的伙伴分区,大小为伙伴分区,大小为2 2I-1I-1;再判断;再判断K K是否满足条件:是否满足条件:2 2I-2I-2K2K2I-1I-1,若,若满足条件,则将两个伙伴中的任何一个分配给该进程。否则,将满足条件,则将两个伙伴中的任何一个分配给该进程。否则,将其中一个伙伴又分成两个大小相等的伙伴分区;此过程一直继续其中一个伙伴又分成两个大小相等的伙伴分区;此过程一直继续进行,直到产生的分区满足条件进行,直到产生的分区满足条件I-JSI-JS并并2 2I-J-1I-J-1K2

26、K2I-JI-J,将,将2 2I-JI-J大小大小的分区分配给该进程;当的分区分配给该进程;当I-J-1SI-J-1S时,系统不再分割成两个大小时,系统不再分割成两个大小相等的伙伴分区,将相等的伙伴分区,将2 2S S大小的分区分配给该进程。大小的分区分配给该进程。n n当进程执行完毕,释放一个尺寸为当进程执行完毕,释放一个尺寸为2I2I的分区时,系统用下面的算的分区时,系统用下面的算法回收该分区。法回收该分区。n n如果被回收空闲分区没有空闲伙伴分区,那么保留该分区为一如果被回收空闲分区没有空闲伙伴分区,那么保留该分区为一个独立的空闲分区,否则执行个独立的空闲分区,否则执行;n n合并回收分

27、区及其伙伴分区,从而得到一个尺寸(合并回收分区及其伙伴分区,从而得到一个尺寸(2I+12I+1)更大)更大的回收空闲分区,转移到的回收空闲分区,转移到; 20一个伙伴系统内存分配与回收的例子 21n n伙伴系统克服了固定分区和动态分区存储管理技术的缺陷。但是伙伴系统存在一个问题,即内存空间需要不断地进行分裂和合并,频繁的伙伴分区合并操作会浪费很多时间。一种直接的解决方法是延缓合并,不是在伙伴回收时进行合并,而是在必要时才进行伙伴合并。n n在现代操作系统中,更多地采用分页或分段存储管理技术,以及虚拟存储技术,但伙伴系统在一些操作系统中仍然是一种有效的存储管理方法。随着内存技术的发展,内存容量的

28、不断扩大,伙伴系统作为存储分配的一种合理有效技术将得到进一步发展,比较典型的技术是Linux系统采用的伙伴堆算法,即伙伴系统和分页存储管理技术相结合,将在本书的Linux系统中讨论。224.3 分页存储管理方式n n分页存储管理允许进程的存储空间是离散的,把进程逻辑地址空间与实际存储空间分离,增加存储管理的灵活性。将一个进程分散存储到许多不连续的空间,就可以避免内存碎片。根据分配时所采用的基本单位的不同,可将离散分配方式分为以下三种:分页存储管理、分段存储管理和段页式存储管理,其中段页式存储管理是前两种管理方法结合的产物。234.3.1 页与页帧n n在分页存储管理方式中,将一个进程的逻辑地址

29、空间分成若干个大小相等的片,称为页(page)或页面。每页从0开始依次编号称为页号(page number)。相应地,内存空间也分成与页相同大小的若干个存储块,称为页帧(page frame)或物理块。每帧从0开始依次编号称为帧号或块号。页和帧为分页存储管理进行分配内存的基本单位。由于进程的最后一页经常装不满一块,而形成不可利用的碎片,称为页内碎片。n n通常页的大小是2的幂,即在512B8KB之间。随着内存技术的发展,容量的不断增大,页的大小也应该适度增大为佳。244.3.2 分页存储管理的实现n n1 1分页存储管理的数据结构分页存储管理的数据结构n n页表:如图所示,为了便于找页表:如图

30、所示,为了便于找到进程的每个页号对应的内存帧到进程的每个页号对应的内存帧号,系统为每个进程建立一张页号,系统为每个进程建立一张页面映象表,简称页表。页表用于面映象表,简称页表。页表用于完成进程地址空间的逻辑页号到完成进程地址空间的逻辑页号到存储空间物理帧号的映射。系统存储空间物理帧号的映射。系统为每一个进程建立一个页表,一为每一个进程建立一个页表,一个页号对应一个帧号。页表的表个页号对应一个帧号。页表的表项也称为项也称为页描述子页描述子,一般包括:,一般包括:页号、帧号、权限等。页号、帧号、权限等。n n物理页帧表:整个系统有一个物理页帧表:整个系统有一个物理页帧表,描述物理内存空间物理页帧表

31、,描述物理内存空间的分配使用状况,其数据结构可的分配使用状况,其数据结构可采用位示图和空闲页帧链表。采用位示图和空闲页帧链表。25n n2分页存储管理的实现n n分页存储管理可谓“见缝插针”,解决了外碎片问题,具体实现技术如下:n n逻辑地址空间分页,将用户进程的逻辑地址空间分成若干大小相等的页。n n内存存储空间分帧,将内存的用户区划分成与页大小相同的页帧。n n内存分配原则,以页帧为单位来分配内存,将进程若干个逻辑上连续的页面装入若干个离散的页帧中,由页表提供进程的页号到存储空间帧号的映射。 n n在分页存储管理中,调度进程运行时,必须将进程的所有页面一次调入内存,若内存中没有足够的物理帧

32、,则进程等待。26n n3 3分页存储管理的地址结构分页存储管理的地址结构n n如果逻辑地址空间为如果逻辑地址空间为2 2mm,页大小为,页大小为2 2n n,那么逻辑地址的,那么逻辑地址的高高m-nm-n位表示页号位表示页号p p,而低,而低n n位表示偏移量位表示偏移量d(offset)d(offset)。如。如图图4-174-17所示,逻辑地址结构为页号所示,逻辑地址结构为页号p|p|偏移量偏移量d d,物理地,物理地址结构为帧号址结构为帧号f| f|偏移量偏移量d d。n n若给定一个逻辑地址空间中的地址为若给定一个逻辑地址空间中的地址为A A,页的大小为,页的大小为L L,则页号则页

33、号p p和偏移量和偏移量d d可按下式求得可按下式求得: :n np=A/Lp=A/Ln nd=A%Ld=A%Ln n例如,其系统的页面大小为例如,其系统的页面大小为1KB1KB,设,设A=2180A=2180,则由上式,则由上式可以求得可以求得p p 2 2,d d132132。27分页存储管理的地址变换机构n n页表寄存器存放页表寄存器存放CPUCPU正在处理的进程所对应页表的起始正在处理的进程所对应页表的起始地址和该进程长度(总页数)。在分页存储管理系统中,地址和该进程长度(总页数)。在分页存储管理系统中,其地址变换过程如图所示,其地址变换过程如图所示, ,指令所给出的逻辑地址:,指令所

34、给出的逻辑地址:页号页号p|p|偏移量偏移量d d。CPUCPU中的内存管理单元中的内存管理单元(MMU)(MMU)按页号通按页号通过查找页表得帧号,形成物理地址:帧号过查找页表得帧号,形成物理地址:帧号f| f|偏移量偏移量d d。n nCPUCPU每次访问一个在内存中的操作数,需要两次访问内每次访问一个在内存中的操作数,需要两次访问内存。存。 28具有快表的地址变换过程如下:具有快表的地址变换过程如下:CPUCPU给出有效地址后,由地址变换机构自动将页号送入快表,并给出有效地址后,由地址变换机构自动将页号送入快表,并将此页号与快表中的所有关键字(页号)进行比较,而且这种比较将此页号与快表中

35、的所有关键字(页号)进行比较,而且这种比较是同时进行的。若其中有与此页号相匹配的关键字,表示要访问页是同时进行的。若其中有与此页号相匹配的关键字,表示要访问页描述子在快表中。于是可直接读出该页所对应的帧号,则快速形成描述子在快表中。于是可直接读出该页所对应的帧号,则快速形成物理地址。这样就无需访问内存中的页表物理地址。这样就无需访问内存中的页表如果快表中没有记录,即如果快表中没有记录,即TLBTLB失效,从页表中查找所需的页描述失效,从页表中查找所需的页描述子中的帧号,形成物理地址,同时更新快表,把该页描述子及相邻子中的帧号,形成物理地址,同时更新快表,把该页描述子及相邻的页描述子写入快表。的页描述子写入快表。页号在快表(页号在快表(TLBTLB)中被查找到的百分比称为命中率()中被查找到的百分比称为命中率(h h)。)。294.3.4 页表结构n n1.多级页表n n2.哈希页表n n3.反置页表30

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号