存储器管理分析总结

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

存储器管理分析总结一、理解主存管理需要实现的功能1、地址映射1)定义:为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,此过程即为地址映射。2)地址映射分类:a.静态重定位当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在装入内存时由软件完成)。b.动态重定位在程序运行过程中要访问数据时再进行地址变换(即在逐条指令执行时完成地址映射。一般为了提高效率,此工作由硬件地址映射机制来完成。由硬件支持,软件硬件结合完成。硬件上一般需要一对寄存器的支持)。3)个人理解:a.地址映射的目的:增加逻辑地址的概念,可以理解为系统为每个任务提供了一个虚拟内存,任务执行时同时存在两个内存,虚拟内存和物理内存,操作系统对虚拟内存进行操作,对内存管理起来更方便;而物理内存主要就是对应硬件的真实地址;b.地址映射的步骤:对于静态地址映射,在程序烧写到处理器时,已经完成了地址的映射,并且映射关系已固定,一般内核中大部分代码就是实现的静态地址映射;对于动态地址映射,首先操作系统先申请一块虚拟内存,之后调用映射函数之后,才实现了物理内存的分配,这个主要用于用户进程中。2、主存储空间的分配和释放1)定义:合理地分配和使用存储空间也是内存管理的重要内容,通过实时合理的分配和释放内存,能达到内存使用率的最大化。2)个人理解:这个所谓的主存储的分配和释放,是指操作系统是否对虚拟内存进行管理分配,不是完全有用户程序决定。3、主存储空间的保护1)定义:对于主存储器而言,其同时存在多个用户程序和系统软件。为使系统正常工作,必须防止由于一个用户程序出错而破坏同时存在主存内的系统软件或其他用户的程序,还须防止一个用户程序不合法地访问并非分配给它的主存区域。因此,存储保护是多道程序和多处理机系统必不可少的部分,也是存储管理中非常重要的一部分。2)存储保护方法分类:a.对于连续存储区域,采用防止地址越界方法:采用界限寄存器,限定存储区域的上下界限。b.对于非连续存储区域,采用防止操作越权方法:(这其中又可以细化为二种方法)--键式保护:每个页面区域都包含一个存储键,表明了存储区域控制和保护的信息。--环状保护:把系统程序和用户程序按重要性分层,称为环,对每个环都规定访问它的级别,违反规定的存取操作是非法的,以此实现对正在执行的程序的保护。3)个人理解:a.后面的所有存储保护机制都是采用防止地址越界和防止操作越权两种方法来实现的。4、主存储空间的共享1)定义:允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址。2)优点:使用共享内存进行进程间的通信实现方便,数据的共享还使进程间的数据不用传送,而是直接访问内存,也加快了程序的效率。3)缺点:多个进程使用共享内存块时,必须达成一种协议,不然会造成混乱,这个必须通过其他的比如信号量等方式来实现。5、主存储空间的扩充1)定义:有限的内存容量远远不能满足大程序以及共存于内存的多个程序的存储要求,这就得借助于一些存储技术来实现内存的扩充。2)实现方法:一般采用虚拟存储技术(涉及到交换技术),其使每个用户作业都对应有一个虚存,用户编程时不必考虑实存的大小,也就是说,一个虚拟存储器就是一个作业的逻辑地址空间。虚存的容量与内存的容量没有直接联系,而是由处理机的地址线的位数来决定的。其具体实现采用了交换技术,实现缓存和内存之间的交换。二、主存管理方式的发展及其对比1、连续存储空间管理方式具体有多种形式大类别连续存储空间管理方式小类别无管理单一分区固定分区(亦为静态分区)动态分区定义无操作系统用于对于内存的管理的方式有操作系统,内存分为系统区和用户区。系统区用于存放操作系统程序,用户区用于存放用户程序系统开机初启时,系统操作员根据当天作业情况把主存的用户区划分成大小可以不等但位置固定的分区系统根据进程需要分配内存,不划分固定分区特点1)由于没有操作系统内存管理的支持,用户通过自己编程负责所有的内存管理工作,直接对物理地址进行操作;2)仅有物理内存,没有虚拟内存;3)不存在内存的分配和释放问题,用户面对的是一个内存全为空的内存,用户可以以任意方式使用内存,具有最大的灵活性;4)仅适用于单道程序设计。1)用户区最多存放一道用户程序。2)可以使用静态地址映射。若有硬件(重定位寄存器)的支持,也可以使用动态地址映射;3)基本不存在存储扩充的问题。在上面的右图中,若用户程序较大,覆盖了操作系统程序中可被覆盖的部分,则当此用户程序结束后,操作系统需重新加载被覆盖的部分。这种方式在一定程序上扩充了用户区域;4)不存在内存的分配和释放问题,用户面对的用户区内存全为空,用户可以以任意方式使用内存,具有最大的灵活性;5)一般仅适用于单道系统。所以这种方式具有单道系统的所有缺点,主要是系统效率不高;6)使用交换技术,也可以支持多道系统。1)存储管理需设置一张“主存分配表”,用以记录主存中划分的分区和分区的使用情况。当一个程序需要加载运行,系统可以择一个大小合适的空闲分区分配出去。当程序结束而释放分区时,将分区状态设置为空闲即可;2)存在内部碎片(分区内未被利用空间);3)实现地址映射。静态地址映射或者动态地址映射;4)实现存储保护,防止地址越界和防止操作越权;5)实现共享很困难;6)可以使用交换技术或覆盖技术扩充内存。1)不对用户区实施固定分区,在实现主存储空间的分配和释放时,由操作系统根据用户需要来分配内存;2)这样产生的问题是容易产生内存外部碎片(难以利用的小空闲分区),可以采用拼接技术,解决碎片问题。3)程序动态增长问题,如果该程序相邻的分区是空闲的,将此空闲分区分配给该进程;若与该程序相邻的分区不空闲,则将该程序移动到一个更大的空闲分区中,或者将内存中的一个或多个非空闲分区交换到磁盘上的交换区中,若交换区已满,则该程序只能等待或者被杀死。4)其唯一的优点就是实现简单。相较于之前管理方式的区别1)无地址映射2)无主存分配和释放3)无存储保护4)无主存储空间的共享5)无主存储空间的扩充1)实现了地址映射,可以采用静态地址映射或动态地址映射2)实现存储保护,静态地址映射采用防止地址越界方法,动态地址映射采用防止操作越权方法3)可以牺牲系统区来扩充内存,方法不是很好1)在内存分配时,把用户区分成一个个固定大小的分区,再来分配2)实现主存储空间的分配和释放,系统对用户区分配实行控制3)使用交换技术或覆盖技术扩充内存,仍存在问题1)改善了主存储空间的分配和释放,摒弃了用户区固定分区亟待优化功能1)预先规定了分区大小,使得大程序无法装入2)主存空间的利用率不高,一个作业不可能恰好填满分区;同时一个作业运行中要求动态扩充主存,采用固定分区难实现3)各分区作业要共享程序和数据也难实现。4)分区的数目是在系统初启时确定的,这就限制了多道运行的程序数。1)对空间分配的连续性要求使得对于空间的使用不灵活,导致空间使用效率不高。2)存在碎片问题,也会导致空间使用效率降低。尽管可以使用拼接技术解决碎片问题,但是拼接技术是一个成本很高的方法。提高分配阀值虽有助于减少碎片,但是会降低内存使用空间效率。3)程序的动态增长较困难。4)几乎不支持虚拟存储技术5)不支持内存共享。2、非连续存储空间管理方式也具有多种形式大类别非连续存储空间管理方式小类别页模式段模式段页模式定义通过对内存分页,实现虚拟存储技术通过对内存分段,实现虚拟存储技术通过对内存分段同时分页,实现内存管理特点1)分页机制支持虚拟存储技术;2)虚拟存储技术,用户只关心虚拟地址,其物理地址的实现可以通过交换技术,实现缓存和内存的切换,从而实现对内存的扩充;3)使用分页时,每个端被划分为页面(通常每页4KB),页面存储与物理内存或硬盘上,操作系统通过维护一个页目录和一些页表来留意这些页表信息;4)分页管理页面的保护,可采用的是防止操作越权的保护方式,在页表中增加一些访问标志位;也可采取存储保护键作为保护机制;或者越界访问控制。1)实现内存分段,通过段模式实现对主存储器的共享操作。1)段页式管理的地址映射,实现段和页的二级映射虚拟地址到线性地址再到物理地址;2)段页式管理是基于页式管理的分配与释放,所以段页式管理的主存分配与释放和页式管理相同;3)段页式管理所支持的虚拟存储综合分页和分段的虚拟存储;4)段页式管理所支持的共享与保护综合和分页和分段的共享与保护。需要注意的是,可能存在两级访问控制:段的访问控制和页的访问控制,显然,页的访问控制不能超过段的访问控制。相较于之前管理方式的区别1)增加页概念,优化了存储保护;2)主存储空间的扩充中实现了虚拟存储技术,1)区别于页模式的一种段模式处理方式;2)实现了主存储的共享问题。1)实现地址映射2)实现主存分配和释放3)实现存储保护4)实现主存储空间的共享5)实现主存储空间的扩充亟待优化功能1)对于内存的共享没有很好的解决1)庞大的映射表对于存储来说也是一种负担;2)不断查询映射表也会增加系统负担,影响系统效率。3、页模式、段模式和段页模式的深层次对比分析类别页模式段模式段页模式目的1.页是信息的物理单位;2.分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;3.分页仅仅是由于系统管理的需要,而不是用户的需要1.段是信息的逻辑单位,它含有一组其意义相对完整的信息。2.分段的目的是为了能更好的满足用户的需要1.分页系统能有效地提高内存的利用率,而分段系统能反映程序的逻辑结构,便于段的共享与保护,将分页与分段两种存储方式结合起来,就形成了段页式存储管理方式;2.在段页式存储管理系统中,作业的地址空间首先被分成若干个逻辑分段,每段都有自己的段号,然后再将每段分成若干个大小相等的页。对于主存空间也分成大小相等的页,主存的分配以页为单位;3.段页式系统中,作业的地址结构包含三部分的内容:段号页号页内位移量4.程序员按照分段系统的地址结构将地址分为段号与段内位移量,地址变换机构将段内位移量分解为页号和页内位移量;5.为实现段页式存储管理,系统应为每个进程设置一个段表,包括每段的段号,该段的页表始址和页表长度。每个段有自己的页表,记录段中的每一页的页号和存放在主存中的物理块号。长度1.页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面1.段的长度却不固定,决定于用户所编写的程序,通常由编辑程序在对源程序进行编辑时,根据信息的性质来划分地址表示1.分页的作业地址空间是维一的,即单一的线性空间,程序员只须利用一个记忆符,即可表示一地址1.分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址存取权限1.只有读和写1.有读、写和执行内存连续性1.物理内存不连续1.物理空间不连续,但段内连续优势1.也可以实现程序和数据的共享,但没有段模式方便易行1.易于实现段的共享,允许若干个进程共享一个或多个分段,且对段的保护也十分简单易行三、分页管理机制1、页式管理的基本概念分页机制支持虚拟存储技术。在使用虚拟存储的环境中,大容量的线性地址空间需要使用小块的物理内存以及某些外部存储空间来模拟。使用分页时,每个端被划分为页面(通常每页4KB),页面存储于物理内存或硬盘上,操作系统通过维护一个页目录和一些页表来留意这些页表信息。2、页表结构3、页式管理的地址映射4、页式管理要解决的一些问题1)如何标识一个页是否位于内存中。2)当需要从若干个已经在内存中的逻辑页中选择一个淘汰掉,那么淘汰哪一个。3)若已经决定将某页淘汰,但是发现此页是一个脏页(dirtypage),即该页被放置到内存中后,曾经被修改过,那么如何标识一个脏页,又如何淘汰脏页。4)从理论上来说,仅分配给该程序一个内存块就可以使程序运行,这样做会有什么后果?给一个程序分配多少个内存

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功