操作系统讲稿第四章内存管理.ppt_第1页
操作系统讲稿第四章内存管理.ppt_第2页
操作系统讲稿第四章内存管理.ppt_第3页
操作系统讲稿第四章内存管理.ppt_第4页
操作系统讲稿第四章内存管理.ppt_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

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

文档简介

第四章 内存管理 n主存储器是仅次于CPU的宝贵资源。 n众多进程共用一个存储器,必然涉及到存储 器的分配、安全、利用率、共享以及扩展等 诸多问题。 n存储管理需要做的事情是: n将用户程序所用的地址空间转换为主存储器中的 实际地址空间,将用户程序的操作地址变换为存 储器上的具体位置。 n为存储空间提供安全和共享的手段。 n为用户程序实现虚拟存储空间等。 概述 nDOS分区及分段 nWindows XP的存储器 nLinux存储管理 实用系统中的存储管理方法 DOS分区及分段 主存储器被限制为 1MB的内存空间。 低端的640KB的基 本内存。 高端的扩展内存。 系统启动后将操作系 统调入基本内存的低端 位置,大概占几十KB 的空间。 基本内存的剩余部分便 是用来存放用户程序的 用户区。 在DOS发展的后期,已 经可以利用扩展内存来 存放系统的数据结构、 驱动程序以及某些库文 件等内容,但用户不能 对扩展存储器中的内容 进行修改。 程序和数据不能突 破基本内存的限制,因 此,用户程序的大小必 须低于640KB。 用户区内只能存放 一个用户程序,因此, DOS系统只支持单道程 序。 Windows xp的存储器 Windows xp要求存储器最低为64MB。 内存被划分为大小为4KB的页面。内存中可以存放多个 用户任务的页面,因此,Windows支持多任务同时运行。 用户在编制程序时,其大小最高可达4GB,但在程序运 行时,并不是全部程序都装入内存,而是只装入程序的部 分页面来运行。 当需要装入新的程序页面而内存中又没有足够的空闲区 域时,操作系统将内存中长期未使用的页面换出到辅助存 储器上早已安排的页面(paging file)文件中,腾出空间 后再将需要换进的页面调入。 Windows 支持虚拟存储器。 Windows xp的存储器 页 面 在 内 存 中 换 出 换 进 Page Faults/sec 是每秒 钟发生页面缺失的平均 数量。页面缺失将直接 导致页面换进。 Pages Input/sec 是从磁 盘换进页面的速度。 当一个进程引用一个虚 拟内存的页面,而此页 面不存在于内存,就会 发生页面缺失。 Pages Output/sec 是指 为了释放物理内存空间 而将页面写入磁盘的速 度。 当物理内存不足时, Windows 会将页面写回 到磁盘以便释放空间。 出页的峰值往往与进页 峰值接近。 说明出页多是因为有进 页需求,即只有当内存 中没有可分配空间,同 时又必须调入内存新的 页面时,才需要换出页 面。 Windows xp的存储器 可 用 物 理 内 存 Available MBytes 是计 算机上运行的进程的可 用物理内存大小。它是 将零的、空闲的和备用 内存列表的空间添加在 一起来计算的。 Linux存储管理 Linux系统也是将存储器空间划分成页面 ,根据进程运行时的需要来对页面进行换进 、换出的。 同样在磁盘上也安排了交换区来与内存 协调工作,以达到扩大内存的目的。 但是Linux系统的交换区多采用在硬盘上 划分出一个指定区域来作为交换区,因此, 交换区的大小不可变化。 4.1 内存管理功能 n用户实体与存储空间 n分配、释放及分配原则 n地址映射 n虚拟存储器 n存储保护与共享 n存储区整理 用户实体与存储器的关系 任务在被激活之前存放在辅助存储器上。 当任务被激活时,它成为进程进入主存储器。 进程的描述部分及主程序部分始终存放于主存储器, 其他程序和数据部分视需要由操作系统在内存与外存之 间交换。 当用户向计算机提交自己的任务时,存储管理是以一 种逻辑形式来进行描述。 而当操作系统处理用户的任务时,是对具体的存储器 地址进行操作。 存储管理的工作就是圆满地处理发生在衔接逻辑和物 理存储时所产生的各种问题。 存储空间与存储地址 概念: 逻辑地址 逻辑地址空间 物理地址 物理地址空间 用户的每一条程序指令要访问的数据都 有一个对应的地址,这个地址被称为逻 辑地址。 由于它是相对于0的地址,因此又被称 为相对地址。 当用户程序被编译为目标代码时也使用 的是相对地址。 原则上讲,因此用户可以无限制地加长 自己的程序。 在具体应用中相对地址的大小受相对地 址寄存器位数的限制,如在Windows 中 相对地址寄存器为32位,表示相对地址 最大可达4GB。 逻辑地址空间可以定义为:实体(用户 、作业、任务、进程或程序)所用的所 有逻辑地址的集合。 不同的操作系统赋予逻辑地址空间不同 的表现形式,它的大小也是可以确定的 。 用户可以直接对逻辑地址和逻辑地址空 间进行访问和操作。 逻辑地址空间又称为相对地址空间,有 时候也被简称为用户空间或者作业空间 。逻辑地址空间的大小被限制在0到相对 地址最大值之间。 内存中的实际地址被称为物理地址。 由于它并不和任何相对地址相关,因 此,物理地址又称为绝对地址。 物理地址的最小值为0,最大值取决 于内存的大小和内存地址寄存器的所 能表现的最大值,二者中较小的那一 个值为物理地址的最大值。 物理地址空间可以定义为:当逻辑地 址空间被映射到内存时所对应的物理 地址的集合。 物理地址空间又称为绝对地址空间。 物理地址空间并不是指物理内存,只 有当逻辑地址空间存在时,才会有物 理地址空间。 物理地址空间受存储器大小的限制, 也就是说物理地址空间最大只能达到 内存的大小。 一、地址重定位 装入后的作业并不能立即运行, 因为作业中每一个指令要访问的 地址依然是相对地址,相对地址 是逻辑地址空间中的地址,并不 是内存中的实际地址,因此不能 够访问。 装入是指将逻辑地址空间安 排到内存中具体的物理位置上 。 装入针对的是整个逻辑地址空 间。 1.装入2.地址映射 对于指令要访问的地址进行相对 地址到绝对地址的变换,就是地 址映射。 地址映射就是将逻辑地址空间中 的地址映射到物理地址空间中去 。采用的办法为重定位。 1.装入程 序 在装入过程完成后,根据装入的起始位 置来修改程序中指令要访问的地址,将 相对地址改为绝对地址就是重定位。 绝对地址 (BR) 相对地址 根据不同的地址修改时间可 将重定位划分为静态重定位 和动态重定位。 2.重定位: 静态重定位 动态重定位 静态重定位是在装入过程完成后在程序运行 前,一次将所有的指令要访问的地址全部修改 为绝对地址,在程序运行过程中不再修改。 静态重定位要求程序一旦装入其绝对地址空间 就不能发生变化了。 动态重定位是在程序的运行过程中,当指令需 要执行时对将要访问的地址进行修改。 动态重定位允许在程序运行过程中,其绝对地 址空间发生变化或被分割为不同的区域,变化后 只需要将基地址寄存器中的内容作对应修改。 采用静态重定位方式的主要优点是: (1)可以在一般机器上全部用软件实现软件实现。 (2)装入程序可以实现静态连接静态连接。 静态重定位方式主要缺点是: (1)执行期间程序不能不能在主存储器中移动移动 ,所以对提高主存储器的利用率不利。 (2)若程序空间大于被分配的物理空间, 由程序员自行采取某种手段来空间不足空间不足问题 ,如采用覆盖结构。 (3)用户不能共享不能共享已经存放在主存中的同 一个程序,如果几个用户要使用同一个程序 ,则每个用户必须在各自的主存空间中存放 一个程序副本。 采用动态重定位方式的主要优点有: (1)在程序开始执行之前,不一定要把整 个程序都调入到主存中。一个程序可以被分 配在多个不连续的主存物理空间内,以提高 主存储器的利用率。 (2)几个程序可以共享存放在主存中的同 一个程序段。 (3)支持虚拟存储器。 动态重定位方式的主要缺点有: (1)需要有硬件支持。 (2)实现存储管理的软件算法比较复杂。 二、 内存分配与回收 1.存储分配 2.存储释放 3.分配原则 在设计分配程序时需要考虑诸多因素: (1)内存空间的划分 (2)数据结构的确定 (3)作业空间的划分 (4)淘汰算法 (5)分配算法 存储分配实际上是将作 业的逻辑地址空间映射成 为内存中的物理地址空间 。 内存中有许多尚未使用 的区域即自由区都可以被 分配,但到底选择哪一自 由区必须依据分配算法来 确定。 存储释放实际上是解除 逻辑地址空间与物理地址 空间的联系,并释放物理 空间。 存储释放程序将回收的 内存区域重新设定为自由 区,并将其安排进入自由 区队列。进入自由区队列 的具体位置也必须依据分 配算法。 三、 存储保护与共享 存储保护就是要保护进程的数据不被非法 访问者破坏。 (1)界地址寄存器保护法 (2)访问授权保护 n (1)界地址寄存器保护法 采用硬件: 基地址寄存器BR 长度寄存器LR 采用软件: 当进程之间需要共享 某些数据时,使用界地址 寄存器就表现得无能为力 。 n (2)访问授权保护 当进程访问某个区域时,若进程的访问权限大于等 于被访问区域的权限值,访问可以进行,否则视为 非法。 系统为每一个存储区域都给 定一个访问权限值。 同时也为每一个进程赋予一 个访问权限值。 一个进程可以对不同存储区域有 不同的访问权限; 一个存储区域也可以被多个具有 不同访问权限的进程按权限级别进 行访问。 访问授权保护还有一个好处是它 允许存储区域的共享。 四、 虚拟存储器 (1)实际内存空间 (2)辅助存储器上的内存交换区 (3)虚拟地址 (4)换进、换出机制 n虚拟存储器是将内存进行虚拟,使用户能使 用比实际内存大得多的虚拟空间。 n要实现虚拟内存必须具备如下条件: 目前的操作系统几乎全部具 备虚拟存储器功能,虽然不同的 系统其实现虚拟存储器的基本条 件都相似,但在数据的换进、换 出策略上是可以不同的。 存储区整理 n当系统运行一段时间后,可能出现如下问 题: 产生许多碎片; 进程过分分散存储; 换进、换出的次数过多,导致系 统运行缓慢; 不断“内存空间不够”。 存储区需要整理。 n存储器的整理方法: (1)定期将内存中的碎片合并; (2)将某些进程的分散存储区域移动到一起。 n经过整理后 系统中有更大的自由分区,提高存储管理的效 率; 在整理时中断所有进程,并且需要消耗较多的 CPU时间。 4.2 分区管理 n单一分区分配方式 n多重固定分区分配方式 n多重动态分区分配方式 n伙伴系统 一、单一连续分配方式 1.原理 连续的用户 逻辑地址空 间,经过装 入程序直接 装入分区的 低地址部分 的单一的连 续的区域。 2.分配与释放 3.地址映射 采用静态重定位的方式在作业装入时 一次性对所有指令将要访问的地址进行 修改。 由于作业的物理地址空间不会发生变 化,因此,单一连续分区不适合使用动 态重定位。 4.存储保护 使用界地址寄存器保护法。其中,基 址寄存器的内容是操作系统常驻内存部 分以后的首地址,长度寄存器的内容便 是用户可用区域的长度。 由于操作系统不会发生变化,甚至可 以不使用界地址寄存器,而将基址和长 度用两个常量来代替 。 5.单一连续分区的优缺点 (1)管理简单。 (2)使用安全。 (3)不需要任何附加的硬件设备。 (1)作业的大小受用户区大小的限制。 (2)不支持多用户。 (3)容易造成系统资源的浪费。 二、多重固定分区分配方式 将内存空间由小到大 划分为若干个位置固定大 小不等的区域,每个区域 可以存放一个作业,存放 于不同区域的作业可以并 行。 用户逻辑地址空间依 然是一个连续的整体,在 作业申请进入内存时一次 性装入。 描述内存中每一个区 域的情况 描述存放于区域中的 作业 地址映射 由于作业被分配进入内存后位置不再发生变化,因此 ,地址映射可以采用静态重定位方法。不过我们要注意 到每一个作业的物理地址空间的起始位置是不相同的, 因此,对每一个作业进行重定位时要修正基址寄存器的 值。 存储保护 存储保护可以采取界地址寄存器的方法和访问授权 保护,由于作业在内存中的位置保持不变,可以用两个 常量替代界地址寄存。 优缺点: (1)提高了CPU的利用率 。 (2)作业大小受到最大分 区大小的限制。 (3)空间浪费。 (4)碎片问题。 三、 可变分区分配方式 根据作业对内存空间 的申请来划分主存区 域,区域的大小可变 、位置可变、数量也 可变 描述已被分配的区域 描述内存中的自由区域 为每一个自由分区设置一 个链接指针来指向下一个 自由分区,使所有的自由 分区形成一个链表 多重分区分配与释放 将作业分配到内存中第一 个碰到的大于或等于作业 申请空间的未分配区。 将作业申请大小与内存中 所有未分配区的大小进行 比较,直到找到最小的大 于或等于作业空间的区分 配给作业。 将作业申请大小与内存中 所有未分配区的大小进行 比较,直到找到最大的大 于或等于作业空间的区分 配给作业。 算法简单但分配比较盲目 ,可能造成较小的作业分 割了较大的空间,使大作 业无法被分配。 优先使用小的自由空间, 但每次分配以后的剩余空 间可能变得过小而成为碎 片。 使用大的自由空间,在进 行分割后剩余空间还可以 被使用,但也使大的自由 空间无法保留给需要大空 间的作业。 另外可以有: 最佳适应算法也是最先适应 算法 最坏适应算法也是最先适应 算法 如何实现? 几种方法比较 4.地址映射 动态分区采用动态重定位方式来实现地址映射,这 样作业的基地址发生变化也不会影响执行。 当作业被选择运行时,其物理空间起始地址被装入 基地址寄存器中,CPU每执行一条指令之前重定位硬件 对指令要访问的地址进行修改。 5.存储保护 存储保护可以采用界地址寄存器的方法和访问授权保 护,不过由于作业被分配于内存一个连续的区域中,访 问授权保护的作用似乎并不大,因为作业并没有对其他 作业空间的访问权力。 6.存储区整理 经过不断地分配和释放后,内存中自由分区会变得 越来越多和越来越小,这就使很多小自由分区成为 碎片。 可以用紧缩的方法来解决碎片。紧缩是将内存中已 使用区域经过移动沉淀到低地址部分,从而使碎片 浮动到内存的高地址部分合并成较大的可使用空间 。 用紧缩方法来消除碎片需要占用大量的CPU时间,并 且在移动过程中稍有不慎就有可能破坏全部数据。 7.多重动态分区的优缺点 (1)多道程度得以提高。 (2)提高了内存的利用率。 (3)作业大小依然受内存容量的限制。 (4)对碎片问题的解决需要以增加系统开销为代价。 (5)不便共享。 举例: 作业A要求18KB;作业B要求25KB;作业C要求30KB。 用首次适应算法、最佳适应算法来处理该作业序列,看哪种 算法合适。 os 在使用 在使用 在使用 30KB 5KB 46KB 0KB 20KB 100KB 20KB 160KB 210KB 256KB-1 (1) 首次适应算法中的自由主存队列 (a) 首次适应算法中的自由主存队 列 20KB 0 30KB 100KB 0 20KB 160KB 0 5KB 210KB 0 46KB os 在使用 在使用 在使用 30KB 5KB 46KB 0KB 20KB 100KB 20KB 160KB 210KB 256KB-1 (2) 最佳适应算法中的自由主存队列 (b) 最佳适应算法中的自由主存队列 160KB 0 5KB 100KB 0 20KB 20KB 0 30KB 210KB 0 46KB os 在使用 在使用 在使用 30KB 5KB 46KB 0KB 20KB 100KB 20KB 160KB 210KB 256KB-1 (a) 首次适应算法中的自由主存队列 20KB 0 30KB 100KB 0 20KB 160KB 0 5KB 210KB 0 46KB (b) 最佳适应算法中的自由主存队 列 160KB 0 5KB 100KB 0 20KB 20KB 0 30KB 210KB 0 46KB 作业A要求18KB 作业B要求25KB 作业C要求30KB 4.3 分页存储管理方式 页式系统应解决的问题 分区存储管理的主要问题是碎片问题。 在采用分区存储管理的系统中,会形成 一些非常小的分区,最终这些非常小的分区 不能被系统中的任何用户(程序)利用而浪 费。 造成这样问题的主要原因是用户程序装 入内存时是整体装入的,为解决这个问题, 提出了分页存储管理技术。 页式存储管理要解决如下问题 n页式存储管理系统的地址映射; n调入策略; n淘汰策略; n放置策略 一、 页式系统的基 本概念 (1) 页面 程序的地址空间被等 分成大小相等的片,称为 页面,又称为虚页。 (2) 主存块 主存被等分成大小相 等的片,称为主存块,又 称为实页。 (3) 页表 为了实现从地址空间到物理主存的映象 ,系统建立的记录页与内存块之间对应关系 的地址变换的机构称为页面映像表,简称页 表。 0 1KB 0 1KB 2KB 3KB1 主存 作业2地址空间 2KB 3KB 4KB 5KB 6KB 7KB 8KB 9KB 10KB1 0 1KB 2KB1 作业1地址空间 0 1KB1 作业3地址空间 05 16 页号块号 02 14 08 27 作业1页表 作业2页表 作业3页表 os os 分页映像存储的例 (4)虚地址结构(程序字) 虚地址是用户程序中的逻辑地址,它包括页号和 页内地址(页内位移)。 区分页号和页内地址的依椐是页的大小,页内地 址占虚地址的低位部分,页号占虚地址的高位部分。 假定页面大小1024字节,虚地址共占用2个字节 (16位) 页号 页内地址(位移量) P W 15 10 9 0 (5) 页式地址变换 l 页式地址变换举例 作业2地址空间中,设100号单元处有如下指令: mov r1,2500。当这条指令执行时,如何进行正确的地址变换。 mov r1 , 2500 123 0 1KB 1KB 3KB1 作业2地址空间 2500 2*1024 + 452 p=2 w=452 0000100111000100 000010 0111000100 l 页式地址变换过程 000111 0111000100 15 10 9 0 页号P页内位移W 页表始址寄存器 mov r1 , 2500 123 0 1KB 2KB 3KB1 作业2地址空间 + 02 14 27 页表 000010 0111000100 15 10 9 0 页号P页内位移W 2500 0 1KB 主存 2KB 3KB 4KB 5KB 6KB 7KB 8KB 9KB 10KB1 os os mov r1 , 2500 123 第1页 7*1024+452 =7620 l 页式地址变换的步骤 CPU给出操作数地址(为2500) ; 由分页机构自动地把逻辑地址分为两部分, 得到页号p和页内相对位移w (p =2, w =452); 根据页表始址寄存器指示的页表始地址,以 页号为索引,找到第2页所对应的块号(为7) ; 最后,将块号b和页内位移量w拼接在一起, 就形成了访问主存的物理地址 (7*1024+452=7620)。 二、静态分页管理 1、分配与回收 l在静态分页管理时,作业的一页可分配 到存储空间的任何一个可用的物理块中 作业完成后,系统回收分配给该作业的 内存块 l作业完成后,系统回收分配给该作业的 内存块 2、优缺点 (1)管理简单 (2)每访问一次内存数据需要经过二次寻址 。 (3)解决了碎片问题。无须内存碎片整理。 (4)无法实现共享。 (5)作业大小受内存可用页面数的限制。 如果想在内存中运行较大的作业, 则必须利用内存以外的存储空间。 例:有一系统采用页式存储管理,有一作业大小 是8KB,页大小为2KB,依次装入内存的第7、9、10、5 块,试将虚地址7145,3412转换成内存地址。 虚地址 3412 P3412 2048 1 W 3412 mod 2048 1364 MR=9*2048+1364=19796 虚地址3412的内存地址 是:19796 三、 请求分页管理 1.原 理 与静态分页管理不同 : 按需分配。将需要运行 的页面存放于内存,暂时不 需要运行的页面存放于辅存 ,当需要运行存放于辅存上 的页面时,再将对应的页面 调入内存。 注意页表变化 2.分配与 淘汰算法 动态分 配 分配与淘汰算法淘汰算法 衡量淘汰算法依据: 好的淘汰算法应该有较低的缺页率和淘汰率 。 选择在最远的将来才被访问的页面淘汰。 谁是最远的、将来才被访问的页面?选择最早进入内存的页面淘汰 这种方法包含一个假定: 最早进入内存的页面就是目前最不会被使 用的页面。 假定不成立?系统抖动! 选择最近一段时间内最长时间未被使用 的页面淘汰 该算法的假定:长时间未使用的页面不会马上被使用 。 这正好符合内存局部性原理(内存中某个位置现在被 访问,很快将再次被访问;某个位置现在被访问,其 邻近位置也将被访问。) 问题: 需要确定一个比较时间段来反映哪一个页面长期未被 使用,时间段过长时该算法将变为先进先出算法,时 间段过短又会使系统频繁地记录访问次数并进行比较 ,从而增加系统开销。 (4)最近未使用算法(NRU ) 选择页面选择指针遇到的 最近未被访问的页面淘汰 。 简化的方法是: 页面选择指针下移,只要遇到刚才 未使用的页面就可以淘汰。 例: 某作业有a,b,c,d四个页面,作业在运行过程中的访 问次序为:a,b,c,a,d,a,试计算采用FIFO和LRU淘汰算法, 各会产生几次缺页中断?(注:系统为该作业分配个内 存块) 缺页中断 次数 淘汰的 页面 进入主存 的页面 1-a 2-B 3-C 4ad 5ba 缺页中断 次数 淘汰的 页面 进入主存 的页面 1-a 2-b 3-c 4bd LRUFIFO 举例 FIFO算法的异常现象(Belady) 设进程共有8页,且已在内存中分配有3个 页面,程序访问内存的顺序为 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1. 求缺页次数和缺页率, 当分配4个页面时,缺页次数和缺页率为多 少? 又进程P有5页,访问串为 1,2,3,4,1,2,5,1,2,3,4,5.P分得3 个页面,情况如何? 当分配4个页面时,会出现什么 情况? 虚拟存储器 动态分页技术实现了虚拟存储器 。 虚拟要素? 3.加速寻址 二次寻址 ? 一次寻址 ? 举例 n有一页式系统,页表放在主存中 n如对主存的一次存取需1.5us,试问实现一次页面 访问的存取时间是多少? n如系统有快表,平均命中率为85%,当页表在快 表中时,查找时间忽略为0。此时的存取时间为多 少? n解:(1)1.5*2=3us n(2)0.85*1.5+(1-0.85) *2*1.5=1.725us。 4.分页管理的优缺点 (1)管理简单。 (2)支持虚拟存储器。 (3)无法实现共享。 作业空间按逻辑意义分割! 4.4 段式管理 n简单分段管理 n请求分段管理 一、 基本概念 作业地址空间按逻辑意义划分成段, 每段都有其对应的段号和段长,对分 段数量和分段的长度没有限制。 内存空间采用多重动态分 区的形式,分区的长度和 位置没有限制。 段表将作业中的段对应于内 存中的分区。有缺段机制。 1.分段 2.逻辑地 址 段号S 段内位移d 每个段的段内位移的范围 是不同的。 分页管理中,逻辑地址是线性地址。 分段管理中,段号S和段内位移d不能形成一 个线性地址,因为它实际上是代表着段长和段内位 移两个变量。 由于这两个变量没有特定的限制范围而无法 用一个变量来替代,因此分段管理的逻辑地址是二 维地址,分段管理的逻辑地址空间是二维空间。 3.数据结 构 段表 段表寄存器 内存分块表 Or已使用分区表 自由分区表 自由分区块链 作业表 4.地址映 射 段表中段号为S的表目地址(段 表寄存器)表目长度S 段表起始地址(段表寄存器) 对应的内存分区地址S 绝对地址Sd 二、简单分段 系统为每一个段分配一个连续的存 储空间,而段和段之间可以不连续,离 散地分配到内存的不同区域。 系统为每个进程建立一张段表 三、请求分段 1、分配与释 放 首先为作业分配段表空间; 分配主程序段: 按一定的分配算法(内存空间采用动态分区 形式,因此分配算法可采用最先适应算法、最佳适 应算法或者最坏适应算法。) 填写段表: 填入对应段表表目中该段的内存地址,其他 暂时不在内存的段,缺段状态置为1,在需要运行时 再调入。 当作业空间逻辑分段 后,用户是靠调用来 实现段与段之间的关 系,而存储管理将其 实现称为连接 连接也可以分为静态连接与动态连接。 2、连接 静态连接发生在作业刚装 入内存还没有被执行前, 一次完成所有连接。 动态连接发生在执行过程 中,每当作业段与段之间 产生调用要求时才进行连 接。 问题:作业段必须一次全 部调入内存,限制了作业 的大小,对内存的容量要 求高。 作业中的各段没有必要一次 全部调入,这极大的提高了 内存的利用率。 分段管理采用的是动态连接方式。 3、共享 4、存储保护 n 在段表中既有段的起始位置 也有段的长度, 实现作业区域的界限管理 。 n 在段表中增加一个访问权限 项, 实现访问授权控制。 5、虚拟存储器 缺段中断机制+换进、换出, 实现了虚拟存储器。 6、分段管理的特点 (1)易于实现共享。 (2)实现了动态连接。 (3)实现了虚拟存储器。 (4)段长受内存容量的限制。 (5)内存管理复杂。 有没有同时利用分页管理和分段管理 的优点,克服它们的弱点管理方法? 4.5 段页式管理 将程序分为多个逻辑段,在每个段 里面又进行分页。 分段和分页的组合。 1、基本原理 作业地址空间分段再分页 内存分块(页框) 对应页表是否在内存 对应页面是否在内存 2.逻辑地址 段号页号 页内位移 一维地址 二维地址 3.数据结构 段表 页表 段表寄存器 存储分块表 作业表 4.地址映射 5.分配与释放 段表分配 页表分配 内存块分配 淘汰算法 6.连接与共享 连接页表动态连接(段连接) 共享同分段管理的共享 7.存储保护 同分段管理的存储保护 8.虚拟存储器 缺段中断+缺页中断+淘汰算法 9.存储区整理 只存在页内碎片 10.快速寻址 使用高速存储器来存放常用页面的页表, 页表内容为:段号、页号和块号。 各种存储管理方案比较 常用系统的存储管理方案 nDOS系统存储管理 nWindows XP的存储管 理 nLinux系统的存储管理 DOS系统存储管理 n 单一连续分区方式,用户程序一次全部调 入内存。 用户地址空间可以分为四段。 用来存放程序的代码段,用来存放数据的数 据段,用来实现数据操作的堆栈段,用来处 理数组的地址段。这些段不需要连续存放, 用户甚至可以指定段的相对位置。段的起始 地址由对应的段寄存器来指定,绝对地址由 段地址加上段内位移来确定。 如果用户程序必须突破640KB的限制,可以 采用称为覆盖的技术来进行编程。 覆盖技术实际上是同层模块对同一个内存区域的覆 盖使用,以此来节约内存空间。如果用户程序采用 了覆盖技术,只要不同层次的最大模块的总和不超 过640KB,该程序就可以运行。 DOS系统只能识别1MB以内的内存空间。 Windows 的存储管理 nWindows xp使用的是486以上I386系列CPU提供的段 页式管理。CPU提供了一个16位的段选择器和32位 的偏移地址寄存器,因此,允许用户空间分段,每段 最大可达4GB。内存空间分为大小为4KB的块。 nWindows xp为每个进程提供4GB的虚拟存储器,它 由物理内存和用户驱动器根目录上的页面文件( paging file)构成,虚拟空间的实现是由在内存与页 面文件之间的交换来完成的,交换的基本单位为4KB 的页面。虚拟地址有前、后两个64KB的保护区,该 保护区的应用是为了防止编程错误而设定的。用户程 序的虚拟地址起始位实际为0x00400000。 Windows 的存储管理 n4GB的虚拟地址又被分割成两个2GB空间,低端的 2GB提供给用户进程使用,内装用户进程的程序代 码、数据等,高端的2GB为系统进程使用。 n用户进程的虚拟地址空间被分为自由、已确认和保 留三个部分: n虚拟内存的确认区:具有备用的物理内存,根据该区域设 定的访问权限,用户可以进行写、读或在其中执行程序等 操作。 n虚拟内存的保留区:没有备用的物理内存,但具有一定的 访问权限。 n虚拟内存的自由区:不限定其用途,其相应的权限为不可 访问。 Windows 的存储管理 n与虚拟内存相关的访问权限告诉系统进程可在内存 中进行何种类型的操作。如只读权限(可以在该区 域上读,但不能写或者执行),执行权限(不能在 该区域上读或写,但能执行),非访问权限(不允 许进程对其地址进行任何操作)。 nWindows xp还提供了在小块内存中动态分配和释放 内存的处理程序应用程序堆,应用程序堆对这 种内存管理来说,无论是资源上还是运行上都是很 高效的。 n另外,Windows xp还提供了其他几个内存扩展工具 如内存块清空、内存块覆盖、内存块复制等。 Linux系统的存储管理 n由于Linux系统也使用的是486以上的微机,它也利 用了486的分页技术来实现虚拟存储器。在系统安装 时从硬盘上划出一块区域作为交换区,系统运行时 通过页面的换进、换出来扩大存储空间。 n整个虚拟空间可以划分为16K个段,每个段的大小 可变,最大能够达到4GB,每个段可以提供独立的 段内保护。每个虚拟地址空间(16K个段)可以分 为相等的两个部分,一半称为全局虚拟地址空间, 由全局段描述符表(Global Descriptor Label, GDT)映射,另一半称为局部虚拟地址空间,由局 部段描述符表(Local Descriptor Label, LDT)映

温馨提示

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

评论

0/150

提交评论