《操作系统讲稿第四章内存管理》由会员分享,可在线阅读,更多相关《操作系统讲稿第四章内存管理(100页珍藏版)》请在金锄头文库上搜索。
1、第四章 内存管理,主存储器是仅次于CPU的宝贵资源。 众多进程共用一个存储器,必然涉及到存储器的分配、安全、利用率、共享以及扩展等诸多问题。 存储管理需要做的事情是: 将用户程序所用的地址空间转换为主存储器中的实际地址空间,将用户程序的操作地址变换为存储器上的具体位置。 为存储空间提供安全和共享的手段。 为用户程序实现虚拟存储空间等。,概述,DOS分区及分段 Windows XP的存储器 Linux存储管理,实用系统中的存储管理方法,DOS分区及分段,系统启动后将操作系统调入基本内存的低端位置,大概占几十KB的空间。,基本内存的剩余部分便是用来存放用户程序的用户区。,在DOS发展的后期,已经可
2、以利用扩展内存来存放系统的数据结构、驱动程序以及某些库文件等内容,但用户不能对扩展存储器中的内容进行修改。,Windows xp的存储器,Windows xp要求存储器最低为64MB。 内存被划分为大小为4KB的页面。内存中可以存放多个用户任务的页面,因此,Windows支持多任务同时运行。 用户在编制程序时,其大小最高可达4GB,但在程序运行时,并不是全部程序都装入内存,而是只装入程序的部分页面来运行。 当需要装入新的程序页面而内存中又没有足够的空闲区域时,操作系统将内存中长期未使用的页面换出到辅助存储器上早已安排的页面(paging file)文件中,腾出空间后再将需要换进的页面调入。 W
3、indows 支持虚拟存储器。,Windows xp的存储器,页面在内存中换出换进,Page Faults/sec 是每秒钟发生页面缺失的平均数量。页面缺失将直接导致页面换进。,Pages Input/sec 是从磁盘换进页面的速度。 当一个进程引用一个虚拟内存的页面,而此页面不存在于内存,就会发生页面缺失。,Pages Output/sec 是指为了释放物理内存空间而将页面写入磁盘的速度。 当物理内存不足时,Windows 会将页面写回到磁盘以便释放空间。,出页的峰值往往与进页峰值接近。 说明出页多是因为有进页需求,即只有当内存中没有可分配空间,同时又必须调入内存新的页面时,才需要换出页面。
4、,Windows xp的存储器,可用物理内存,Available MBytes 是计算机上运行的进程的可用物理内存大小。它是将零的、空闲的和备用内存列表的空间添加在一起来计算的。,Linux存储管理,Linux系统也是将存储器空间划分成页面,根据进程运行时的需要来对页面进行换进、换出的。同样在磁盘上也安排了交换区来与内存协调工作,以达到扩大内存的目的。但是Linux系统的交换区多采用在硬盘上划分出一个指定区域来作为交换区,因此,交换区的大小不可变化。,4.1 内存管理功能,用户实体与存储空间 分配、释放及分配原则 地址映射 虚拟存储器 存储保护与共享 存储区整理,用户实体与存储器的关系,任务在
5、被激活之前存放在辅助存储器上。 当任务被激活时,它成为进程进入主存储器。 进程的描述部分及主程序部分始终存放于主存储器,其他程序和数据部分视需要由操作系统在内存与外存之间交换。 当用户向计算机提交自己的任务时,存储管理是以一种逻辑形式来进行描述。 而当操作系统处理用户的任务时,是对具体的存储器地址进行操作。 存储管理的工作就是圆满地处理发生在衔接逻辑和物理存储时所产生的各种问题。,存储空间与存储地址,概念:逻辑地址逻辑地址空间物理地址物理地址空间,一、地址重定位,装入后的作业并不能立即运行,因为作业中每一个指令要访问的地址依然是相对地址,相对地址是逻辑地址空间中的地址,并不是内存中的实际地址,
6、因此不能够访问。,1.装入,2.地址映射,1.装入程序,在装入过程完成后,根据装入的起始位置来修改程序中指令要访问的地址,将相对地址改为绝对地址就是重定位。 绝对地址 (BR) 相对地址,根据不同的地址修改时间可将重定位划分为静态重定位和动态重定位。,2.重定位: 静态重定位 动态重定位,采用静态重定位方式的主要优点是: (1)可以在一般机器上全部用软件实现。 (2)装入程序可以实现静态连接。 静态重定位方式主要缺点是: (1)执行期间程序不能在主存储器中移动,所以对提高主存储器的利用率不利。 (2)若程序空间大于被分配的物理空间,由程序员自行采取某种手段来空间不足问题,如采用覆盖结构。 (3
7、)用户不能共享已经存放在主存中的同一个程序,如果几个用户要使用同一个程序,则每个用户必须在各自的主存空间中存放一个程序副本。,采用动态重定位方式的主要优点有: (1)在程序开始执行之前,不一定要把整个程序都调入到主存中。一个程序可以被分配在多个不连续的主存物理空间内,以提高主存储器的利用率。 (2)几个程序可以共享存放在主存中的同一个程序段。 (3)支持虚拟存储器。 动态重定位方式的主要缺点有: (1)需要有硬件支持。 (2)实现存储管理的软件算法比较复杂。,二、 内存分配与回收,1.存储分配 2.存储释放 3.分配原则,在设计分配程序时需要考虑诸多因素: (1)内存空间的划分 (2)数据结构
8、的确定 (3)作业空间的划分 (4)淘汰算法 (5)分配算法,存储分配实际上是将作业的逻辑地址空间映射成为内存中的物理地址空间。内存中有许多尚未使用的区域即自由区都可以被分配,但到底选择哪一自由区必须依据分配算法来确定。,存储释放实际上是解除逻辑地址空间与物理地址空间的联系,并释放物理空间。存储释放程序将回收的内存区域重新设定为自由区,并将其安排进入自由区队列。进入自由区队列的具体位置也必须依据分配算法。,三、 存储保护与共享,存储保护就是要保护进程的数据不被非法访问者破坏。 (1)界地址寄存器保护法(2)访问授权保护,(1)界地址寄存器保护法采用硬件:基地址寄存器BR长度寄存器LR采用软件:
9、,(2)访问授权保护,当进程访问某个区域时,若进程的访问权限大于等于被访问区域的权限值,访问可以进行,否则视为非法。,系统为每一个存储区域都给定一个访问权限值。,同时也为每一个进程赋予一个访问权限值。,四、 虚拟存储器,(1)实际内存空间 (2)辅助存储器上的内存交换区 (3)虚拟地址 (4)换进、换出机制,虚拟存储器是将内存进行虚拟,使用户能使用比实际内存大得多的虚拟空间。 要实现虚拟内存必须具备如下条件:,目前的操作系统几乎全部具备虚拟存储器功能,虽然不同的系统其实现虚拟存储器的基本条件都相似,但在数据的换进、换出策略上是可以不同的。,存储区整理,当系统运行一段时间后,可能出现如下问题:产
10、生许多碎片;进程过分分散存储;换进、换出的次数过多,导致系统运行缓慢;不断“内存空间不够”。存储区需要整理。,存储器的整理方法:(1)定期将内存中的碎片合并;(2)将某些进程的分散存储区域移动到一起。 经过整理后系统中有更大的自由分区,提高存储管理的效率;在整理时中断所有进程,并且需要消耗较多的CPU时间。,4.2 分区管理,单一分区分配方式 多重固定分区分配方式 多重动态分区分配方式 伙伴系统,一、单一连续分配方式,1.原理连续的用户逻辑地址空间,经过装入程序直接装入分区的低地址部分的单一的连续的区域。,2.分配与释放,3.地址映射,采用静态重定位的方式在作业装入时一次性对所有指令将要访问的
11、地址进行修改。由于作业的物理地址空间不会发生变化,因此,单一连续分区不适合使用动态重定位。,4.存储保护,使用界地址寄存器保护法。其中,基址寄存器的内容是操作系统常驻内存部分以后的首地址,长度寄存器的内容便是用户可用区域的长度。由于操作系统不会发生变化,甚至可以不使用界地址寄存器,而将基址和长度用两个常量来代替 。,5.单一连续分区的优缺点,二、多重固定分区分配方式,将内存空间由小到大划分为若干个位置固定大小不等的区域,每个区域可以存放一个作业,存放于不同区域的作业可以并行。用户逻辑地址空间依然是一个连续的整体,在作业申请进入内存时一次性装入。,描述内存中每一个区域的情况,描述存放于区域中的作
12、业,地址映射由于作业被分配进入内存后位置不再发生变化,因此,地址映射可以采用静态重定位方法。不过我们要注意到每一个作业的物理地址空间的起始位置是不相同的,因此,对每一个作业进行重定位时要修正基址寄存器的值。 存储保护存储保护可以采取界地址寄存器的方法和访问授权保护,由于作业在内存中的位置保持不变,可以用两个常量替代界地址寄存。,优缺点:,(1)提高了CPU的利用率。 (2)作业大小受到最大分区大小的限制。 (3)空间浪费。 (4)碎片问题。,三、 可变分区分配方式,根据作业对内存空间的申请来划分主存区域,区域的大小可变、位置可变、数量也可变,描述已被分配的区域,描述内存中的自由区域,为每一个自
13、由分区设置一个链接指针来指向下一个自由分区,使所有的自由分区形成一个链表,多重分区分配与释放,将作业分配到内存中第一个碰到的大于或等于作业申请空间的未分配区。,将作业申请大小与内存中所有未分配区的大小进行比较,直到找到最小的大于或等于作业空间的区分配给作业。,将作业申请大小与内存中所有未分配区的大小进行比较,直到找到最大的大于或等于作业空间的区分配给作业。,算法简单但分配比较盲目,可能造成较小的作业分割了较大的空间,使大作业无法被分配。,优先使用小的自由空间,但每次分配以后的剩余空间可能变得过小而成为碎片。,使用大的自由空间,在进行分割后剩余空间还可以被使用,但也使大的自由空间无法保留给需要大
14、空间的作业。,几种方法比较,4.地址映射动态分区采用动态重定位方式来实现地址映射,这样作业的基地址发生变化也不会影响执行。当作业被选择运行时,其物理空间起始地址被装入基地址寄存器中,CPU每执行一条指令之前重定位硬件对指令要访问的地址进行修改。 5.存储保护存储保护可以采用界地址寄存器的方法和访问授权保护,不过由于作业被分配于内存一个连续的区域中,访问授权保护的作用似乎并不大,因为作业并没有对其他作业空间的访问权力。,6.存储区整理 经过不断地分配和释放后,内存中自由分区会变得越来越多和越来越小,这就使很多小自由分区成为碎片。 可以用紧缩的方法来解决碎片。紧缩是将内存中已使用区域经过移动沉淀到
15、低地址部分,从而使碎片浮动到内存的高地址部分合并成较大的可使用空间。 用紧缩方法来消除碎片需要占用大量的CPU时间,并且在移动过程中稍有不慎就有可能破坏全部数据。,7.多重动态分区的优缺点 (1)多道程度得以提高。 (2)提高了内存的利用率。 (3)作业大小依然受内存容量的限制。 (4)对碎片问题的解决需要以增加系统开销为代价。 (5)不便共享。,举例:作业A要求18KB;作业B要求25KB;作业C要求30KB。用首次适应算法、最佳适应算法来处理该作业序列,看哪种算法合适。,(1) 首次适应算法中的自由主存队列,(2) 最佳适应算法中的自由主存队列,作业A要求18KB 作业B要求25KB 作业
16、C要求30KB,4.3 分页存储管理方式,页式系统应解决的问题分区存储管理的主要问题是碎片问题。在采用分区存储管理的系统中,会形成一些非常小的分区,最终这些非常小的分区不能被系统中的任何用户(程序)利用而浪费。造成这样问题的主要原因是用户程序装入内存时是整体装入的,为解决这个问题,提出了分页存储管理技术。,页式存储管理要解决如下问题页式存储管理系统的地址映射; 调入策略; 淘汰策略; 放置策略,一、 页式系统的基本概念(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地址空间,