OUC操作系统第四章存储器管理_第1页
OUC操作系统第四章存储器管理_第2页
OUC操作系统第四章存储器管理_第3页
OUC操作系统第四章存储器管理_第4页
OUC操作系统第四章存储器管理_第5页
已阅读5页,还剩156页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第四章第四章 存储器管理存储器管理 4.0 存储器的层次结构存储器的层次结构4.1 程序的装入和链接程序的装入和链接 4.2 连续分配方式连续分配方式 4.3 基本分页存储管理方式基本分页存储管理方式 4.4 基本分段存储管理方式基本分段存储管理方式 4.5 虚拟存储器的基本概念虚拟存储器的基本概念 4.6 请求分页存储管理方式请求分页存储管理方式 4.7 页面置换算法页面置换算法 4.8 请求分段存储管理方式请求分段存储管理方式 2 存储器作为计算机系统的重要组成部分,存储器作为计算机系统的重要组成部分,其容量虽然一直在不断扩大,但内存容量其容量虽然一直在不断扩大,但内存容量仍是计算机硬件

2、资源中最关键而又最紧张仍是计算机硬件资源中最关键而又最紧张的的“瓶颈瓶颈”,始终满足不了现代化软件发,始终满足不了现代化软件发展的需要。展的需要。 因此,存储器仍然是计算机系统中宝贵且因此,存储器仍然是计算机系统中宝贵且紧俏的资源。紧俏的资源。 如何合理而有效地使用它,在很大程度上如何合理而有效地使用它,在很大程度上反映了反映了 OS 的性能,并直接影响到整个计的性能,并直接影响到整个计算机系统性能的发挥。算机系统性能的发挥。3 所以,存储器管理仍是目前研究所以,存储器管理仍是目前研究 OS 的核的核心问题之一。心问题之一。 对外存的管理与对内存的管理有许多相似对外存的管理与对内存的管理有许多

3、相似之处,只是两者用途不同,外存主要用来之处,只是两者用途不同,外存主要用来存储文件,故而对外存的管理放在文件管存储文件,故而对外存的管理放在文件管理一章中介绍,存储器管理讨论的对象是理一章中介绍,存储器管理讨论的对象是内存。内存。 对内存的管理和有效使用是今天对内存的管理和有效使用是今天OS 十分重十分重要的内容。要的内容。 OS之间最明显的区别特征之一,往往是所之间最明显的区别特征之一,往往是所应用的内存管理方法不同。应用的内存管理方法不同。4高速缓存高速缓存内存内存外存外存CPU可访可访高速缓存高速缓存Cache:K/M字节、高速、昂贵、易变的字节、高速、昂贵、易变的内存内存RAM: M

4、/G字节、中速、中等价格、易变的字节、中速、中等价格、易变的 外存外存Disk:G/T字节、低速、价廉、不易变的字节、低速、价廉、不易变的为能更多的存放并更快地处理用户信息,目前许为能更多的存放并更快地处理用户信息,目前许多计算机把存储器分为三级。多计算机把存储器分为三级。4.0 存储器的层次结构存储器的层次结构5为了便于对内存进行有效管理,通常把内存分成若为了便于对内存进行有效管理,通常把内存分成若干个区域。干个区域。即使在最简单的单用户即使在最简单的单用户OS中,至少也要把它分成两中,至少也要把它分成两个区域个区域 一个存放系统软件,如一个存放系统软件,如OS本身;本身; 另一个存放用户任

5、务另一个存放用户任务。在多用户在多用户OS中,为了提高系统利用率,需要将内存中,为了提高系统利用率,需要将内存划分成更多区域,以便同时存放多个用户任务。划分成更多区域,以便同时存放多个用户任务。这就引起了内存分配问题及由此产生的其它问题。这就引起了内存分配问题及由此产生的其它问题。6存储器管理的主要目的和功能存储器管理的主要目的和功能1. 内存的分配和管理内存的分配和管理 记住每个存储区域的状态记住每个存储区域的状态哪些是已分配的,哪些是还未分配的哪些是已分配的,哪些是还未分配的 实施分配实施分配在系统程序或用户提出申请时,按所需的在系统程序或用户提出申请时,按所需的数量进行分配,并修改相应的

6、分配记录数量进行分配,并修改相应的分配记录 回收存储区域回收存储区域接受系统或用户释放的存储区域,并相应接受系统或用户释放的存储区域,并相应地修改分配记录地修改分配记录72. 提高内存利用率提高内存利用率使多道程序能共享内存使多道程序能共享内存3. “扩充扩充”内存容量内存容量利用利用虚拟存储器虚拟存储器等技术为用户提供比内存更等技术为用户提供比内存更大的存储空间。大的存储空间。4. 存储保护存储保护确保各进程都在所分配的存储区内运行,互确保各进程都在所分配的存储区内运行,互不干扰。不干扰。以防止某进程由于发生错误而破坏其它进程,以防止某进程由于发生错误而破坏其它进程,特别需要防止破坏系统进程

7、。特别需要防止破坏系统进程。这个问题必须由硬件提供保护功能,并由软这个问题必须由硬件提供保护功能,并由软件配合实现。件配合实现。84.1 程序的装入和链接程序的装入和链接在多道程序环境下,创建进程的第一件事情就是在多道程序环境下,创建进程的第一件事情就是要把程序装入内存。要把程序装入内存。如何将一个源程序变为一个可执行程序,通常要如何将一个源程序变为一个可执行程序,通常要经过下列几步:经过下列几步: 编译:编译:编译程序将源程序翻译成机器代码。编编译程序将源程序翻译成机器代码。编译程序接受源程序,生成译程序接受源程序,生成目标模块目标模块 链接:链接:目标模块是纯二进制机器代码,但通常目标模块

8、是纯二进制机器代码,但通常不能直接执行。首先必须将目标模块们链接成不能直接执行。首先必须将目标模块们链接成装入模块装入模块,才能执行,才能执行 装入:装入:由装入程序将装入模块装入内存并执行由装入程序将装入模块装入内存并执行9目标模块VC中的目标模块中的目标模块10对用户程序的处理步骤 源程序编译程序目标模块链接程序装入模块进程进程系统源函数库私有源函数库私有目标库系统目标库装入程序装入内存114.1.1 程序的装入程序的装入根据存储空间的分配方式,将一个装入模根据存储空间的分配方式,将一个装入模块装入内存时,可采用块装入内存时,可采用3种方式种方式 绝对装入方式绝对装入方式 可重定位装入方式

9、可重定位装入方式 动态运行时装入方式动态运行时装入方式12 绝对装入方式绝对装入方式程序中使用程序中使用绝对地址绝对地址,既可在编译时给出,也,既可在编译时给出,也可由程序员直接赋予。可由程序员直接赋予。由程序员直接给出时,要求程序员熟悉内存的由程序员直接给出时,要求程序员熟悉内存的使用情况。一旦程序或数据被修改后,可能要使用情况。一旦程序或数据被修改后,可能要改变程序中的所有地址。改变程序中的所有地址。因此,通常是在程序中采用符号地址因此,通常是在程序中采用符号地址(变量变量),然后在编译时,再将这些符号地址转换为绝对然后在编译时,再将这些符号地址转换为绝对地址。地址。绝对装入只能将目标模块

10、装入指定的内存位置,绝对装入只能将目标模块装入指定的内存位置,多道程序下不可能知道它被放在什么地方执行,多道程序下不可能知道它被放在什么地方执行,所以绝对装入只适用于单道程序环境下所以绝对装入只适用于单道程序环境下13可重定位装入方式可重定位装入方式重定位的概念重定位的概念在装入时对程序中的指令和数据进行修改的过程在装入时对程序中的指令和数据进行修改的过程基本方法基本方法目标模块起始地址通常从目标模块起始地址通常从0开始,其他地址都是相开始,其他地址都是相对于对于0开始的。开始的。模块装入内存后,再根据具体的起始位置,修改模块装入内存后,再根据具体的起始位置,修改模块中的地址模块中的地址特点特

11、点装入时一次性完成修改地址的工作装入时一次性完成修改地址的工作缺点缺点虽然程序可装入内存的任何位置,但不允许程序虽然程序可装入内存的任何位置,但不允许程序运行时在内存中移动位置运行时在内存中移动位置LOAD 1, 1250014 动态运行时装入方式动态运行时装入方式基本方法基本方法装入模块装入内存后,并不把其中的相对装入模块装入内存后,并不把其中的相对地址转换为绝对地址地址转换为绝对地址而是在执行代码时,再进行地址转换而是在执行代码时,再进行地址转换因此,因此, 装入内存后的所有地址仍是相对地装入内存后的所有地址仍是相对地址址硬件支持硬件支持由于需要经常修改地址,为不影响速度,由于需要经常修改

12、地址,为不影响速度,需需重定位寄存器重定位寄存器的支持的支持154.1.2 程序的链接程序的链接功能功能将编译后所得到的目标模块以及它们所需将编译后所得到的目标模块以及它们所需要的库函数,装配成一个完整的装入模块。要的库函数,装配成一个完整的装入模块。链接的方法链接的方法 静态链接静态链接 装入时动态链接装入时动态链接 运行时动态链接运行时动态链接16 静态链接静态链接基本思想基本思想事先将几个目标模块链接成一个装入模块,事先将几个目标模块链接成一个装入模块,以后不再拆开以后不再拆开需解决两个问题需解决两个问题 对相对地址进行修改对相对地址进行修改 修改各模块内的相对地址修改各模块内的相对地址

13、 变换外部调用符号变换外部调用符号 变成相对地址变成相对地址这种先进行链接所形成的一个完整的装入这种先进行链接所形成的一个完整的装入模块,又称为模块,又称为可执行文件可执行文件模块ACALL B;Return;0L-1模块BCALL C;Return;0M-1模块C Return;0N-10L-1模块AJSR “L”Return;LL+M-1模块BJSR “L+M”;Return;模块C Return;L+ML+M+N-117 装入时动态链接装入时动态链接基本思想基本思想目标模块在装入内存时,边装入,边链接目标模块在装入内存时,边装入,边链接即在装入一个目标模块时,若发现需要另一个即在装入一个

14、目标模块时,若发现需要另一个目标模块时,装入程序便去找出相应的目标模目标模块时,装入程序便去找出相应的目标模块,并将之装入内存块,并将之装入内存同时,按照同时,按照“静态链接静态链接”的方法,修改目标模的方法,修改目标模块中的相对地址块中的相对地址优点优点 便于修改和更新便于修改和更新目标模块是分开的,修改时不必将装入模目标模块是分开的,修改时不必将装入模块拆开,非常方便块拆开,非常方便 便于实现共享目标模块便于实现共享目标模块一个目标模块可链接到多个装入模块中,一个目标模块可链接到多个装入模块中,从而实现多个程序对该模块的共享从而实现多个程序对该模块的共享18SEQAMSUB 1MAIN目标

15、模块库当前生成的目标模块目标模块库MAIN .call SEQAM.call SUB 1. 查找查找链接链接读入读入查找查找链接链接装入模块SEQAM RETURNSUB 1 RETURN19缺点缺点 装入模块的结构仍是静态的,表现在:装入模块的结构仍是静态的,表现在:进程(程序)在整个执行期间,装入进程(程序)在整个执行期间,装入模块是不改变的模块是不改变的每次运行时的装入模块是相同的每次运行时的装入模块是相同的 事先无法知道本次要运行哪些模块,只事先无法知道本次要运行哪些模块,只能将所有可能要运行的模块全部链接在能将所有可能要运行的模块全部链接在一起,而实际上往往有些目标模块根本一起,而实

16、际上往往有些目标模块根本不会运行不会运行20 运行时动态链接运行时动态链接近几年流行,针对近几年流行,针对“装入时动态链接装入时动态链接”的一的一种改进种改进基本思想基本思想执行过程中,发现一个需要的目标模块尚执行过程中,发现一个需要的目标模块尚未装入内存,立即由未装入内存,立即由OS将它装入内存,并将它装入内存,并链接到调用者模块上链接到调用者模块上因此,在执行过程中未被用到的目标模块,因此,在执行过程中未被用到的目标模块,都不会被调入内存和链接都不会被调入内存和链接这样,可加快装入过程,节省大量的内存这样,可加快装入过程,节省大量的内存空间空间214.2 连续分配方式连续分配方式连续分配的

17、概念连续分配的概念为为 一个用户程序分配一个连续的内存空间一个用户程序分配一个连续的内存空间广泛应用于广泛应用于6070年代的年代的OS中,至今仍中,至今仍有使用有使用方式方式 单一连续分配单一连续分配 固定分区分配固定分区分配 动态分区分配动态分区分配 动态重定位分区分配动态重定位分区分配224.2.1 单一连续分配单一连续分配基本思想基本思想把内存分为把内存分为系统区系统区和和用户区用户区两部分两部分 系统区系统区 仅提供给仅提供给OS使用使用 用户区用户区 除系统区以外的全部内存空间,供用除系统区以外的全部内存空间,供用户使用户使用23 系统区系统区 驻留驻留OS 用户区用户区 用户程序

18、用户程序(未用部分)(未用部分) 0512K(a)系统区系统区 系统中断向量等系统中断向量等用户区用户区 用户程序用户程序 (未用部分)(未用部分)系统区系统区 驻留驻留OS本身本身 0 512512K(b) 0 15K490K512K系统区系统区 驻留驻留OS(1)用户区用户区 用户程序用户程序 (未用部分)(未用部分)系统区系统区 驻留驻留OS(2)(c) OS既可放在内存的低址部分,如图既可放在内存的低址部分,如图(a);也可放在内存的;也可放在内存的高址部分,如图高址部分,如图(b);甚至可以放在内存的两端,如图;甚至可以放在内存的两端,如图(c) 通常放在低址部分通常放在低址部分24

19、000020KB100KB256KBOS用户程序用户程序需需80KB存储空间存储空间空闲区空闲区每次只允许装入一个程序每次只允许装入一个程序25 单一连续分配的特点单一连续分配的特点 把整个用户区分配给一个程序使用把整个用户区分配给一个程序使用 实际上,用户区又被分为实际上,用户区又被分为“使用区使用区”和和“空空闲区闲区” 由于任何时刻用户区中只有一个程序运行,由于任何时刻用户区中只有一个程序运行,因此只适用于单道因此只适用于单道OS 单一连续分配的缺点单一连续分配的缺点 由于每次只能有一个程序进入内存,故整个由于每次只能有一个程序进入内存,故整个系统的工作效率不高,资源利用率低系统的工作效

20、率不高,资源利用率低 若程序比用户区大,那么它就无法运行。即若程序比用户区大,那么它就无法运行。即大任务无法在小内存上运行大任务无法在小内存上运行264.2.2 固定分区分配固定分区分配 实现多道系统存储器管理的一个最早的想法实现多道系统存储器管理的一个最早的想法 基本思想基本思想 把用户区划分成若干个把用户区划分成若干个大小固定大小固定的分区的分区 每个分区只放一个进程每个分区只放一个进程 因此,有几个分区就允许几个进程并发因此,有几个分区就允许几个进程并发 当一个分区空闲时,可选择一个新的进程进入当一个分区空闲时,可选择一个新的进程进入那里运行那里运行 由于这些区域是在系统启动时划定的,由

21、于这些区域是在系统启动时划定的,在进程在进程运行过程中,所获得的区域是不能改变的运行过程中,所获得的区域是不能改变的27划分固定分区的方法划分固定分区的方法 分区大小相等分区大小相等方法:方法:所有的分区都大小相等缺点:缺点:缺乏灵活性,程序太小时,内存浪费;太大时,又无法装入应用:应用:控制多个相同的对象 (如工业控制机床、锅炉等),因为它们所需的内存空间是大小相等的 分区大小不等分区大小不等目的:目的:克服“分区大小相等”的缺点方法:方法:把内存划分成多个较小分区、适量中等分区和少量大分区28000020KB28KB44KB76KB140KB256KBOS分区大小不等分区大小不等分区大小相

22、等分区大小相等000020KB40KB60KB80KB100KB120KB.256KBOS.16KB8KB作业作业1 需需14KB32KB64KB作业作业2 需需60KB116KB29 为实现固定分区分配,通常将分区按大小为实现固定分区分配,通常将分区按大小排列,并在排列,并在OS中为之建立一张中为之建立一张分区说明表分区说明表, 指出可用于分配的分区数以及每个分区的指出可用于分配的分区数以及每个分区的大小、起始地址及状态。大小、起始地址及状态。30固固定定分分区区分分配配算算法法流流程程图图申请申请大小大小为为n的分区的分区取分区说明表的取分区说明表的第一项第一项该分区空闲吗?该分区空闲吗?

23、分区大小分区大小 n表结束吗?表结束吗?返回分区号返回分区号置置状态为状态为“已分配已分配”无法分配无法分配取下一项取下一项NYYYNN314.2.3 动态分区分配动态分区分配根据进程的实际需要,动态分配内存空间根据进程的实际需要,动态分配内存空间实现动态分区分配,必须解决实现动态分区分配,必须解决3个问题个问题 数据结构数据结构 分区分配算法分区分配算法 分区的分配和回收分区的分配和回收32 数据结构数据结构空闲分区表空闲分区表设置一张空闲分区表,用于记录每个空闲设置一张空闲分区表,用于记录每个空闲分区的情况分区的情况空闲分区链空闲分区链将所有空闲分区链接成一个双向链表将所有空闲分区链接成一

24、个双向链表前向指针N20N个字节可用后向指针N20状态位分区大小33 分区分配算法分区分配算法系统运行一段时间后,整个内存将出现许系统运行一段时间后,整个内存将出现许多大小不等的区域,有的被进程占用,有多大小不等的区域,有的被进程占用,有的则因进程退出系统而成为空闲分区的则因进程退出系统而成为空闲分区现在假设有一个新进程需进入内存,如何现在假设有一个新进程需进入内存,如何为其选择一个合适的分区?为其选择一个合适的分区?在这种情况下,有在这种情况下,有3种不同的分配算法:种不同的分配算法: 首次适应算法首次适应算法(FF) 循环首次适应算法循环首次适应算法 最佳适应算法最佳适应算法34首次适应算

25、法首次适应算法(FF)基本思想(基本思想(以空闲分区链为例以空闲分区链为例)以以地址递增地址递增次序链接空闲分区次序链接空闲分区从链首开始查找,找到第一个满足请求大从链首开始查找,找到第一个满足请求大小的分区,从中划出请求大小的空间,余小的分区,从中划出请求大小的空间,余下的仍留在链中(一般从低地址开始划分)下的仍留在链中(一般从低地址开始划分)优点优点保留了大分区保留了大分区缺点缺点低地址不断被划分,会留下很多难以利用低地址不断被划分,会留下很多难以利用的小空闲分区,下次查找会浪费时间的小空闲分区,下次查找会浪费时间35有有4块空闲分区块空闲分区(从低地址从低地址高地址高地址) 来了一个需要

26、来了一个需要19K内存的新进程后的情况?内存的新进程后的情况?指针指针10k90k20k60k41k36 循环首次适应算法循环首次适应算法由由FF算法演变而成算法演变而成基本思想基本思想 从上次找到的空闲分区的下一个空闲分区从上次找到的空闲分区的下一个空闲分区查找查找 需设置起始查找指针,以指示下次从哪开需设置起始查找指针,以指示下次从哪开始查找始查找优点优点 使空闲分区均匀分布使空闲分区均匀分布缺点缺点 缺乏大的空闲分区缺乏大的空闲分区37 最佳适应算法最佳适应算法基本思想基本思想 找能满足分配的最小空闲分区找能满足分配的最小空闲分区 这要求分区按这要求分区按容量递增容量递增顺序排列顺序排列

27、优点优点 避免避免“大材小用大材小用”缺点缺点 每次分割下的空闲分区总是最小的,难以每次分割下的空闲分区总是最小的,难以利用利用38有有4块空闲分区块空闲分区(从小分区从小分区大分区大分区)来了一个需要来了一个需要14K内存的新进程后的情内存的新进程后的情况?况?指针指针5k60k90k20k6k39分区的分配和回收分区的分配和回收涉及动态分区的主要操作有涉及动态分区的主要操作有分配内存分配内存和和回收内存回收内存 分配内存分配内存设进程请求的分区大小:设进程请求的分区大小: u.size每个空闲分区大小:每个空闲分区大小: m.size最小不可分割大小:最小不可分割大小: sizeif m.

28、size u.size 0 = 页号页号0 0 偏移量偏移量0 0物理地址物理地址= =对应块号对应块号* *页大小页大小 + + 偏移量偏移量 = 2 = 2 * * 4K + 0 4K + 0 = 8K = 8K = 8 = 8* *10241024 = 8192 = 8192751111、某、某 OS OS 采用动态分区分配存储管理方法,用户采用动态分区分配存储管理方法,用户区为区为512K512K,且始址为,且始址为0 0。若分配时采用分配空闲区。若分配时采用分配空闲区低地址部分的方案,且初始时用户的低地址部分的方案,且初始时用户的512K512K空间空空间空闲,对下述申请序列:闲,对

29、下述申请序列: 申请申请300K300K,申请,申请100K100K,释放,释放300K300K,申请,申请150K150K,申请申请30K30K,申请,申请40K40K,申请,申请60K60K,释放,释放30K30K回答:回答:(1 1)采用首次适应算法,空闲分区中有哪些空块)采用首次适应算法,空闲分区中有哪些空块(给出始址、大小)?(给出始址、大小)?(2 2)采用最佳适应算法,空闲分区中有哪些空块)采用最佳适应算法,空闲分区中有哪些空块(给出始址、大小)?(给出始址、大小)?(3 3)如再申请)如再申请100K100K,针对(,针对(1 1)和()和(2 2)各有什么)各有什么结果?结果

30、?76首次适应算法:首次适应算法:0512K申请 300K300K100K申请 100K释放 300K申请 150K150K30K申请 30K申请 40K40K申请 60K60K释放 30K空闲区:始址空闲区:始址 大小大小 150K 30K 280K 20K 400K 112K77最佳适应算法:最佳适应算法:0512K申请 300K300K100K申请 100K释放 300K申请 150K150K30K申请 30K申请 40K40K申请 60K60K释放 30K空闲区:始址空闲区:始址 大小大小 210K 90K 400K 30K 470K 42K7812、设有一页式存储管理系统,向用户提供

31、的逻辑地、设有一页式存储管理系统,向用户提供的逻辑地址空间最大为址空间最大为64页,每页页,每页1024B,内存总共有,内存总共有32个个存储块,试问逻辑地址至少应为多少位?内存空间存储块,试问逻辑地址至少应为多少位?内存空间有多大?有多大?64=26,所以页号用,所以页号用6位表示位表示1024 = 210,所以偏移量用,所以偏移量用10位表示位表示逻辑地址应为逻辑地址应为6+10=16位位 页号偏移量内存空间大小:内存空间大小:32*1024 = 32K7913、在一分页存储管理系统中,逻辑地址长度为、在一分页存储管理系统中,逻辑地址长度为16位,页面大小为位,页面大小为4096B,现有一

32、逻辑地址为,现有一逻辑地址为2F6AH,且第且第0、1、2页依次存放在物理块页依次存放在物理块5、10、11中,问中,问相应的物理地址为多少?相应的物理地址为多少?页面大小页面大小=4096B=4K=2=4096B=4K=21212逻辑地址是逻辑地址是1616位,故页号占位,故页号占4 4位位, ,偏移量占偏移量占1212位位2F6AH2F6AH页号是页号是2H2H,偏移量是,偏移量是F6AHF6AH所以它在所以它在1111号物理块中号物理块中(11(11的十六进制为的十六进制为BH)BH)相应地址为相应地址为 B000H + F6AH =B000H + F6AH = BF6AHBF6AH80

33、14、某采用分页存储管理的系统中,物理地址占某采用分页存储管理的系统中,物理地址占20位,逻辑地址中页号占位,逻辑地址中页号占6位,页面大小为位,页面大小为1KB,问:问:该系统的内存空间大小为多少?每个块的大小该系统的内存空间大小为多少?每个块的大小为多少?逻辑地址共几位?每个程序的最大长为多少?逻辑地址共几位?每个程序的最大长度为多少?度为多少?若第若第0、1、2页分别放在第页分别放在第3、7、9块中,则逻块中,则逻辑地址辑地址0420H对应的物理地址是多少?对应的物理地址是多少?81 解答:解答: 物理地址占物理地址占20位,所以该系统的内存空间大小为:位,所以该系统的内存空间大小为:2

34、20=1MB 块的大小与页面大小相同,而页面大小为块的大小与页面大小相同,而页面大小为1KB,因此存储块的大小也为因此存储块的大小也为1KB 由于页面大小为由于页面大小为1K=210,占,占10位,而页号占位,而页号占6位,位,因此逻辑地址共因此逻辑地址共16位位 该系统中的每个程序最大为:该系统中的每个程序最大为:216=64KB82 因为页号占因为页号占6位,偏移量占位,偏移量占10位位逻辑地址逻辑地址0420H的前的前6位为页号,后位为页号,后10位为偏移量位为偏移量 其前其前6位的二进制表示为位的二进制表示为(0000,01)2,故在,故在1号页内号页内偏移量为偏移量为20H因为,因为

35、,1号页面对应号页面对应7号块号块所以,物理地址可写为所以,物理地址可写为 (0001,1100,0010,0000)2所以,物理地址可写为所以,物理地址可写为1C20H042001006位页号位页号10位位移量位位移量000111834.4 基本分段存储管理方式基本分段存储管理方式 4.4.1 分段存储管理方式的引入分段存储管理方式的引入引入目的:引入目的:为了满足用户和程序员的需要为了满足用户和程序员的需要 方便编程方便编程 程序员把程序划分成若干逻辑段,逻辑地址由段名、段内偏移量组成CALL X|LOAD 1,A|STORE 1,B|段MAIN(主程序) 01KY:段X(子程序) 064

36、0D:段A (数组) 0500C:段B(工作区) 030084 信息共享信息共享 实现程序、数据的共享,是以信息的逻辑单位为基础的。页不是逻辑单位,所以难以实现信息共享 信息保护信息保护 信息保护是对逻辑单位进行保护 动态增长动态增长数据段会随着运行不断增长,段式存储可以有效地应付这种情况 动态链接动态链接动态链接也是以逻辑单位为基础的854.4.2 分段系统的基本原理分段系统的基本原理1.分段分段在分段管理系统中,程序经编译链接后,指令在分段管理系统中,程序经编译链接后,指令和数据的地址均由两部分构成:和数据的地址均由两部分构成: 表示段名的段号表示段名的段号S 段内位移量段内位移量W,即段

37、内地址,即段内地址所以,其地址结构有如下形式:所以,其地址结构有如下形式:段号段内地址31 16 15 0该地址结构中,最多可有该地址结构中,最多可有64K个段,每个段最大个段,每个段最大64K86 所谓所谓分段管理分段管理,就是管理由若干段组成的程序,就是管理由若干段组成的程序,且按段进行存储分配。且按段进行存储分配。 实现分段管理的关键在于实现分段管理的关键在于 如何把逻辑地址变换成物理地址如何把逻辑地址变换成物理地址 和分页管理一样,可采用和分页管理一样,可采用动态重定位技术动态重定位技术 即,通过类似的地址变换机构来实现即,通过类似的地址变换机构来实现872. 段表段表OS在系统区为每

38、个进程建立一张段表:在系统区为每个进程建立一张段表:每个表项至少有三个数据项每个表项至少有三个数据项 段长段长 基址基址 存取控制存取控制段长(字节) 基址 存取控制(RWX) 1K 640 500 300 段号段号 0 1 2 388利用段表实现地址映射 作业空间(MAIN)0030K(X)1020K(D)2015K(S)3010K30K20K15K10K40K80K120K150K段长基址段号(MAIN)030K(X)120K(D)215K(S)310K040K80K120K150K段表内存空间0123893. 地址变换机构地址变换机构分段系统的地址变换过程 904. 分页和分段的主要区别

39、分页和分段的主要区别 页是信息的物理单位,分页是为消减内存页是信息的物理单位,分页是为消减内存的碎片,提高内存的利用率。的碎片,提高内存的利用率。 分页仅是分页仅是由于系统管理的需要由于系统管理的需要。 段则是信息的逻辑单位,它含有一组其段则是信息的逻辑单位,它含有一组其意义相对完整的信息。意义相对完整的信息。 分段的目的是为了能分段的目的是为了能更好地满足用户的更好地满足用户的需要需要。 91 页的大小固定,由系统决定,页的大小固定,由系统决定,由系统把逻由系统把逻辑地址划分为页号和页内地址两部分,是辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有由机器硬件实现的,因

40、而在系统中只能有一种大小的页面;一种大小的页面; 段的长度不固定,决定于用户所编写的程段的长度不固定,决定于用户所编写的程序,序,由编译程序编译源程序时,根据信息由编译程序编译源程序时,根据信息的性质来划分。的性质来划分。92分页的作业地址空间是一维的分页的作业地址空间是一维的,即单一的线,即单一的线性地址空间,程序员只需利用一个记忆符,性地址空间,程序员只需利用一个记忆符,即可表示一个地址;即可表示一个地址; 分段的作业地址空间则是二维的,分段的作业地址空间则是二维的,程序员程序员在标识一个地址时,既需给出段名,在标识一个地址时,既需给出段名, 又需给又需给出段内地址。出段内地址。 934.

41、4.3 信息共享信息共享ed 1ed 2ed 40data 1data 10进程12122606170页表ed 1ed 2ed 40data 1data 10进程22122607180ed 1ed 2ed 40data 1data 10data 1data 10主存021226061707180页表分页系统中共享editor的示意图94分段系统中共享editor的示意图 editor进程1data 1进程2editordata 2段表段长基址16080402401608040380editordata 1data 280240280380420954.4.4 段页式存储管理方式段页式存储管理方

42、式分页、分段两种管理方式各有优缺点分页、分段两种管理方式各有优缺点 分页系统能有效提高内存利用率分页系统能有效提高内存利用率 分段系统能更好地满足用户的需要分段系统能更好地满足用户的需要为了获得为了获得分段在逻辑上的优点分段在逻辑上的优点和和分页在管分页在管理存储空间方面的优点理存储空间方面的优点,结合分段和分页,结合分段和分页,形成形成段页式存储管理段页式存储管理。961.基本原理基本原理一个程序首先被分成若干段,每一个段赋予不同一个程序首先被分成若干段,每一个段赋予不同的段名的段名(段号段号)每一个段又分成若干个页面每一个段又分成若干个页面由于段页式系统给逻辑地址空间增加了一级结构,由于段

43、页式系统给逻辑地址空间增加了一级结构,现在地址空间便由现在地址空间便由段号段号S、段内页号、段内页号P 和和页内地页内地址址(位移量位移量)W构成构成 :段号段号S段内地址段内地址段内页号段内页号P页内地址页内地址W例如:例如:段号段号S 段内页号段内页号P 页内位移量页内位移量W23 16 15 12 11 0970页页1页页2页页3页页 0 4K 8K12K16K15K段10页1页2页 0 4K 8K12K10K段30页页1页页 0 4K 8K段2该图是段页式系统中一个程序的逻辑地址空间,页面大小该图是段页式系统中一个程序的逻辑地址空间,页面大小4KB该程序有该程序有3个段个段段段1为为1

44、5KB,占,占4页,最后一页有页,最后一页有1KB未用;未用;段段2为为8KB,恰好占满,恰好占满2页;页;段段3为为10KB,占,占3页,最后一页有页,最后一页有2KB未用。未用。和分页系统一样,这些未写满的页依然存在和分页系统一样,这些未写满的页依然存在页内碎片页内碎片问题问题98段号段号S 段内页号段内页号P 页内位移量页内位移量W23 16 15 12 11 0地址结构确定了一个程序可用地址空间的范围,限定地址结构确定了一个程序可用地址空间的范围,限定了一个程序最多能有多少段,每段多少页,以及页面了一个程序最多能有多少段,每段多少页,以及页面的大小的大小上图的结构可允许每个程序有上图的

45、结构可允许每个程序有256段,每段段,每段16页、页页、页面的大小为面的大小为4K字节字节注意:程序的分段可由程序员或编译程序根据信息的注意:程序的分段可由程序员或编译程序根据信息的逻辑结构来划分;而分页则与程序员无关,是由系统逻辑结构来划分;而分页则与程序员无关,是由系统自动进行的自动进行的也即,程序中使用的地址形式仍然是二维的,即也即,程序中使用的地址形式仍然是二维的,即段号段号S和和段内地址段内地址W;只是由地址变换机构把;只是由地址变换机构把W 解析成解析成页页号号P和和页内地址的页内地址的 (位移量位移量)W形式形式99利用段表和页表实现地址映射利用段表和页表实现地址映射 段号状态页

46、表大小页表始址0111213041页号状态存储块#0111213041操作系统主存页表段表段表大小段表始址段表寄存器1002. 地址变换过程地址变换过程 段页式系统中的地址变换机构段页式系统中的地址变换机构 段表寄存器段表始址段表长度段号S页号P段超长段表0123页内地址页表0123b块号 b块内地址页表始址页表长度101练习题1、采用段式管理的系统里,若地址用、采用段式管理的系统里,若地址用24位表位表示,其中示,其中8位表示段号,则允许每段的最位表示段号,则允许每段的最大长度是大长度是( )A. 224 B. 216 C. 28 D. 2322. 很好解决了很好解决了“零头零头”问题的存储

47、管理方法问题的存储管理方法是是( ) A. 页式存储管理页式存储管理 B段式存储管理段式存储管理 C. 多重分区管理多重分区管理 D可变式分区管理可变式分区管理BA1023、在段页式存储管理系统中,内存等分成、在段页式存储管理系统中,内存等分成( ),程序按逻辑模块划分成若干,程序按逻辑模块划分成若干( ) A. 块块 B基址基址 C. 分区分区 D段段 E页号页号 F段长段长 AD1034、 在一个段式存储管理系统中,其段表为:在一个段式存储管理系统中,其段表为: 段号段号 内存起始地址内存起始地址 段长段长 0 210 5000 210 500 1 2350 20 1 2350 20 2

48、100 90 2 100 90 3 1350 590 3 1350 590 4 1938 95 4 1938 95试求表中逻辑地址对应的物理地址是什么?试求表中逻辑地址对应的物理地址是什么?1104322350 + 10 = 23601938 + 32 = 19701045、某段表的内容如下,逻辑地址、某段表的内容如下,逻辑地址(2/154),其中,其中2为为段号,段号,154为段内地址,它对应的物理地址为为段内地址,它对应的物理地址为( ) A120K+2 B480K+154 C30K+154 D2+480K B1054.5 虚拟存储器的基本概念虚拟存储器的基本概念前述的内存管理方法的共同缺

49、点前述的内存管理方法的共同缺点要求程序必须一次性整体装入内存要求程序必须一次性整体装入内存导致两个问题导致两个问题 程序太大,内存放不下程序太大,内存放不下 程序太多,但内存空间不足程序太多,但内存空间不足解决方案解决方案 从物理上增加内存容量,但成本高,且增加从物理上增加内存容量,但成本高,且增加是有限的是有限的 从逻辑上增加内存容量。这正是从逻辑上增加内存容量。这正是虚拟存储技虚拟存储技术术所要解决的主要问题所要解决的主要问题1064.5.1 虚拟存储器的引入虚拟存储器的引入1.常规存储器管理方式的特征常规存储器管理方式的特征 一次性一次性程序运行时,要求一次性全部装入内存,有些程序运行时

50、,要求一次性全部装入内存,有些暂时用不到的数据也必须装入,浪费内存暂时用不到的数据也必须装入,浪费内存 驻留性驻留性不管是就绪、执行还是阻塞,都必须驻留内存,不管是就绪、执行还是阻塞,都必须驻留内存,浪费内存浪费内存一次性和驻留性在程序执行中是否是必须的呢?一次性和驻留性在程序执行中是否是必须的呢?不少学者就这一问题进行了广泛研究,其中最著不少学者就这一问题进行了广泛研究,其中最著名的是名的是Denning提出的局部性原理,为虚拟存储提出的局部性原理,为虚拟存储器的实现奠定了基础器的实现奠定了基础1072. 虚拟存储器定义虚拟存储器定义基本原理基本原理基于基于局部性原理局部性原理,一个进程在运

51、行时,只需将当,一个进程在运行时,只需将当前要运行的程序部分(页面或段)装入内存,其前要运行的程序部分(页面或段)装入内存,其余部分暂时留在磁盘上,这样进程便可继续运行余部分暂时留在磁盘上,这样进程便可继续运行运行一段时间后,如果运行所需的程序部分不在运行一段时间后,如果运行所需的程序部分不在内存内存 则产生缺页(段)中断,则产生缺页(段)中断,OS利用请求调页利用请求调页(段)功能,将它们调入内存,以维持进程(段)功能,将它们调入内存,以维持进程的继续执行的继续执行 如果内存已满,无法再装入新的页(段),如果内存已满,无法再装入新的页(段),则利用置换功能,将内存中暂时不用的页则利用置换功能

52、,将内存中暂时不用的页(段)调至磁盘,腾出足够的内存空间后,(段)调至磁盘,腾出足够的内存空间后,再将它们调入内存,以维持进程的继续执行再将它们调入内存,以维持进程的继续执行108 虚存虚存 虚拟存储器技术允许程序、数据、堆栈超过内存大虚拟存储器技术允许程序、数据、堆栈超过内存大小,支持多道程序设计技术小,支持多道程序设计技术 它把内存与外存有机的结合起来使用,从而得到一它把内存与外存有机的结合起来使用,从而得到一个容量很大的个容量很大的“内存内存”,简称,简称虚存虚存CPUMMU内存内存磁盘磁盘控制器控制器总线总线虚拟地址虚拟地址物理地址物理地址MMU:内存管理单元:内存管理单元1093.

53、虚拟存储器的定义虚拟存储器的定义定义定义具有具有请求调入功能请求调入功能和和置换功能置换功能,能,能从逻辑上从逻辑上扩充内存容量的一种存储器系统扩充内存容量的一种存储器系统容量容量逻辑容量逻辑容量 = 内存容量内存容量 + 外存容量外存容量性价比性价比运行速度接近内存速度,成本却接近于外存运行速度接近内存速度,成本却接近于外存总结总结虚拟存储技术是一种虚拟存储技术是一种性能非常优越性能非常优越的存储器的存储器管理技术管理技术110 一个虚拟存储器的最大容量是由计算机的地址结一个虚拟存储器的最大容量是由计算机的地址结构确定的。构确定的。 若若CPU给出的有效地址长度为给出的有效地址长度为20位,

54、则程序可以位,则程序可以寻址的范围为寻址的范围为1M,即虚存的容量为:,即虚存的容量为:1M。 若这个地址长度为若这个地址长度为24位,则相应的虚存容量为位,则相应的虚存容量为16M。 由此可见,虚拟存储器的容量与内存的实际大小由此可见,虚拟存储器的容量与内存的实际大小没有直接关系,而是由内存容量和外存容量之和没有直接关系,而是由内存容量和外存容量之和所确定。所确定。 在多道程序环境下,一个计算机系统可以为每一在多道程序环境下,一个计算机系统可以为每一个用户建立一个虚拟存储器。个用户建立一个虚拟存储器。 这样,每个用户都可在自己的地址空间中编程,这样,每个用户都可在自己的地址空间中编程,这对用

55、户是十分方便的。这对用户是十分方便的。111虚拟存储系统在何时起作用?虚拟存储系统在何时起作用?战略地图战略地图战术地图战术地图读取图像资源读取图像资源文件,并加载文件,并加载到内存中到内存中(游戏游戏程序程序)内存不足以存放战术地图所需内存不足以存放战术地图所需要的资源时,虚存系统便开始要的资源时,虚存系统便开始起作用起作用(OS),对游戏开发者是,对游戏开发者是透明的。在游戏过程中也是如透明的。在游戏过程中也是如此此1124.5.2 虚拟存储器的实现方法虚拟存储器的实现方法虚拟存储器的实现,无一例外地都是建立在虚拟存储器的实现,无一例外地都是建立在离散离散分配存储管理方式分配存储管理方式基

56、础上基础上设计支持虚拟存储器概念的系统,还应有相应的设计支持虚拟存储器概念的系统,还应有相应的硬件来支持:硬件来支持: 要有相当容量的外存,足以存放所有并发进程的要有相当容量的外存,足以存放所有并发进程的地址空间地址空间 要有一定容量的内存,因为在要有一定容量的内存,因为在CPU上运行的进程,上运行的进程,必须有一部分信息存放在内存中必须有一部分信息存放在内存中 要有地址变换机构要有地址变换机构因此,所有的虚拟存储器都是下述方式之一:因此,所有的虚拟存储器都是下述方式之一: 请求分页系统请求分页系统 请求分段系统请求分段系统 段页式虚拟系统段页式虚拟系统1131. 请求分页系统请求分页系统它是

57、在基本分页系统的基础上增加了它是在基本分页系统的基础上增加了请求请求调页、页面置换调页、页面置换两大功能所形成的页式虚两大功能所形成的页式虚拟存储系统拟存储系统为了实现这两大功能,除为了实现这两大功能,除OS的软件支持的软件支持外,还必须提供如下的硬件支持:外,还必须提供如下的硬件支持: 请求分页的页表机制请求分页的页表机制 缺页中断机构缺页中断机构 地址变换机构地址变换机构1142. 请求分段系统请求分段系统它是在基本分段系统的基础上增加了它是在基本分段系统的基础上增加了请求请求调段、分段置换调段、分段置换两大功能所形成的段式虚两大功能所形成的段式虚拟存储系统拟存储系统为了实现这两大功能,除

58、为了实现这两大功能,除OS的软件支持的软件支持外,还必须提供如下的硬件支持:外,还必须提供如下的硬件支持: 请求分段的段表机制请求分段的段表机制 缺段中断机构缺段中断机构 地址变换机构地址变换机构1153. 段页式虚拟系统段页式虚拟系统目前,许多虚拟存储管理系统是建立在段目前,许多虚拟存储管理系统是建立在段页式系统的基础上的,通过增加了页式系统的基础上的,通过增加了请求调请求调页、页面置换页、页面置换两大功能所形成的段页式虚两大功能所形成的段页式虚拟存储系统拟存储系统如:如:Intel 80386处理机便支持段页式虚拟处理机便支持段页式虚拟存储系统存储系统1164.5.3 虚拟存储器的特征虚拟

59、存储器的特征特征特征 多次性多次性一个程序可以分多次调入内存一个程序可以分多次调入内存虚拟存储器最重要的特征虚拟存储器最重要的特征 对换性对换性允许程序在执行过程中换入、换出允许程序在执行过程中换入、换出有效提高内存利用率有效提高内存利用率 虚拟性虚拟性能从逻辑上扩充内存容量,用户看到的容量远能从逻辑上扩充内存容量,用户看到的容量远大于实际的容量大于实际的容量虚拟存储器最重要的特征、实现虚拟存储器最虚拟存储器最重要的特征、实现虚拟存储器最重要的目标重要的目标1174.6 请求分页存储管理方式请求分页存储管理方式 目前最常用的目前最常用的虚拟存储系统虚拟存储系统 与基本分页式存储管理的相同点:与

60、基本分页式存储管理的相同点: 把内存空间划分成大小相同、位置固定的块把内存空间划分成大小相同、位置固定的块 把程序的虚拟地址空间(就是以前的逻辑地址把程序的虚拟地址空间(就是以前的逻辑地址空间)划分成页空间)划分成页 由于页与块大小相同,因此虚拟地址空间中的由于页与块大小相同,因此虚拟地址空间中的一页,可以装入到内存中的任何一块中一页,可以装入到内存中的任何一块中118 它与基本分页式存储管理的不同点:它与基本分页式存储管理的不同点: 运行时,并不把整个程序全部装入内存,而是运行时,并不把整个程序全部装入内存,而是只装入目前要用的若干页,其他页仍然保存在只装入目前要用的若干页,其他页仍然保存在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论