计算机操作系统 第5章.ppt
《计算机操作系统 第5章.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统 第5章.ppt(186页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5 5章章 存储管理存储管理5.1 5.1 存储管理的功能存储管理的功能5.2 5.2 分区存储管理分区存储管理5.3 5.3 覆盖与交换技术覆盖与交换技术5.4 5.4 页式管理页式管理5.5 5.5 段式与段页式管理段式与段页式管理5.6 5.6 局部性原理和抖动问题局部性原理和抖动问题习习 题题5.1 5.1 存储管理的功能存储管理的功能存储器是计算机系统的重要资源之一。因为任何程存储器是计算机系统的重要资源之一。因为任何程序和数据以及各种控制用的数据结构都必须占用一序和数据以及各种控制用的数据结构都必须占用一定的存储空间,因此,存储管理直接影响系统性能。定的存储空间,因此,存储管理
2、直接影响系统性能。存储器由内存和外存组成。内存由顺序编址的块组存储器由内存和外存组成。内存由顺序编址的块组成,每块包含相应的物理单元。成,每块包含相应的物理单元。CPU CPU 要通过启动相要通过启动相应的输入输出设备后才能使外存与内存交换信息。应的输入输出设备后才能使外存与内存交换信息。本章主要讨论内存管理问题。主要包括:几种常用本章主要讨论内存管理问题。主要包括:几种常用的内存管理方法、内存的分配和释放算法、虚拟存的内存管理方法、内存的分配和释放算法、虚拟存储器的概念、控制主存和外存之间的数据流动方法、储器的概念、控制主存和外存之间的数据流动方法、地址变换技术和内存数据保护与共享技术等。下
3、面地址变换技术和内存数据保护与共享技术等。下面先介绍存储管理的功能。先介绍存储管理的功能。5.1.1 5.1.1 虚拟存储器虚拟存储器虚拟存储器是存储管理的核心概念。现代计算虚拟存储器是存储管理的核心概念。现代计算机系统的物理存储器都分为内存和外存,内存机系统的物理存储器都分为内存和外存,内存价格比外存价格昂贵,不可能用大容量的内存价格比外存价格昂贵,不可能用大容量的内存存储所有被访问的或不被访问的程序与数据段。存储所有被访问的或不被访问的程序与数据段。而外存尽管访问速度较慢,但价格便宜,适合而外存尽管访问速度较慢,但价格便宜,适合于存放大量信息。这样,存储管理系统把进程于存放大量信息。这样,
4、存储管理系统把进程中那些不经常被访问的程序段和数据放入外存中那些不经常被访问的程序段和数据放入外存中,待需要访问它们时再将它们调入内存。那中,待需要访问它们时再将它们调入内存。那么,对于那些一部分数据和程序段在内存而另么,对于那些一部分数据和程序段在内存而另一部分则在外存的进程,怎样安排它们的地址一部分则在外存的进程,怎样安排它们的地址呢?呢?通常由用户编写的源程序,首先要由编译通常由用户编写的源程序,首先要由编译程序编译成程序编译成CPU CPU 可执行的目标代码。然可执行的目标代码。然后,链接程序把一个进程的不同程序段后,链接程序把一个进程的不同程序段链接起来以完成所要求的功能。链接起来以
5、完成所要求的功能。显然,对于不同的程序段,应具有不同的显然,对于不同的程序段,应具有不同的地址。有两种方法安排这些编译后的目地址。有两种方法安排这些编译后的目标代码的地址。标代码的地址。一种方法是按照物理存储器中的位置赋予实际一种方法是按照物理存储器中的位置赋予实际物理地址。这种方法的好处是物理地址。这种方法的好处是CPU CPU 执行目标代执行目标代码时的执行速度高。但是,由于物理存储器的码时的执行速度高。但是,由于物理存储器的容量限制,能装入内存并发执行的进程数将会容量限制,能装入内存并发执行的进程数将会大大减少,对于某些较大的进程来说,当其所大大减少,对于某些较大的进程来说,当其所要求的
6、总内存容量超过内存容量时将会无法执要求的总内存容量超过内存容量时将会无法执行。另外,由于编译程序必须知道内存的当前行。另外,由于编译程序必须知道内存的当前空闲部分及其地址,并且把一个进程的不同程空闲部分及其地址,并且把一个进程的不同程序段连续地存放起来,因此编译程序将非常复序段连续地存放起来,因此编译程序将非常复杂。杂。另一种方法是编译链接程序把用户源程序编译另一种方法是编译链接程序把用户源程序编译后链接到一个以后链接到一个以0 0地址为始地址的线性或多维地址为始地址的线性或多维虚拟地址空间。这里,链接既可以是在程序执虚拟地址空间。这里,链接既可以是在程序执行以前由链接程序完成的静态链接,也可
7、以是行以前由链接程序完成的静态链接,也可以是在程序执行过程中由于需要而进行的动态链接。在程序执行过程中由于需要而进行的动态链接。而且,每一个进程都拥有这样一个空间(这个而且,每一个进程都拥有这样一个空间(这个空间是一维的还是多维的由存储管理方式决定)空间是一维的还是多维的由存储管理方式决定)。每个指令或数据单元都在这个虚拟空间中拥。每个指令或数据单元都在这个虚拟空间中拥有确定的地址,把这个地址称为虚拟地址有确定的地址,把这个地址称为虚拟地址(virtual addressvirtual address)。显然,进程在该空间的地址排列可以是非连显然,进程在该空间的地址排列可以是非连续的,其实际物
8、理地址由虚拟地址到实际物续的,其实际物理地址由虚拟地址到实际物理地址的地址变换机构变换得到。由源程序理地址的地址变换机构变换得到。由源程序到实际存放该程序指令或数据的内存物理位到实际存放该程序指令或数据的内存物理位置的变换如图所示。置的变换如图所示。地址变换与物理存储器图地址变换与物理存储器图将进程中的目标代码。数据等的虚拟地址组成将进程中的目标代码。数据等的虚拟地址组成的虚拟空间称为虚拟存储器的虚拟空间称为虚拟存储器。虚拟存储器不考虚拟存储器不考虑物理存储器的大小和信息存放的实际位置,虑物理存储器的大小和信息存放的实际位置,只规定每个进程中互相关连的信息的相对位置。只规定每个进程中互相关连的
9、信息的相对位置。与实际物理存储器只有一个(单机系统中),与实际物理存储器只有一个(单机系统中),且被所有进程共享不一样,每个进程都拥有自且被所有进程共享不一样,每个进程都拥有自己的虚拟存储器,且虚拟存储器的容量是由计己的虚拟存储器,且虚拟存储器的容量是由计算机的地址结构和寻址方式确定的。例如,直算机的地址结构和寻址方式确定的。例如,直接寻址时,如果接寻址时,如果CPU CPU 的有效地址长度为的有效地址长度为1616位,位,则其寻址范围为则其寻址范围为 0 0到到64K64K。上图中的编译和链接主要是语言系统的上图中的编译和链接主要是语言系统的设计问题。不过,由虚拟存储器到物理设计问题。不过,
10、由虚拟存储器到物理存储器的变换是操作系统所必须解决的存储器的变换是操作系统所必须解决的问题。问题。要实现这个变换,必须要有相应的硬件要实现这个变换,必须要有相应的硬件支持,并使这些硬件能够完成统一管理支持,并使这些硬件能够完成统一管理内存和外存之间数据和程序段自动交换内存和外存之间数据和程序段自动交换的虚拟存储器功能。的虚拟存储器功能。即:由于每个进程都拥有自己的虚存,且每即:由于每个进程都拥有自己的虚存,且每个虚存的大小不受实际物理存储器的限制,个虚存的大小不受实际物理存储器的限制,因此,系统不可能提供足够大的内存来存放因此,系统不可能提供足够大的内存来存放所有进程的内容。内存中只能存放那些
11、经常所有进程的内容。内存中只能存放那些经常被访问的程序和数据段等。这就需要有相当被访问的程序和数据段等。这就需要有相当大的外部存储器,以存储那些不经常被访问大的外部存储器,以存储那些不经常被访问或在某一段时间内不会被访问的信息。待到或在某一段时间内不会被访问的信息。待到进程执行过程中需要这些信息时,再从外存进程执行过程中需要这些信息时,再从外存中自动调入主存。中自动调入主存。5.1.2 5.1.2 地址变换地址变换内存地址的集合称为内存空间或物理地址空间。内存地址的集合称为内存空间或物理地址空间。内存中,每一个存储单元都与相应的称为内存内存中,每一个存储单元都与相应的称为内存地址的编号相对应。
12、显然,内存空间是一维线地址的编号相对应。显然,内存空间是一维线性空间。性空间。怎样把几个虚存的一维线性空间或多维线性空怎样把几个虚存的一维线性空间或多维线性空间变换到内存的唯一的一维物理线性空间呢?间变换到内存的唯一的一维物理线性空间呢?这涉及到两个问题。一个是虚拟空间的划分这涉及到两个问题。一个是虚拟空间的划分问题。例如进程的正文段和数据段应该放置问题。例如进程的正文段和数据段应该放置在虚拟空间的什么地方。虚拟空间的划分使在虚拟空间的什么地方。虚拟空间的划分使得编译链接程序可以把不同的程序模块(它得编译链接程序可以把不同的程序模块(它们可能是用不同的高级语言编写的),链接们可能是用不同的高级
13、语言编写的),链接到一个统一的虚拟空间中去。到一个统一的虚拟空间中去。虚拟空间的划分与计算机系统结构有关。虚拟空间的划分与计算机系统结构有关。VAX-11VAX-11机的虚拟空间结构图、机的虚拟空间结构图、虚拟空间的划分虚拟空间的划分第二个问题是把虚拟空间中已链接和划分好第二个问题是把虚拟空间中已链接和划分好的内容装入内存,并将虚拟地址映射为内存的内容装入内存,并将虚拟地址映射为内存地址的问题。称之为地址重定位或地址映射。地址的问题。称之为地址重定位或地址映射。地址映射就是要建立虚拟地址与内存地址的地址映射就是要建立虚拟地址与内存地址的关系。实现地址重定位或地址映射的方法有关系。实现地址重定位
14、或地址映射的方法有两种:两种:静态地址重定位静态地址重定位动态地址重定位。动态地址重定位。1.1.静态地址重定位静态地址重定位静态地址重定位(静态地址重定位(static address static address relocationrelocation)是在虚拟空间程序执行之前由装配是在虚拟空间程序执行之前由装配程序完成地址映射工作。假定分配给程序的内存程序完成地址映射工作。假定分配给程序的内存首地址为首地址为BABA,且程序的虚拟空间地址为,且程序的虚拟空间地址为V V,程序程序的内存地址空间为的内存地址空间为M M,虚地址空间到物理内存地虚地址空间到物理内存地址空间的映射为址空间的映
15、射为f f;则则 f:(V)Mf:(V)M即:即:M=f(V)=BA+V M=f(V)=BA+V 从而完成程序中所有地址部从而完成程序中所有地址部分的修改,以保证分的修改,以保证CPUCPU的正确执行。静态重定位的正确执行。静态重定位的优点是不需要硬件支持。但是,使用静态重定的优点是不需要硬件支持。但是,使用静态重定位方法进行地址变换无法实现虚拟存储器。静态位方法进行地址变换无法实现虚拟存储器。静态重定位的另一个缺点是必须占用连续的内存空间,重定位的另一个缺点是必须占用连续的内存空间,这就难以做到程序和数据的共享。这就难以做到程序和数据的共享。2.2.动态地址重定位动态地址重定位动态地址重定位
16、(动态地址重定位(dynamic address relocationdynamic address relocation)是在程序执行过程中,在是在程序执行过程中,在CPUCPU访问内存之前,将要访问内存之前,将要访问的程序或数据地址转换成内存地址。动态重定访问的程序或数据地址转换成内存地址。动态重定位依靠硬件地址变换机构完成。位依靠硬件地址变换机构完成。地址重定位机构需要一个地址重定位机构需要一个(或多个或多个)基地址寄存器基地址寄存器BRBR和一个和一个(或多个或多个)程序虚拟地址寄存器程序虚拟地址寄存器VRVR。指令或数指令或数据的内存地址据的内存地址MAMA与虚拟地址的关系为与虚拟地
17、址的关系为:MA=(BR)+(VR)MA=(BR)+(VR)这里,这里,(BR)(BR)与与(VR)(VR)分别表示寄存器分别表示寄存器BRBR与与VRVR中的内容。中的内容。动态重定位过程如下图所示。动态重定位过程如下图所示。动态地址重定位图动态地址重定位图其具体过程是其具体过程是:(1)(1)设置基地址寄存器设置基地址寄存器BRBR,虚拟地址寄存器虚拟地址寄存器VRVR。(2)(2)将程序段装入内存,且将其占用的内存区将程序段装入内存,且将其占用的内存区首地址送首地址送BRBR中。本例中中。本例中 (BR)=1000(BR)=1000。(3)(3)在程序执行过程中,将所要访问的虚拟在程序执
18、行过程中,将所要访问的虚拟地址送入地址送入VRVR中,本例中执行中,本例中执行LOAD A 500LOAD A 500语句时语句时 ,将所要访问的虚拟地址,将所要访问的虚拟地址500500放入放入VRVR中。中。(4)(4)地址变换机构把地址变换机构把VRVR和和BRBR的内容相加,得的内容相加,得到实际访问的物理地址。到实际访问的物理地址。动态重定位的主要优点有动态重定位的主要优点有:(1)(1)可以对内存进行非连续分配(程序段、数可以对内存进行非连续分配(程序段、数据段)。据段)。动态重定位提供了实现虚拟存储器的基础。因动态重定位提供了实现虚拟存储器的基础。因为动态重定位不要求在作业执行前
19、为所有程序为动态重定位不要求在作业执行前为所有程序分配内存,也就是说,可以部分地、动态地分分配内存,也就是说,可以部分地、动态地分配内存。配内存。(3)(3)有利于程序段的共享。有利于程序段的共享。5.1.3 5.1.3 内外存数据传输的控制内外存数据传输的控制要实现内存扩充,在程序执行过程中,内存和要实现内存扩充,在程序执行过程中,内存和外存之间必须经常地交换数据。也就是说,把外存之间必须经常地交换数据。也就是说,把那些即将执行的程序和数据段调入内存,而把那些即将执行的程序和数据段调入内存,而把那些处于等待状态的程序和数据段调出内存。那些处于等待状态的程序和数据段调出内存。最基本的控制办法有
20、两种:最基本的控制办法有两种:一种是用户程序自己控制一种是用户程序自己控制另一种是操作系统控制另一种是操作系统控制用户程序自己控制内外存之间的数据交换的例用户程序自己控制内外存之间的数据交换的例子是覆盖。覆盖技术要求用户清楚地了解程序子是覆盖。覆盖技术要求用户清楚地了解程序的结构,并指定各程序段调入内存的先后次序。的结构,并指定各程序段调入内存的先后次序。覆盖是一种早期的主存扩充技术。使用覆盖技覆盖是一种早期的主存扩充技术。使用覆盖技术,用户负担很大,且程序段的最大长度仍受术,用户负担很大,且程序段的最大长度仍受内存容量限制。因此,覆盖技术不能实现虚拟内存容量限制。因此,覆盖技术不能实现虚拟存
21、储器。存储器。操作系统控制方式又可进一步分为两种:操作系统控制方式又可进一步分为两种:一种是交换一种是交换(swapping)(swapping)方式;方式;另一种是请求调入另一种是请求调入(on demand)(on demand)方式和预调入方式和预调入(on(on prefetchprefetch)方式;方式;交换方式由操作系统把那些在内存中处于等待状交换方式由操作系统把那些在内存中处于等待状态的进程换出内存,而把那些等待事件已经发生、态的进程换出内存,而把那些等待事件已经发生、处于就绪态的进程换入内存。处于就绪态的进程换入内存。请求调入方式是在程序执行时,如果所要访问的请求调入方式是在
22、程序执行时,如果所要访问的程序段或数据段不在内存中,则操作系统自动地程序段或数据段不在内存中,则操作系统自动地从外存将有关的程序段和数据段调入内存的一种从外存将有关的程序段和数据段调入内存的一种操作系统控制方式。而预调入则是由操作系统预操作系统控制方式。而预调入则是由操作系统预测在不远的将来会访问到的那些程序段和数据段测在不远的将来会访问到的那些程序段和数据段部分,并在它们被访问之前系统选择适当的时机部分,并在它们被访问之前系统选择适当的时机将它们调入内存的一种数据流控制方式。将它们调入内存的一种数据流控制方式。由于交换方式一般不进行部分交换,即每次交由于交换方式一般不进行部分交换,即每次交换
23、都交换那些除去常驻内存部分后的整个进程,换都交换那些除去常驻内存部分后的整个进程,而且,即使能完成部分交换,也不是按照执行而且,即使能完成部分交换,也不是按照执行的需要而交换程序段,只是把受资源限制、暂的需要而交换程序段,只是把受资源限制、暂时不能执行的程序段换出内存。因此,虽然交时不能执行的程序段换出内存。因此,虽然交换方式也能完成内存扩充任务,但它仍未实现换方式也能完成内存扩充任务,但它仍未实现那种所谓自动覆盖、内存和外存统一管理、进那种所谓自动覆盖、内存和外存统一管理、进程大小不受内存容量限制的虚拟存储器。只有程大小不受内存容量限制的虚拟存储器。只有请求调入方式和预调入方式可以实现进程大
24、小请求调入方式和预调入方式可以实现进程大小不受内存容量限制的虚拟存储器。不受内存容量限制的虚拟存储器。5.1.4 5.1.4 内存的分配与回收内存的分配与回收内存的分配与回收是内存管理的主要功能之一。内存的分配与回收是内存管理的主要功能之一。无论采用哪一种管理和控制方式,能否把外存无论采用哪一种管理和控制方式,能否把外存中的数据和程序调入内存,取决于能否在内存中的数据和程序调入内存,取决于能否在内存中为它们安排合适的位置。因此,存储管理模中为它们安排合适的位置。因此,存储管理模块要为每一个并发执行的进程分配内存空间。块要为每一个并发执行的进程分配内存空间。另外,当进程执行结束之后,存储管理模块
25、又另外,当进程执行结束之后,存储管理模块又要及时回收该进程所占用的内存资源,以便给要及时回收该进程所占用的内存资源,以便给其他进程分配空间。其他进程分配空间。为了有效合理地利用内存,设计内存的分配和为了有效合理地利用内存,设计内存的分配和回收方法时,必须考虑和确定以下几种策略和回收方法时,必须考虑和确定以下几种策略和数据结构数据结构:(1)(1)分配结构:登记内存使用情况,供分配程分配结构:登记内存使用情况,供分配程序使用的表格与链表。例如内存空闲区表、空序使用的表格与链表。例如内存空闲区表、空闲区队列等。闲区队列等。(2)(2)放置策略:确定调入内存的程序和数据放置策略:确定调入内存的程序和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机操作系统 第5章 计算机 操作系统
限制150内