收藏 分销(赏)

操作系统讲稿第四章内存管理.ppt

上传人:快乐****生活 文档编号:14649952 上传时间:2026-10-25 格式:PPT 页数:100 大小:1.18MB 下载积分:10 金币
下载 相关
操作系统讲稿第四章内存管理.ppt_第1页
第1页 / 共100页
操作系统讲稿第四章内存管理.ppt_第2页
第2页 / 共100页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第四章 内存管理,主存储器是仅次于CPU的宝贵资源。,众多进程共用一个存储器,必然涉及到存储器的分配、安全、利用率、共享以及扩展等诸多问题。,存储管理需要做的事情是:,将用户程序所用的地址空间转换为主存储器中的实际地址空间,将用户程序的操作地址变换为存储器上的具体位置。,为存储空间提供安全和共享的手段。,为用户程序实现虚拟存储空间等。,概述,DOS分区及分段,Windows XP的存储器,Linux存储管理,实用系统中的存储管理方法,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 会将页面写回到磁盘以便释放空间。,出页的峰值往往与进页峰值接近。,说明出页多是因为有进页需求,即只有当内存中没有可分配空间,同时又必须调入内存新的页面时,才需要换出页面。,4.1 内存管理功能,用户实体与存储空间,分配、释放及分配原则,地址映射,虚拟存储器,存储保护与共享,存储区整理,用户实体与存储器的关系,任务,在被激活之前,存放在辅助存储器,上。,当任务被激活时,它成为,进程进入主存储器,。,进程的描述,部分,及主程序,部分始终存放于,主存储器,,,其他,程序和数据部分视需要由操作系统,在内存与外存之间交换,。,当用户向计算机,提交,自己的,任务,时,存储管理是以一种,逻辑形式,来进行描述。,而当操作系统,处理,用户的,任务,时,是对具体的,存储器,地址进行操作。,存储管理,的工作就是圆满地处理发生在,衔接逻辑和物理存储,时所产生的各种问题。,存储空间与存储地址,概念:,逻辑地址,逻辑地址空间,物理地址,物理地址空间,用户的每一条程序指令要访问的数据都有一个对应的地址,这个地址被称为,逻辑地址,。,由于它是相对于,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)访问授权保护,(1)界地址寄存器保护法,采用硬件:,基地址寄存器BR,长度寄存器LR,采用软件:,当进程之间需要共享某些数据时,使用界地址寄存器就表现得无能为力。,(2)访问授权保护,当进程访问某个区域时,若进程的,访问权限大于等于被访问区域的权限值,,访问可以进行,否则视为非法。,系统为每一个,存储区域,都给定一个,访问权限值。,同时也为每一个,进程,赋予一个,访问权限值,。,一个进程可以对不同存储区域有不同的访问权限;,一个存储区域也可以被多个具有不同访问权限的进程按权限级别进行访问。,访问授权保护还有一个好处是它允许存储区域的共享。,四、虚拟存储器,(1)实际内存空间,(2)辅助存储器上的内存交换区,(3)虚拟地址,(4)换进、换出机制,虚拟存储器是将内存进行虚拟,使用户能使用比实际内存大得多的虚拟空间。,要实现虚拟内存必须具备如下条件:,目前的操作系统几乎,全部,具备虚拟存储器功能,虽然不同的系统其实现虚拟存储器的,基本条件都相似,,但在数据的换进、换出,策略上是可以不同,的。,存储区整理,当系统运行一段时间后,可能出现如下,问题,:,产生许多,碎片,;,进程过分,分散存储,;,换进、换出的次数过多,导致系统,运行缓慢,;,不断“,内存空间不够,”。,存储区,需要整理,。,存储器的,整理方法,:,(1)定期将内存中的,碎片合并;,(2)将某些,进程,的分散存储区域,移动,到一起。,经过,整理后,系统中有更大的自由分区,,提高,存储管理的,效率,;,在整理时中断所有进程,并且需要,消耗较多的CPU时间,。,4.2 分区管理,单一分区分配方式,多重固定分区分配方式,多重动态分区分配方式,伙伴系统,一、单一连续分配方式,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,2,0KB,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 分页存储管理方式,页式系统应解决的问题,分区存储管理的主要问题是碎片问题。,在采用分区存储管理的系统中,会形成一些非常小的分区,最终这些非常小的分区不能被系统中的任何用户(程序)利用而浪费。,造成这样问题的主要原因是用户程序装入内存时是整体装入的,为解决这个问题,提出了分页存储管理技术。,页式存储管理要解决如下问题,页式存储管理系统的地址映射;,调入策略;,淘汰策略;,放置策略,一、,页式系统的基本概念,(1)页面,程序的地址空间被等分成大小相等的片,称为页面,又称为虚页。,(2)主存块,主存被等分成大小相等的片,称为主存块,又称为实页。,(3)页表,为了实现从地址空间到物理主存的映象,系统建立的记录页与内存块之间对应关系的地址变换的机构称为页面映像表,简称页表。,0,1KB,0,1KB,2KB,3KB,1,主存,作业2地址空间,2KB,3KB,4KB,5KB,6KB,7KB,8KB,9KB,10KB,1,0,1KB,2KB,1,作业1地址空间,0,1KB,1,作业3地址空间,0,5,1,6,页号,块号,0,2,1,4,0,8,2,7,作业1页表,作业2页表,作业3页表,os,os,分页映像存储的例,(4)虚地址结构(程序字),虚地址是用户程序中的逻辑地址,它包括页号和页内地址(页内位移)。,区分页号和页内地址的依椐是页的大小,页内地址占虚地址的低位部分,页号占虚地址的高位部分。,假定页面大小1024字节,虚地址共占用2个字节(16位),页号 页内地址(位移量),P W,15 10 9 0,(5),页式地址变换,页式地址变换举例,作业,2,地址空间中,设,100,号单元处有如下指令:,mov,r1,2500,。,当这条指令执行时,如何进行正确的地址变换。,mov,r,1,2500,123,0,1KB,1KB,3KB,1,作业2地址空间,2500,2*1024 +452,p=2 w=452,0000100111000100 000010 0111000100,页式地址变换过程,000111 0111000100,15 10 9 0,页号P,页内位移W,页表始址寄存器,mov,r,1,2500,123,0,1KB,2KB,3KB,1,作业2地址空间,+,0,2,1,4,2,7,页表,000010 0111000100,15 10 9 0,页号P,页内位移W,2500,0,1KB,主存,2KB,3KB,4KB,5KB,6KB,7KB,8KB,9KB,10KB,1,os,os,mov,r,1,2500,123,第1页,7*1024+452,=7620,页式地址变换的步骤,CPU,给出操作数地址,(,为,2500),;,由分页机构自动地把逻辑地址分为两部分,得到页号,p,和页内相对位移,w(p=2,,,w=452),;,根据页表始址寄存器指示的页表始地址,以页号为索引,找到第,2,页所对应的块号,(,为,7),;,最后,将块号,b,和页内位移量,w,拼接在一起,就形成了访问主存的物理地址,(7*1024+452=7620),。,二、静态分页管理,1、分配与回收,在静态分页管理时,作业的一页可分配到存储空间的任何一个可用的物理块中 作业完成后,系统回收分配给该作业的内存块,作业完成后,系统回收分配给该作业的内存块,2、优缺点,(1)管理,简单,(2)每访问一次内存数据需要经过,二次寻址,。,(3)解决了,碎片问题,。,无,须内存碎片整理。,(4),无,法实现,共享,。,(5)作业大小受内存可用页面数的,限制,。,如果想在内存中运行较大的作业,则必须,利用内存以外的存储空间,。,例:有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、10、5块,试将虚地址7145,3412转换成内存地址。,虚地址,3412,P,3412,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,4,a,d,5,b,a,缺页中断次数,淘汰的页面,进入主存的页面,1,-,a,2,-,b,3,-,c,4,b,d,LRU,FIFO,举例,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.加速寻址,二次寻址?,一次寻址?,举例,有一页式系统,页表放在主存中,如对主存的一次存取需1.5us,试问实现一次页面访问的存取时间是多少?,如系统有快表,平均命中率为85%,当页表在快表中时,查找时间忽略为0。此时的存取时间为多少?,解:(1)1.5*2=3us,(2)0.85*1.5+(1-0.85)*2*1.5=1.725us。,4.分页管理的优缺点,(,1,)管理简单。,(,2,)支持虚拟存储器。,(,3,)无法实现共享。,作业空间按逻辑意义分割!,4.4 段式管理,简单分段管理,请求分段管理,一、基本概念,作业地址空间按逻辑意义划分成段,每段都有其对应的段号和段长,对分段数量和分段的长度没有限制。,内存空间采用多重动态分区的形式,分区的长度和位置没有限制。,段表将作业中的段对应于内存中的分区。有缺段机制。,1.,分段,2.,逻辑地址,段号S,段内位移d,每个段的段内位移的范围是,不同,的。,分页管理,中,逻辑地址是,线性地址,。,分段管理,中,段号,S,和段内位移,d,不能形成一个线性地址,因为它实际上是代表着段长和段内位移,两个变量,。,由于这两个变量没有特定的限制范围而无法用一个变量来替代,因此分段管理的,逻辑地址是二维地址,,分段管理的逻辑地址空间是,二维空间,。,3.,数据结构,段表,段表寄存器,内存分块表,Or已使用分区表,自由分区表,自由分区块链,作业表,4.,地址映射,段表中段号为S的表目地址(段表寄存器)表目长度,S,段表起始地址(段表寄存器),对应的内存分区地址S,绝对地址Sd,二、简单分段,系统为每一个段分配一个连续的存储空间,而段和段之间可以不连续,离散地分配到内存的不同区域。,系统为每个进程建立一张段表,三、请求分段,1、分配与释放,首先为作业,分配,段表,空间;,分配,主程序段:,按一定的,分配算法,(内存空间采用动态分区形式,因此分配算法可采用最先适应算法、最佳适应算法或者最坏适应算法。),填写段表,:,填入对应段表表目中该段的内存地址,其他暂时,不在内存,的段,,缺段状态,置为,1,,在需要运行时再调入。,当作业空间逻辑分段后,,用户,是靠,调用,来实现段与段之间的关系,而存储管理将其实现称为,连接,连接也可以分为,静态连接,与,动态连接,。,2、连接,静态连接,发生在作业刚装入内存还,没有被执行前,,,一次完成所有连接。,动态连接,发生在,执行过程中,,每当作业段与段之间产生调用要求时才进行连接。,问题,:作业段必须一次全部调入内存,限制了作业的大小,对内存的容量要求高。,作业中的各段没有必要一次全部调入,这极大的提高了内存的利用率。,分段管理采用的是动态连接方式。,3、共享,4、存储保护,在段表中既有段的起始位置也有段的长度,,实现作业区域的,界限管理,。,在段表中增加一个访问权限项,,实现,访问授权控制,。,5、,虚拟存储器,缺段中断机制+换进、换出,,实现了,虚拟存储器,。,6、,分段管理的特点,(,1,)易于实现,共享,。,(,2,)实现了,动态连接,。,(,3,)实现了,虚拟存储器,。,(,4,),段长,受内存容量的,限制,。,(,5,)内存,管理复杂,。,有没有同时,利用,分页管理和分段管理的,优点,,,克服,它们的,弱点,管理方法?,4.5,段页式管理,将程序分为多个逻辑段,在每个段里面又进行分页。,分段和分页的组合。,1、基本原理,作业地址空间,分段,再,分页,内存,分块(页框),对应,页表,是否在内存,对应,页面,是否在内存,2.逻辑地址,段号,页号,页内位移,一维地址,二维地址,3.数据结构,段表,页表,段表寄存器,存储分块表,作业表,4.,地址映射,5.,分配与释放,段表分配,页表分配,内存块分配,淘汰算法,6.,连接与共享,连接,页表动态连接(段连接),共享,同分段管理的共享,7.,存储保护,同分段管理的存储保护,8.,虚拟存储器,缺段中断,+,缺页中断,+,淘汰算法,9.,存储区整理,只存在页内碎片,10.,快速寻址,使用高速存储器来存放常用页面的页表,页表内容为:段号、页号和块号。,各种存储管理方案比较,常用系统的存储管理方案,DOS系统存储管理,Windows XP的存储管理,Linux系统的存储管理,DOS,系统存储管理,单一连续分区方式,用户程序一次全部调入内存。,用户地址空间可以分为四段。,用来存放程序的,代码段,,用来存放数据的,数据段,,用来实现数据操作的,堆栈段,,用来处理数组的,地址段,。这些段,不需要连续存放,,用户甚至可以指定段的相对位置。段的起始地址由对应的段寄存器来指定,,绝对地址由段地址加上段内位移来确定,。,如果用户程序必须突破,640KB,的限制,可以采用称为,覆盖,的技术来进行编程。,覆盖技术实际上是,同层模块,对同一个内存区域的,覆盖使用,,以此来节约内存空间。如果用户程序采用了覆盖技术,只要不同层次的最大模块的总和不超过640KB,该程序就可以运行。,DOS,系统只能识别,1MB,以内的内存空间。,Windows,的存储管理,Windows xp,使用的是,486,以上,I386,系列,CPU,提供的,段页式管理,。,CPU,提供了一个,16,位的段选择器,和,32位的偏移地址寄存器,,因此,允许用户空间分段,每段最大可达,4GB,。内存空间分为大小为,4KB,的块。,Windows xp,为每个进程提供,4GB,的虚拟存储器,,它由物理内存和用户驱动器根目录上的页面文件(,paging file,)构成,虚拟空间的实现是由在内存与页面文件之间的交换来完成的,交换的基本单位为,4KB,的页面。,虚拟地址有前、后两个,64KB,的保护区,,该保护区的应用是为了防止编程错误而设定的。用户程序的虚拟地址起始位实际为,0 x00400000,。,Windows,的存储管理,4GB,的虚拟地址又被分割成,两个,2GB,空间,,低端的,2GB,提供给,用户进程,使用,内装用户进程的程序代码、数据等,高端的,2GB,为,系统进程,使用。,用户进程的,虚拟地址空间,被分为自由、已确认和保留,三个部分,:,虚拟内存的确认区:具有备用的物理内存,根据该区域设定的访问权限,用户可以进行写、读或在其中执行程序等操作。,虚拟内存的保留区:没有备用的物理内存,但具有一定的访问权限。,虚拟内存的自由区:不限定其用途,其相应的权限为不可访问。,Windows,的存储管理,与虚拟内存相关的,访问权限,告诉系统进程可在内存中进行何种类型的操作。如,只读,权限(可以在该区域上读,但不能写或者执行),,执行,权限(不能在该区域上读或写,但能执行),,非访问,权限(不允许进程对其地址进行任何操作)。,Windows xp,还提供了,在小块内存中动态分配和释放内存,的处理程序,应用程序堆,,应用程序堆对这种内存管理来说,无论是资源上还是运行上都是很高效的。,另外,,Windows xp,还提供了其他几个内存,扩展工具,如内存块清空、内存块覆盖、内存块复制等。,Linux,系统的存储管理,由于,Linux,系统也使用的是,486,以上的微机,它也利用了,486,的分页技术来,实现虚拟存储器,。在系统安装时从硬盘上划出一块区域作为,交换区,,系统运行时通过页面的,换进、换出,来扩大存储空间。,整个虚拟空间可以划分为,16K,个段,,每个段的大小可变,最大能够达到,4GB,,每个段可以提供独立的段内保护。每个,虚拟地址空间,(,16K,个段)可以分为相等的,两个部分,,一半称为,全局虚拟地址空间,,由全局段描述符表(,Global Descriptor Label,,,GDT,)映射,另一半称为,局部虚拟地址空间,,由局部段描述符表(,Local Descriptor Label,,,LDT,)映射。,Linux,系统的存储管理,在同一个任务内部,还提供,4,种(,03,)保护特权级,,某一级特权,i,只可以访问所有其他大于等于这一特权级的程序段。,进程的虚拟空间包括了系统(内核)空间和用户空间两个部分,它们分别处于不同的特权级。,内核,空间,特权级为,0,,进程执行这个空间的指令,称为处于内核态(或者系统态);,用户,空间的,特权级为,3,,进程执行这个空间的指令,称为处于用户态。,Linux系统采用,记龄(aging)淘汰算法,。Linux系统根据访问次数来决定是否适合换出,,优先换出那些很长时间没有访问的页面,。,本,章,小,结,存储管理涉及到对内存的划分、分配与释放、地址映射、存储保护、存储共享、虚拟存储器等诸多方面。,分页管理简单易行,分段管理利于共享,段页式管理集中了所有存储管理的优点。,存储管理采用动态分配和淘汰算法进行内存和外存页面的换进、换出来实现虚拟存储器。也采用动态连接技术和用户空间的合理划分来实现对存储区的共享。,DOS系统采用了单一连续分区的方案,作业大小受内存容量的限制。Windows xp和Linux系统采用动态段页式管理,在内存与外存之间进行大小为4KB的页面交换。,举例,1、某操作系统采用可变分区分配存储管理方法,用户区为512K,且初始地址为0。用空闲分区表管理空闲分区。若分配时采用分配空闲区低地址部分的方案,且初始时用户区的512K空间空闲,对下述申请序列:,申请300K,申请100K,释放300K,申请150K,申请30K,申请40K,申请60K,释放30K。,试回答:(1)采用首次适应算法,空闲区中有那些空块,(2)采用最佳适应算法,空闲区中有那些空块,(3)如再申请100K,针对(1)和(2)各有什么结果?,解:(1),已分配空闲初始无(0,512)申请300K(0,300)(300,212)申请100K(0,300)、(300,100)(400,112)释放300K(300,100)(0,300)、(400,112)申请150K(0,150)、(300,100)(150,150)、(400,112)申请30K(0,150)(150,30)(300,100)(180,120)(400,112)申请40K(0,150)(150,30)(300,100)(180,40)(220,80)(400,112)申请60K释放30K,2、在一个分页存储管理系统中,逻辑地址长度为16位,页面大小为4096字节。现有一逻辑地址为2F6AH,且第0,1,2页依次存放在物理块5,10,11中,问相应的物理地址为多少?,(,0010,1111,0110,1010,因页面大小为4096,则页内位移占11位,2 F 6 A,页号为2,对应11(B)块BF6AH),3、在采用页式存储管理的系统中,某作业J的逻辑地址空间为4页,每页大小为2048字节,且已知该作业的页面映象表为:,页号 块号,0 2,1 4,2 6,3 8,求有效逻辑地址4865所对应物理地址,解:页号 4865/2048=2,页内位移 4865-2048*2=769,块号=6,物理地址=6*2048+769=13057,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服