资源预览内容
第1页 / 共68页
第2页 / 共68页
第3页 / 共68页
第4页 / 共68页
第5页 / 共68页
第6页 / 共68页
第7页 / 共68页
第8页 / 共68页
第9页 / 共68页
第10页 / 共68页
亲,该文档总共68页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基本概念 单个分区的存储管理 多个分区的存储管理 分页式存储管理 分段式存储管理 虚拟存储管理一、基本概念内存储器(简称内存、主存、物理存储器)处理机能直接访问的存储器。用来存放系统 和用户的程序和数据,其特点是存取速度快,存 储方式是以新换旧,断电信息丢失。 外存储器(简称外存、辅助存储器)处理机不能直接访问的存储器。用来存放用 户的各种信息,存取速度相对内存而言要慢得多 ,但它可用来长期保存用户信息。在文件系统中 介绍。存储器分类指导思想:利用辅存(如磁盘、磁带等)提 供的大容量存储空间,存放准备运行的程序 和数据,当需要时或主存空间允许时,随时 将它们读入主存储器。信息的二级存储CPU主 存辅 存磁 盘 磁 带存储器的层次结构通用寄存器高速缓存主存硬盘大容量存储器存储容量增大单位容量的价格增加存储管理内存的物理组织物理地址:把内存分成若干个大小相 等的存储单元,每个单元给 一个编号,这个编号称为内 存地址(物理地址、绝对地 址、实地址),存储单元占8 位,称作字节(byte)。 物理地址空间:物理地址的集合称为物理 地址空间(主存地址空间) ,它是一个一维的线性空间 。程序的逻辑结构程序地址:用户编程序时所用的地址(或称逻辑地址 、 虚地址 ),基本单位可与内存的基本单位相同,也可以 不相同。 程序地址空间(逻辑地址空间、虚地址空间):用户的程 序地址的集合称为逻辑地址空间,它的编址总是从0开始 的,可以是一维线性空间,也可以是多维空间。存储管理的功能主存空间的分配和回收:一个有效的存储分配机制,应在用 户提出需求时提供快速响应,为之分配相应的的存储空间; 在用户作业不再需要它时,及时回收,以供其它用户使用地址转换:存储管理必须能够配合硬件完成用户程序中所使 用的逻辑地址到程序实际执行时所使用的物理地址之间的转 换工作,以保证处理器的正确执行。主存空间的扩充:借助虚拟存储技术或其它交换技术,达到 在逻辑上扩充主存容量,亦即为用户提供主存物理空间大得 多的地址空间,以至使得用户感觉他的作业是在这样一个大 的存储器中运行。主存空间的共享和保护:共享主存指的是多个作业共同使用 主存中的某个区域,以提高主存利用率。主存的保护指的是 确保多道程序都能在各自分配到的主存区域内工作,互不干 扰,防止一道程序破坏其它作业的信息,特别要防止破坏系 统程序。重定位绝对地址:主存中每个物理存储单元的编号称为“绝对地址” 或“物理地址”,它们可以被存储控制部件所识别。逻辑地址:源程序经编译后得到的目标程序总是以0为起始地 址,其它地址都是以此顺序安排下来,都是相对于0这个起始 地址的,这种地址称为“逻辑地址”。名空间:我们把再一个用高级语言编写得源程序中由程序员建 立得符号名字空间称为“名空间”。地址空间:把源程序经编译后得到的目标程序所限定的地址范 围称为这个程序的“地址空间”。存储空间:主存中一系列物理单元的集合称为存储空间。显然,地址空间是逻辑地址的集合,存储空间是绝对地址或物 理地址的集合,一个是逻辑的概念,一个是物理的实体。重定位:一个作业的逻辑地址向物理地址的转换 ,称为重定位(也称为地址映射)。编程或编译时确定地址映射关系:编程时确定虚 实地址的关系是指在用机器指令编程时,程序 员直接按物理内存地址编程,这种程序在系统中 是不能做任何移动的,否则就会出错。静态重定位: 地址变换过程发生在程序装入时, 且由重定位装入程序完成。采用这种重定位方式 时,系统的存储分配只能采用静态分配策略。动态重定位:地址变换过程发生在程序执行过程 中访问每条指令和数据时连续进行,且由硬件重 定位机构来实现。采用这种重定位方式时,系统 的存储分配可以采用动态分配策略。LOAD 1, 50012345LOAD 1, 550012345010050070005000510055005700静态重定位LOAD 1, 5001234501005005007005005000LOAD 1, 5001234505000510055005700+动态重定位在装入作业时,不进行地址转换,而是直接把作 业装入到分配的主存区域中。在作业执行过程中 ,每当执行一条指令时,都由硬件的地址转换机 构将指令中的逻辑地址转换成物理地址,地址转 换工作是在作业执行时完成的。存储保护在多道程序设计的环境下,系统中有系统 程序和多个用户程序同时存在,如何保证用户 程序不破坏系统程序,用户程序之间不相互干 扰?这就是存储保护所要解决的问题常用的存储保护有两种: 上、下界寄存器保护 基址、限长寄存器保护上下界寄存器保护下界寄存器 存放程序装入内存后的开始地址(首址) 上界寄存器 存放程序装入内存后的末地址判别式: 下界寄存器 物理地址 上界寄存器例题:有一程序装入内存的首地址是500,末地址是1500,访问内存的逻辑地址是500、345、1000。下界寄存器:500上界寄存器:1500逻辑地址装入内存的首地 物理地址1、500500 1000 500 1000 15002、345500 845 500 845 15003、1000500 1500 500 1500 1500二、一个分区的存储管理采用静态分配和静态重定位方式。OS常住部分用户程序空闲区fence覆盖所谓覆盖是指一个作业的若干程序段( 或数据段)间或几个作业的某些部分间共享 某主存空间。覆盖技术要求程序员提供一个 清楚的覆盖结构,即程序员要把一个程序划 分成不同的程序段,并规定好它们的执行和 覆盖的次序。操作系统则根据程序员提供的 覆盖结构,完成程序段之间的覆盖。A (20k)C (30k)F (30k)程序结构B (50k)D (20k)E (40k)020k50k70k90k 100kABCDEF020k20k70k70k100k20k50k50k 70k50k90k程序的覆盖结构交换交换方式是由操作系统把那些在内存中处于等 待状态的进程换出内存,而把那些处于就绪状态的 进程换入内存操作系统用户区进程 P1进程 P2换出换入三、多个分区的存储管理固定分区固定分区管理方式是预先把可分配的主存 空间分割成若干个连续区域,每个区域的大小 可以相同,也可以不同。一旦分好,则每个分 区的大小固定,不再变化,且分区的个数也不 再改变。q 固定分区 q 可变分区 q 可重定位分区作 业 1作 业 2作 业 3操作系统分区1分区2分区3CPU当前运行作 业所在分区2bc上限寄存器下限寄存器abcdOS常住部分J1 J2J3032k 48k16k80k144k256k32k64k112k固定分区顺序分配的算法流程是查看分区表 的第I个表目已分配 ?分区长度xkI为分区表最 后一个表目置表目中 状态位为1装入作业J无法分配,作业J等待是作业J申请xk主存否是否I = 0I = I + 1否地址转换:可采用静态重定位方式存储保护措施:CPU下界上界内存寻址错寻址错地址是是否否采用固定分区方式的问题:主存利用率不高。改 进的方法: 划分分区时按分区的大小顺序排列。 根据经常出现的作业的大小和频率划分分区。 按作业对主存的需求量排成多个作业。操作系统分区1分区2分区3作业队列2作业队列1作业队列3L1L2L3可变分区所谓可变分区是指,系统并不预先 划分几个固定分区。分区的建立是在作 业的处理过程中进行的,其大小随作业 的主存需求量而决定。在这种管理方式 下,系统中任一时刻分区的大小及个数 ,都是不固定而可改变的。可变分区管理的数据结构操作系统J1J3400k01000k2000k2300k2560k已分配区表空闲区表分区的分配算法最优适应算法:将空闲分区按其存储空间的大小,从小 到大顺序组成链。每次查找从链首开始,第一个满足要 求的空闲分区将被分配最坏适应算法:空闲分区按其空间大小,从大到小组成 链。每次查找从链首开始,第一个满足要求的空闲分区 将被分配最先适应算法:空闲分区按其在存储空间中的地址,以 递增顺序组成链。每次查找从链首开始,第一个满足要 求的空闲分区将被分配下次适应算法:是最先适应算法的一种改进。空闲分区 的链接顺序同最先适应算法,但它是一个循环链。每次 为存储请求查找合适的空闲分区时,总是从上次查找结 束的地方开始。空闲分区1空闲分区2free空闲分区n按分区的大小从小到大链接空闲分区1空闲分区2free空闲分区n按分区的大小从大到小链接最优适应算法最坏适应算法空闲分区1空闲分区2free空闲分区n按分区的地址从低到高链接空闲分区1空闲分区2free空闲分区n按分区的地址从低到高链接最先适应算法下次适应算法分区的回收a 回收区下面 邻接空闲区b 回收区上面 邻接空闲区c 回收区上、 下邻接空闲区d 回收区不邻 接任何空闲区回收区使用区空闲区地址转换:一般可采用动态重定位方式,基址寄 存器的内容加上逻辑地址(相对地址)就可得到 绝对地址(物理地址)。存储保护:将逻辑地址(相对地址)与限长寄存 器的内容进行比较,如逻辑地址(相对地址)大 于限长寄存器的值,表明地址越界。地址越界CPU内存逻辑地址是否限长基址物理地址例题:在可变分区管理中,有那些分区分配算法?各有何优缺点?最优适应算法空闲分区按空间大小的顺序从小到大链接在一起。系统在查找 空闲分区时,总是从最小的一个开始。其实质是,在系统中寻找与 要求大小最接近的空闲分区。优点:如果存在有在正好满足所要求大小的空闲分区,则必然被选 中,或者只对比要求稍大的空闲分区进行划分,而绝不会划分一个 更大的空闲分区。缺点:寻找一个较大空闲区时花费的时间较多;回收时把回收的空 闲区插入到链中合适的位置较为费时;系统中,小的空闲区较多。最坏适应算法空闲分区按空间大小的顺序从大到小链接在一起。系统在查找 空闲分区时,总是从最大的一个开始。优点:克服了最优适应算法留下许多小的碎片的不足缺点:保留大的空闲区的可能性减小了,而且分区的回收也和最优 适应算法一样复杂。最先适应算法空闲分区按其在内存中位置的顺序从低地址到高地址链接在一起, 即每个后继空闲区的起始地址总是比前面的大。系统在查找空闲分区时 ,按照空闲区的链的顺序,依次查询,直到找到第一个满足要求的空闲 区为止。其实质是,尽可能利用存储器的低地址部分,尽量保存高地址 部分的空闲区。优点:当需要一个较大的分区时,容易得到满足。缺点:在回收一个分区时,需要花费较多的时间查找链表,以确定插入 位置。下次适应算法空闲分区按其在内存中位置的顺序从低地址到高地址链接在一起, 与最先适应算法不同的是,每次查找都是从上次查找结束的位置开始。 其实质是,空闲分区可以比较均匀的分布在内存中。缺点:寻找一个较大空闲区时花费的时间较多;回收时把回收的空闲区 插入到链中合适的位置较为费时。例题:对下图所示的分区分配情况(其中,阴影部分表示已占用 分区,空白部分表示空闲分区),若要申请一块40KB的分区: 100KB100KB80KB10KB90KB50KB60KB100KB180KB190KB280KB330KB390KB 20KB101KB410KB511KB 对于最优适应分配算法得到的空闲分区的首地 址是 :A、110KB B、190BK C、330BK D、410BK 若要使被分配得到的空闲分区的首地址最大, 则应采取的分配策略是 :A、最先适应分配算法 B、最优适应分配算法C、最坏适应分配算法D、单一连续区的分配算法100KB0KB 100KB80KB10KB90KB50KB60KB100KB180KB190KB280KB330KB390KB 20KB101KB410KB511KB60KBFREE80KB90KB101KB最优适应分配算法得到的空闲分区的首地址为330KB 申请一块40KB的分区60KB
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号