计算机操作系统 第四版 汤小丹 梁红兵 哲凤屏_第4章(2016-2017-1)_第1页
计算机操作系统 第四版 汤小丹 梁红兵 哲凤屏_第4章(2016-2017-1)_第2页
计算机操作系统 第四版 汤小丹 梁红兵 哲凤屏_第4章(2016-2017-1)_第3页
计算机操作系统 第四版 汤小丹 梁红兵 哲凤屏_第4章(2016-2017-1)_第4页
计算机操作系统 第四版 汤小丹 梁红兵 哲凤屏_第4章(2016-2017-1)_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章存储器管理 第四章存储器管理 4.1 存储器的层次结构存储器的层次结构 4.2程序的装入和链接程序的装入和链接 4.3连续分配存储管理方式连续分配存储管理方式 4.4对换对换(Swapping) 4.5分页存储管理方式分页存储管理方式 4.6分段存储管理方式、分段存储管理方式、 第四章存储器管理 4.1 存储器的层次结构存储器的层次结构 4.1.1 多级存储器结构多级存储器结构 存储层次至少应具有三级:最高层为CPU寄存器,中间 为主存,最底层是辅存。 根据具体的功能分工可细为:寄存器、高速缓存、主存 储器、磁盘缓存、固定磁盘、可移动存储介质等6层。 在存储层次中越往上,存储介质的访问速

2、度越快,价格 也越高,相对存储容量也越小。 第四章存储器管理 图图4-1 计算机系统存储层次示意计算机系统存储层次示意 寄存器 高速缓存 主存 磁盘缓存 磁盘 可移动存储介质 CPU寄存器 主存 辅存 u寄存器、高速缓存、主存储器和磁盘缓存均属于操作系 统存储管理的管辖范畴,掉电后它们存储的信息不再存 在。固定磁盘和可移动存储介质属于设备管理的管辖范 畴,它们存储的信息将被长期保存。 u寄存器和主存储器 称为可执行存储器 uOS的存储管理负 责对可执行存储器 的分配、回收,以 及数据移动的管理 机制。 第四章存储器管理 4.1.2 主存储器与寄存器主存储器与寄存器 1 1主存储器主存储器 简称

3、内存或主存,用于保存进程运行时的程序和数据。 CPU的控制部件只能从主存储器中取得指令和数据,数 据能够从主存储器读取并将它们装入到寄存器中,或者 从寄存器存入到主存储器。 CPU与外围设备交换的信息一般也依托于主存储器地址 空间。由于主存储器的访问速度远低于CPU执行指令的 速度,为缓和这一矛盾,在计算机系统中引入了寄存器 和高速缓存。 第四章存储器管理 2 2寄存器寄存器 寄存器访问速度最快,完全能与CPU协调工作,但容量 不大。寄存器的数目,对于当前的微机系统和大中型机,可 能有几十个甚至上百个;而嵌入式计算机系统一般仅有几个 到几十个。寄存器用于加速存储器的访问速度。寄存器的长 度一般

4、以字(word)为单位。 4.1.2 主存储器与寄存器主存储器与寄存器 第四章存储器管理 1高速缓存高速缓存 介于寄存器和存储器之间,主要用于备份主存中较常用 的数据,以减少处理机对主存的访问次数。高速缓存的容 量大于或远大于寄存器,访问速度快于主存储器。 4.1.3 高速缓存和磁盘缓存高速缓存和磁盘缓存 根据程序执行的局部性原理(即程序在执行时将呈现出局 部性规律,在一较短的时间内,程序的执行仅局限于某个 部分),将主存中一些经常访问的信息存放在高速缓存中, 减少访问主存储器的次数,可大幅度提高程序执行速度。 第四章存储器管理 由于磁盘的I/O速度远低于对主存的访问速度,因此 将频繁使用的一

5、部分磁盘数据和信息,暂时存放在磁 盘缓存中。 4.1.3 高速缓存和磁盘缓存高速缓存和磁盘缓存 2磁盘缓存磁盘缓存 磁盘缓存本身并不是一种实际存在的存储介质,是 利用主存中的存储空间,来暂存从磁盘中读出(或写入) 的信息。主存也可以看做是辅存的高速缓存。 一个文件的数据可能出现在存储器层次的不同级别中。 第四章存储器管理 4.2程序的装入和链接程序的装入和链接 将一个用户源程序变为内存中的一个可执行程序,通常 有以下几个步骤: l 编译,由编译程序(Compiler)将用户源代码编译成若干 个目标模块(Object Module); l 链接,由链接程序(Linker)将编译后形成的一组目标模

6、 块,以及它们所需要的库函数链接在一起,形成一个完 整的装入模块(Load Module); l 装入,由装入程序(Loader)将装入模块装入内存。 第四章存储器管理 图4-2对用户程序的处理步骤 库 链接 程序 装入模块 装入 程序 编译程序 产生的目 标模块 第一步第二步第三步 内存 第四章存储器管理 1绝对装入方式绝对装入方式( (Absolute Loading Mode) ) 在编译时,编译程序产生绝对地址(即物理地址)的 目标代码(即装入模块)。装入程序按照装入模块中的 地址,将程序和数据装入内存。这时,逻辑地址与实际 内存地址完全相同。 4.2.1程序的装入程序的装入 程序中所

7、使用的绝对地址,既可在编译或汇编时给出, 也可由程序员直接赋予。 绝对装入方式只适用于单道程序环境。 第四章存储器管理 2可重定位装入方式可重定位装入方式(Relocation Loading Mode) 在多道程序环境下,编译程序产生从0开始编址的目标 模块,并由链接程序链接成一个从0开始编址的、完整的 装入模块。根据内存的当前情况,将装入模块装入到内存 的适当位置。 4.2.1程序的装入程序的装入 LOAD 1,2500 365 LOAD 1,2500 365 10000 11000 12500 15000 5000 2500 1000 0 作业地址空间 内存空间 u把在装入时对目标程 序

8、中指令和数据地址的 修改过程称为重定位重定位。 u地址变换通常在进程装入 时依次完成的,以后不再改 变,静态静态重定位重定位。 第四章存储器管理 3动态运行时装入方式动态运行时装入方式( (Dynamic Run-time Loading) ) 可重定位装入方式不允许程序运行时在内存中移动位 置。然而,程序在运行过程中,它在内存中的位置可能 经常要改变,此时就应采用动态运行时装入的方式。 4.2.1程序的装入程序的装入 动态运行时的装入程序在把装入模块装入内存后,并不 立即把装入模块中的逻辑地址转换为物理地址,而是把这 种地址转换推迟到程序真正要执行时才进行。 第四章存储器管理 4.2.2程序

9、的链接程序的链接 根据链接时间的不同,可把链接分成如下三种: (1)静态链接。在程序运行之前,先将各目标模块及它们 所需的库函数,链接成一个完整的装配模块。 (2)装入时动态链接。一组目标模块在装入内存时,采用 边装入边链接的链接方式。 (3) 运行时动态链接。对某些目标模块的链接,是在程序 执行中需要该(目标)模块时,才对它进行的链接。 源程序经过编译后得到一组目标模块。链接程序将这组目 标模块以及它们所需要的库函数装配成一个完整的装入模块。 第四章存储器管理 1静态链接方式静态链接方式(Static Linking) (1)对相对地址进行修改。在由编译程序所产生的所有目标 模块中,使用的都

10、是相对地址,其起始地址都为0,每个模 块中的地址都是相对于起始地址计算的。 4.2.2程序的链接程序的链接 (2) 变换外部调用符号。将每个模块中所用的外部调用符号 变换为相对地址。 l 这种先进行链接所形成的一个完整的装入模块,又称为可 执行文件。通常都不再拆开它,要运行时可直接将它装入 内存。这种事先进行链接,以后不再拆开的链接方式,称 为静态链接方式。 第四章存储器管理 图 4-4程序链接示意图 模块 A CALL B; Return; 0 L-1 模块 B CALL C; Return; 0 M-1 模块 C Return; 0 N-1 0 模块 A JSR“L” Return;L-1

11、 模块 B JSR“LM” Return; L L+M-1 L+M L+M+N-1 模块 C Return; (a) 目标模块(b) 装入模块 1静态链接方式静态链接方式(Static Linking) 第四章存储器管理 2装入时动态链接装入时动态链接(Load-time Dynamic Linking) 用户源程序经编译后所得的目标模块,是在装入内存 时边装入边链接的,即在装入一个目标模块时,若发生 一个外部模块调用事件,将引起装入程序去找出相应的 外部目标模块,并将它装入内存,同时修改目标模块中 的相对地址。 4.2.2程序的链接程序的链接 第四章存储器管理 3运行时动态链接运行时动态链接

12、(Run-time Dynamic Linking) 这种链接方式是将对某些模块的链接推迟到程序执行 时才进行链接,亦即,在执行过程中,当发现一个被调 用模块尚未装入内存时,立即由OS去找到该模块并将之 装入内存,把它链接到调用者模块上。凡在执行过程中 未被用到的目标模块,都不会被调入内存和被链接到装 入模块上,这样不仅可加快程序的装入过程,而且可节 省大量的内存空间。 4.2.2程序的链接程序的链接 第四章存储器管理 4.3连续分配存储管理方式连续分配存储管理方式 4.3.1单一连续分配单一连续分配 用于单用户、单任务的操作系统中。这种存储管理方式 把内存分为系统区和用户区两部分,系统区仅提

13、供给OS使 用,通常是放在内存的低址部分;用户区是指除系统区以 外的全部内存空间,提供给用户使用。在用户区内存中, 仅装有一道用户程序。 最早出现的一种存储器分配方式。该分配方式为一个用户 程序分配一个连续的内存空间,即程序中代码或数据的逻 辑地址相邻。 第四章存储器管理 4.3.2固定分区分配固定分区分配 将整个用户空间划分为若干个固定大小的区域。 1 1划分分区的方法划分分区的方法 (1) 分区大小相等,即使所有的内存分区大小相等。 (2) 分区大小不等。把内存区划分成含有多个较小的 分区、适量的中等分区及少量的大分区。 第四章存储器管理 2内存分配内存分配 通常将分区按大小进行排队,并为

14、之建立一张分区使 用表,其中各表项包括每个分区的起始地址、大小及状态。 4.3.2固定分区分配固定分区分配 操作系统 作业A 作业B 作业C 24 KB 32 KB 64 KB 128 KB 256 KB 分区号大小/KB起址/KB状态 11220已分配 23232已分配 36464已分配 4128128未分配 (b) 存储空间分配情况(a) 分区说明表 第四章存储器管理 4.3.3动态分区分配动态分区分配 动态分区分配是根据进程的实际需要,动态地为之分 配内存空间。 1动态动态分区分配中的数据结构分区分配中的数据结构 前 向 指 针 0 N个字节可用 后 向 指 针 0 N+ 2 N+ 2

15、常用的分区分配数据结构: (1)空闲分区表 (2)空闲分区链 在每个分区的起始部分设置一 些控制分区分配的信息,以及链 接各分区的前向、后向指针。 第四章存储器管理 3分区分配操作分区分配操作 从头开始查表 检索完否? m.sizeu.size? m.size-u.sizesize? 从该分区中划出 u.size大小的分区 将该分区分配给请求者 修改有关数据结构 返回 返回 继续检索下一个表项 将该分区从链中移出 Y N N Y Y N 1) 分配分配内存内存 第四章存储器管理 2) 回收内存回收内存 当进程运行完毕释放内存时,系统根据回收区的首址, 从空闲区链(表)中找到相应的插入点,此时进

16、行四种情况 的回收: 3分区分配操作分区分配操作 第四章存储器管理 4.3.4基于顺序搜索的动态分区分配算法基于顺序搜索的动态分区分配算法 顺序搜索指依次搜索空闲分区链上的空闲分区,寻找 一个其大小能满足要求的分区。 相应的分配算法有:首次适应算法、循环首次适应算 法、最佳适应算法和最坏适应算法。 第四章存储器管理 FF算法要求空闲分区链以地址递增的次序链接。在 分配内存时,从链首开始顺序查找,直至找到一个大 小能满足要求的空闲分区为止;然后再按照作业的大 小,从该分区中划出一块内存空间分配给请求者,余 下的空闲分区仍留在空闲链中。若从链首直至链尾都 不能找到一个能满足要求的分区,则此次内存分

17、配失 败,返回。 1.首次适应首次适应(first fit,FF)算法算法 4.3.4基于顺序搜索的动态分区分配算法基于顺序搜索的动态分区分配算法 第四章存储器管理 在为进程分配内存空间时,不再是每次都从链首开 始查找,而是从上次找到的空闲分区的下一个空闲分 区开始查找,直至找到一个能满足要求的空闲分区, 从中划出一块与请求大小相等的内存空间分配给作业。 该算法应设置一起始查寻指针,用于指示下一次起始 查寻的空闲分区,并采用循环查找方式。 2. 循环首次适应循环首次适应(next fit ,NF)算法算法 4.3.4基于顺序搜索的动态分区分配算法基于顺序搜索的动态分区分配算法 第四章存储器管理

18、 每次为作业分配内存时,总是把能满足要求、又是最 小的空闲分区分配给作业。为了加速寻找,该算法要求 将所有的空闲分区按其容量以从小到大的顺序形成一空 闲分区链。 4.3.4基于顺序搜索的动态分区分配算法基于顺序搜索的动态分区分配算法 3.最佳适应最佳适应 (best fit ,BF)算法算法 第四章存储器管理 该算法扫描整个空闲分区表或链表,总是挑选一个最 大的空闲区分割给作业使用,要求将所有的空闲分区按 其容量以从大到小的顺序形成一空闲分区链,查找时只 要看第一个分区能否满足作业要求。 4.3.4基于顺序搜索的动态分区分配算法基于顺序搜索的动态分区分配算法 4. 最坏适应最坏适应(worst

19、 fit ,WF)算法算法 第四章存储器管理 1. 快速适应快速适应(quick fit)算法算法 又称为分类搜索法,是将空闲分区根据其容量大小进 行分类,对于每一类具有相同容量的所有空闲分区,单独 设立一个空闲分区链表,同时在内存中设立一张管理索引 表,该表的每一个表项对应了一种空闲分区类型,并记录 了该类型空闲分区链表表头的指针。 4.3.5基于索引搜索的动态分区分配算法基于索引搜索的动态分区分配算法 系统根据进程的长度,寻找到能容纳它的最小空闲区 链表,并取下第一块进行分配即可。 第四章存储器管理 该算法规定:无论已分配分区或空闲分区,其大小均 为2的k次幂(k为整数),2m表示分配的最

20、大分区的大小, 通常是整个可分配内存的大小。 4.3.5基于索引搜索的动态分区分配算法基于索引搜索的动态分区分配算法 2.伙伴系统伙伴系统(buddy system) 假设系统的可利用空间容量为2m个字,则系统开始运 行时,整个内存区是一个大小为2m的空闲分区。 当需要为进程分配一个长度为n的存储空间时,首先计 算一个i值,使2i1n2i,然后在空闲分区大小为2i的空 闲分区链表中查找。若找到,即把该空闲分区分配给进程。 第四章存储器管理 否则,则在分区大小为2i1的空闲分区链表中寻找。若存 在2i1的一个空闲分区,则把该空闲分区分为相等的两个分区, 其中的一个分区用于分配,而把另一个加入分区

21、大小为2i的空 闲分区链表中。若大小为2i1的空闲分区也不存在,则需要查 找大小为2i2的空闲分区,若找到,则对其进行两次分割:第 一次,将其分割为大小为2i1的两个分区,一个用于分配,一 个加入到大小为2i1的空闲分区链表中;第二次,将第一次用 于分配的空闲区分割为2i的两个分区,一个用于分配,一个加 入到大小为2i的空闲分区链表中,以此类推。 2.伙伴系统伙伴系统 第四章存储器管理 3. 哈希算法哈希算法 4.3.5基于索引搜索的动态分区分配算法基于索引搜索的动态分区分配算法 该算法利用哈希快速查找的优点,以及空闲分区在可 利用空间表中的分布规律,建立哈希函数,构造一张以 空闲分区大小为关

22、键字的哈希表,该表的每一个表项记 录了一个对应的空闲分区链表表头指针。 当进行空闲分区分配时,根据所需空闲分区大小, 通过哈希函数计算,即得到在哈希表中的位置,从中 得到相应的空闲分区链表,实现最佳分配策略。 第四章存储器管理 4.3.6动态可重定位分区分配动态可重定位分区分配 1. 紧凑紧凑 操作系统 用户程序1 用户程序3 10 KB 30 KB 用户程序6 14 KB 用户程序9 26 KB 操作系统 用户程序1 用户程序3 用户程序6 用户程序9 80 KB (a) 紧凑前(b) 紧凑后 u紧凑:移动内存 中作业的位置,以 把原来多个分散的 小分区拼接成一个 大分区的方法。 第四章存储

23、器管理 地址变换过程是在程序执行期间,随着对每条指令或 数据的访问自动进行的,故称为动态重定位。 4.3.6动态可重定位分区分配动态可重定位分区分配 2动态重定位的实现动态重定位的实现 LOAD1,2500 365 0 100 2500 5000 2500 相对地址 10000 重定位寄存器 LOAD1,2500 365 10000 10100 12500 15000 作业J 处理机一侧存储器一侧 主存 图图 4-12 动态动态 重定位重定位 示意图示意图 第四章存储器管理 3. 动态重定位分区分配算法动态重定位分区分配算法 请求分配 u.size分区 检索空闲分区链(表) 找到大于u.siz

24、e 的可用区否? 按动态分区方式 进行分配 修改有关的 数据结构 返回分区号 及首批 空闲分区 总和u.size? 进行紧凑形 成连续空闲区 修改有关的 数据结构 否 是 无法分配 返回 否 图图4-13动态分区分配算法流程图动态分区分配算法流程图 第四章存储器管理 4.4对换对换(Swapping) 4.4.1多道程序环境下的对换技术多道程序环境下的对换技术 1.1.对换的引入对换的引入 所谓“对换”,是指把内存中暂时不能运行的进程或 者暂时不用的程序和数据调出到外存上,以便腾出足够 的内存空间,再把已具备运行条件的进程或进程所需要 的程序和数据调入内存。对换是提高内存利用率的有效 措施。

25、第四章存储器管理 (1)整体对换。以整个进程为单位的对换,这种对换被 广泛地应用于分时系统中。 (2)页面(分段)对换。对换是以“页”或“段”为单 位进行的,则分别称之为“页面对换”或“分段对换”。 这种对换方法是为了支持虚拟存储系统。 4.4.1多道程序环境下的对换技术多道程序环境下的对换技术 2.2.对换的类型对换的类型 在每次对换时,是将一定数量的程序或数据换入或 换出内存。 第四章存储器管理 4.4.2对换空间的管理对换空间的管理 在具有对换功能的OS中,通常把外存分为文件区和 对换区。前者用于存放文件,后者用于存放从内存换 出的进程。文件区管理的主要目标是提高文件存储空 间的利用率,

26、对文件区采取离散分配方式;对换空间 管理的主要目标是提高进程换入和换出的速度,采取 的是连续分配方式。 为了对对换区中的空闲盘块进行管理,在系统中配置 有相应的数据结构,以记录外存的使用情况。其形式与 内存在动态分区分配方式中所用数据结构相似。 第四章存储器管理 1.1.进程的换出进程的换出 分两步,(1) 选择被换出的进程。选择处于阻塞状态 或睡眠状态的进程,当有多个这样的进程时,选择优先 级最低的进程作为换出进程。 4.4.3进程的换出与换入进程的换出与换入 (2) 进程换出过程。在选择换出进程后,只能换出非 共享的程序和数据段。在进行换出时,先申请对换空 间;若申请成功,启动磁盘,将该进

27、程的程序和数据 传送到磁盘的对换区上。 第四章存储器管理 系统定时查看所有进程的状态,从中找出“就绪” 状态但已换出的进程,将其中换出时间最久(换出到 磁盘上)的进程作为换入进程,将之换入,直至已无 可换入的进程或无可换出的进程为止。 4.4.3进程的换出与换入进程的换出与换入 2.2.进程的换入进程的换入 第四章存储器管理 4.5分页存储管理方式分页存储管理方式 连续分配方式会形成“碎片”,离散分配方式允许将 一个进程直接分散地装入许多不相邻接的分区中,无须 再进行“紧凑”。 根据在离散分配时所分配地址空间的基本单位,离散 分配方式有三种:分页存储管理方式、分段存储管理方 式、段页式存储管理

28、方式。 第四章存储器管理 4.5分页存储管理方式分页存储管理方式 1.1.页面和物理块页面和物理块 分页存储管理是将一个进程的逻辑地址空间分成若干 个大小相等的片,称为页面或页。相应地,内存空间分 成与页面相同大小的若干个存储块,称为(物理)块或页 框(frame)。在为进程分配内存时,以块为单位将进程中 的若干个页分别装入到多个可以不相邻接的物理块中。 页面的大小选择适中,且页面大小是2的幂。 4.5.1分页存储管理的基本办法分页存储管理的基本办法 第四章存储器管理 4.5.1分页存储管理的基本办法分页存储管理的基本办法 2. 地址结构地址结构 机器的地址结构是一定的。若给定一个逻辑地址空

29、间中的地址为A,页面的大小为L,则页号P和页内地址 d可按下式求得: AMODLd L A INTP 第四章存储器管理 3页表页表 在分页系统中,将进程的各个页离散地存储在内存不同的 物理块中,系统为每个进程建立了一张页面映像表,称页表。 4.5.1分页存储管理的基本办法分页存储管理的基本办法 用户程序 0 页 1 页 2 页 3 页 4 页 5 页 n 页 页表 页号块号 02 13 26 38 49 5 内存 0 1 2 3 4 5 6 7 8 9 10 图图4-14页表的作用页表的作用 第四章存储器管理 进程在运行期间,采用硬件实现用户地址空间中的逻 辑地址变换为内存中的物理地址。即,页

30、表的功能由一 组专门的寄存器来实现。在系统中只设置一个页表寄存 器 PTR(Page-Table Register),其中存放着页表在内存的 始址和页表的长度。进程未执行时,页表的始址和页表 长度存放在本进程的PCB中。当某进程被调度时,将它们 装入页表寄存器中。 4.5.2地址变换机构地址变换机构 u 基本任务:实现从逻辑地址到物理地址的转换,借助 于页表完成。 1. 基本的地址变换机构基本的地址变换机构 第四章存储器管理 图图4-15分页系统的地址变换机构分页系统的地址变换机构 页表寄存器 页表始址页表长度页号(3)页内地址 逻辑地址L 越界中断 1 块号 b 页表 页号 0 1 2 物理

31、地址 3 思考:内存思考:内存 存访问次数?存访问次数? 第四章存储器管理 2.2.具有快表的地址变换机构具有快表的地址变换机构 为了提高地址变换速度,在地址变换机构中增设一个具 有并行查寻能力的特殊高速缓冲寄存器,称为快表。 4.5.2地址变换机构地址变换机构 页表寄存器 页表始址页表长度页号页内地址 逻辑地址L 越界中断 块号 b 页表 页号页号 输 入 寄 存 器 块号 b b 快表 d 物理地址 思考:访问内存的有效思考:访问内存的有效 时间?时间? 快表中存放当前访 问的那些页表项。 第四章存储器管理 思考题一:思考题一:对一个将页表存放在内存中的分页系统: (1)如果访问内存需要0

32、.2s,有效访问时间为多少? (2) 如果加一快表,且假定在快表中找到页表项的机率高 达90%,则有效访问时间又是多少(假定查快表需花的时 间为0)? 思考题二:思考题二:某系统某系统 采用页式存储管理策略,拥有逻辑空 间32页,每页2KB,拥有物理空间1MB。 (1)写出逻辑地址的格式。 (2) 若不考虑访问权限等,进程的页表有多少项?每项至 少有多少位? 第四章存储器管理 非常大的逻辑地址空间产生非常大的页表,存储页表要 占用相当大的内存空间,而且还要求是连续的。可以采用 下述两个方法来解决: 采用离散分配方式,以解决难以找到一块连续的大内存 空间的问题; 只将当前需要的部分页表项调入内存

33、,其余的页表项仍 驻留在磁盘上,需要时再调入。 4.5.4两级和多级页表两级和多级页表 第四章存储器管理 4.5.4两级和多级页表两级和多级页表 1. 两级页表两级页表(Two-Level Page Table) 外层页号外层页内地址页内地址 P1P2d 3122 2112 110 将大页表拆分成与内存物理块大小相同的若干个页 面,然后离散地将各个页面分别存放在不同的物理块 中。为离散分配的页表再建立一张外层页表,在每个 页表项中记录了页表页面的物理页号。 两级页表结构两级页表结构 第四章存储器管理 图图4-18具有两级页具有两级页 表的地址变换结构表的地址变换结构 1011 1078 0 1

34、 2 1742n 第0页页表 1 4 6 0 1 2 1023 第1页页表 114 115 0 1 1023 外部页表 0 1 2 3 4 5 6 7 114 115 1468 第n页页表 1468 0 1 2 1023 内存空间 第四章存储器管理 图4-18具有两级页表的地址变换机构 外部页号 P 1 P 2 外部页内地址 页内地址 d逻辑地址 外部页表寄存器 外部页表 db 页表页表 物理地址 第四章存储器管理 对于32位的机器,采用两级页表结构是合适的;但对 于64位的机器,采用两级页表是否仍可适用的问题(自自 行分析行分析)? 4.5.4两级和多级页表两级和多级页表 2. 多级页表多级

35、页表 第四章存储器管理 4.6分段存储管理方式分段存储管理方式 1.1.方便编程方便编程 逻辑地址由段名和段内偏移量决定。如:LOAD 1, A| 2.2.信息共享及信息保护信息共享及信息保护 信息共享和信息保护以逻辑单位为基础的。 3.3.动态增长及动态链接动态增长及动态链接 动态链接要求以目标程序(即段)作为连接的基本单位。 为了满足用户在编程和使用上的要求,提出分段存储管理方式。 4.6.1分段存储管理方式的引入分段存储管理方式的引入 第四章存储器管理 1. 1. 分段分段 作业的地址空间被划分为若干个段,每个段定义了一组 逻辑信息。其逻辑地址由段号(段名)和段内地址所组成。 4.6.2

36、分段系统的基本原理分段系统的基本原理 分段方式已得到许多编译程序的支持,编译程序能 自动地根据源程序的情况而产生若干个段。 第四章存储器管理 在系统中为每个进程建立一张段映射表,简称“段表”, 用于实现从逻辑段到物理内存区的映射。 4.6.2分段系统的基本原理分段系统的基本原理 2. 段表段表 作业空间 (MAIN)=0 0 30 K (X)=1 0 20 K (D)=2 0 15 K (S)=3 0 10 K 30 K 20 K 15 K 10 K 40 K 80 K 段长基址段号 (MAIN)=0 30 K (X)=1 20 K (D)=2 15 K (S)=3 10 K 0 40 K 8

37、0 K 120 K 150 K 段表 内存空间 0 1 2 3 120 K 150 K 第四章存储器管理 4.6.2分段系统的基本原理分段系统的基本原理 3.3.地址变换机构地址变换机构 控制寄存器 段表始址段表长度2100 段号S 越界 1 K 段长 600 段号 0 1 2 3 6 K 4 K 500 200 8 K 9200 基址 位移量W 8292 8K 8292 8692 主存 物理地址 有效地址 图图4-20分段系统的地址变换过程分段系统的地址变换过程 第四章存储器管理 (1)页是信息的物理单位,分页是为实现离散分配方式, 以消减内存的外零头,提高内存的利用率。或者说,分 页仅仅是由于系统管理的需要而不是用户的需要。段则 是信息的逻辑单位,它含有一组其意义相对完整的信息。 分段的目的是为了能更好地满足用户的需要。 4.6.2分段系统的基本原理分段系统的基本原理 4.4.分页和分段的主要区别分页和分段的主要区别 第四章存储器管理 (3)分页的作业地址空间是一维的,即单一的线性地址空 间,程序员只需利用一个记忆符,即可表示一个地址;

温馨提示

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

评论

0/150

提交评论