c++_存储空间管理概要

上传人:今*** 文档编号:107184332 上传时间:2019-10-18 格式:PPT 页数:68 大小:1.47MB
返回 下载 相关 举报
c++_存储空间管理概要_第1页
第1页 / 共68页
c++_存储空间管理概要_第2页
第2页 / 共68页
c++_存储空间管理概要_第3页
第3页 / 共68页
c++_存储空间管理概要_第4页
第4页 / 共68页
c++_存储空间管理概要_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《c++_存储空间管理概要》由会员分享,可在线阅读,更多相关《c++_存储空间管理概要(68页珍藏版)》请在金锄头文库上搜索。

1、存储空间管理,东南大学电气工程学院,定义,存储器的分级结构: 寄存器 高速缓冲存储器(缓存) 内存储器(简称内存、主存、物理存储器) 处理机能直接访问的存储器。用来存放系统和用户的程序和数据,其特点是存取速度快,存储方式是以新换旧,断电信息丢失。 外存储器(简称外存、辅助存储器) 处理机不能直接访问的存储器。用来存放用户的各种信息,存取速度相对内存而言要慢得多,但它可用来长期保存用户信息。 内存存储器管理 外存文件管理,存储器管理的功能(系统区和用户区,针对用户区) 存储空间的分配与管理; 地址重定位(逻辑地址与物理地址的对应关系) 存储保护 存储空间扩充:虚拟存储器技术以及各种调度算法。,存

2、储器管理,地址重定位 分区存储管理 覆盖和交换 页面式存储管理 请求式页面存储管理 段式存储管理 段页式存储管理,地址重定位,地址空间和存储空间,逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。 其首地址为0,其余指令中的地址都相对于首地址来编址。 不能用逻辑地址在内存中读取信息。 物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。 地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。,逻辑地址、物理地址和地址映射,地址映射,1100,Load A,1200,3456,。,。,。,1200,物理地址空

3、间,Load A,data1,data1 3456,源程序,Load A,200,3456,0,100,200,编译连接,逻辑地址空间,BA=1000,地址重定位,地址重定位:实现程序的相对地址空间到绝对地址空间之间的映射。 程序在成为进程前的准备工作 编辑:形成源文件(符号地址) 编译:形成目标模块(模块内符号地址解析) 链接:由多个目标模块或程序库生成可执行文件(模块间符号地址解析) 装入:构造PCB,形成进程(使用物理地址) 重定位方法: 静态重定位:是指在程序装入主存时已经完成了逻辑地址到物理地址的变换,在程序执行期间不会再发生变化. 动态重定位:在程序运行期间完成逻辑地址到物理地址的

4、变换.,地址重定位,分区存储管理,基本思想:将主存储空间划分成若干个连续的存储区,称为分区。每个分区只能存储一道程序,一个程序只能访问其所在分区的存储单元。,单一连续区存储管理 适用于单道程序系统 内存分为两个连续区域:系统区,用户区。应用程序装入到用户区,可使用用户区全部空间。 最简单,适用于单道程序设计的OS。 优点:易于管理。 缺点:对要求内存空间少的程序,造成内存浪费(空闲存储区)。,0H,7FFFH,FFFFFH,操作系统,用户程序区,08000H,界限寄存器,中断矢量表,空闲区,单片机中的内存设置,基本思想:把内存分为一些大小相等或不等连续区域分区(partition),每个分区只

5、能驻留一个程序。操作系统占用其中一个分区。 特点:适用于多道程序系统和分时系统 支持多个程序并发执行 问题:存在碎片(小得难以使用的分区)问题,可能存在内部碎片和外部碎片。 内部碎片:占用分区之内未被利用的空间 外部碎片:占用分区之间难以利用的空闲分区(通常是小空闲分区)。,固定分区存储管理,分区存储管理,固定分区(大小相同),固定分区(多种大小),分区存储管理,优点:简单易于实现,开销小。 缺点: 内部碎片造成浪费 分区总数固定,限制了并发执行的程序数目。 采用的数据结构:分区表(分区说明表)记录分区的大小和使用情况,Operating System,空闲分区,分区5,作业C,分区4,分区3

6、,分区2,分区1,空闲分区,作业B,作业A,00000H,08000H,0A000H,12000H,1A000H,3A000H,内存分区说明表,分区存储管理,动态分区:在装入作业和处理过程中,按其要求的内存容量以及当时的内存资源使用情况,将一块大小与所要求相近的存储区分配给作业。 优点:没有内部碎片。 缺点:有外部碎片。,动态分区(dynamic partitioning),分区存储管理,分区存储管理,分区存储管理,Process2结束,Process4运行,分区存储管理,Process1结束,Process2再运行,分区的数据结构:分区表,或分区链表 可以只记录空闲分区,也可以同时记录空闲和

7、占用分区 单一分区表中,表项数目随着内存的分配和释放而动态改变,表长难以确定,分配回收分区时降低查找速度。 分区表可以划分为两个表:空闲分区表,使用分区表。从而减小每个表长度。空闲分区表(一般常用链表结构)中按不同分配算法相应对表项排序。 分区分配和释放算法 最先匹配法(first-fit):可能造成碎片化问题 最佳匹配法(best-fit):每次要从碎片开始查找,回收算法复杂 最差匹配法(worst-fit):分配速度快,碎片小,动态分区管理:,分区存储管理,引入:其目标是在较小的可用内存中运行较大的程序。常用于多道程序系统,与分区存储管理配合使用。 基本思想:一个作业的若干程序段,或几个作

8、业的某些部分共享同一存储区。 优点:解决小主存容量与大作业之间的矛盾。 缺点:实现覆盖管理的系统开销较大。,覆盖和交换,覆盖(overlay),注:另一种覆盖方法:(100K) A(20K)占一个分区:20K; B(50K)、D(20K)和E(40K)共用一个分区:50K; F(30K)和C(30K)共用一个分区:30K;,覆盖技术,不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖。(即不同时用的模块可共用一个分区),缺点: 1、确定覆盖关系的复杂度 2、牺牲时间换取空间,引入:解决主存容量不足的矛盾。多个程序并发执行,可以将暂时不能执行的程序送到外存中,从而获得空闲内存空间来装入新程

9、序,或读入保存在外存中而目前到达就绪状态的进程。交换单位为整个进程的地址空间。常用于多道程序系统或小型分时系统中,与分区存储管理配合使用。又称作“对换”或“滚进/滚出(roll-in/roll-out)”。 基本思想:暂停执行内存中的进程,将整个进程的地址空间保存到外存的交换区中(换出swap out),而将外存中由阻塞变为就绪的进程的地址空间读入到内存中,并将该进程送到就绪队列(换入swap in)。,交换,优点:增加并发运行的程序数目,并且给用户提供适当的响应时间;编写程序时不影响程序结构。 缺点: 对换入和换出的控制增加处理机开销;程序整个地址空间都进行传送,没有考虑执行过程中地址访问的

10、统计特性。 考虑的问题: 换出进程的选择:一般换出短时间不会运行的进程 交换时机的选择:内存不够后有危险时换出短时间不会运行的进程 交换空间的分配:可交换到外存的相同或不同对换区 换回内存位置的确定:动态重定位可以换回到不同的内存区,否则只能换回到相同的内存区,交换,交换技术与覆盖技术相比,交换技术的缺点是要花费大量内、外存交换时间,所以外存中应该保留交换程序的副本 覆盖与交换技术都实现了大作业在小内存上运行。 覆盖于与换技术的区别: 覆盖由用户解决空间不足问题(即:覆盖只能在一个程序内部进行) 交换由系统解决空间不足问题(即:交换可以在任意程序间进行) 覆盖对程序结构有严格的限制 交换对程序

11、结构没有限制,覆盖与交换的比较,引入:避开作业的连续性要求,将一个作业存放在不连续的存储空间中,以很好地解决碎片问题。 基本思想:系统把内存物理空间等分为若干大小相等、位置固定的块(或帧)。将程序的逻辑地址空间划分为与块大小相同的页或页面(page or page frame),程序加载时,分配其所需的所有块,这些块不必连续。需要CPU的硬件支持。,页面式存储管理,地址空间分成大小相同的部分 页,存贮空间分成大小相同的部分 块(页帧),页大小块大小,页表(PMT) :又称页面映象表,记录一个作业程序的页号所对应的内存块号。 需要CPU的硬件支持。,页号,块号,0,1,2,2,3,8,分配时页对

12、应块,但不要求连续,页表包括:页号,块号,页面式存储管理,页帧19,Operating System,作业2(页0),00000H,0B000H,0A800H,0B800H,0C000H,0E000H,作业1(页0),作业2(页2),作业1(页1),作业2(页1),作业3(页0),物理地址空间,页帧0,页帧20,页帧21,页帧22,页帧23,页帧24,页帧25,页帧26,页帧27,页帧28,0C800H,0D000H,0D800H,0,1,逻辑地址空间,作业1(4K),0,1,作业2(5K),2,0,作业3(1.8K),0,1,页表,0,1,2,0,页帧号,22,20,25,21,24,27,

13、页面式存储管理,页面式存储管理硬件,地址变换:指令所给出地址分为两部分:逻辑页号,页内偏移地址查进程页表,得物理页号物理地址 页面大小:通常是几KB到几十KB(取2的幂)。 小内部碎片小;大页表短,管理开销小,交换时对外存I/O效率高。,页面式存储管理,页式地址变换,页面式存储管理,引入:向用户提供大容量存储器,把内存和外存统一考虑,外存作为存储信息的主要媒介,内存作为处理机需要访问的数据缓冲区。 基本思想:运行一个作业程序时,并不要求把该作业的全部程序和数据都装入内存,可只把目前要执行的几页调入内存的空闲存储块,其余部分仍保存在外存,以后根据作业程序运行情况需要时再调入内存。,请求式页面存储

14、管理,需解决的问题: 提供一种机制,检测访问的页是否在内存,若不在,为之分配一物理页,修改页表项,并将逻辑页调入到物理页。 选择淘汰算法:,当外存上某页信息需调入内存而内存中又无空闲存储块时,则需按某种淘汰算法从内存中选择一页将其内容淘汰。 淘汰算法不合理将产生抖动现象刚被调出的页马上又被要求调入。,存储保护的目的: 保护系统程序区不被用户侵犯(有意或无意的) 不允许用户程序读写不属于自己地址空间的数据(系统区地址空间,其他用户程序的地址空间),1. 存储保护,由于存储保护检查是针对每个存储访问操作进行的,必须由相应的处理器硬件机构支持。,页面的共享与保护,存储保护类型 界限保护:所有访问地址

15、必须在上下界之间;每个进程都有自己独立的进程空间,如果一个进程在运行时所产生的地址在其地址空间之外,则发生地址越界。 访问方式保护:通过保护键匹配来判断存储访问方式是否合法。对于允许多个进程共享的存储区域,每个进程都有自己的访问权限。如果一个进程对共享区域的访问违反了权限规定,则发生操作越权(即读写保护)。对每个内存区域指定一个键值和若干禁止的访问方式,进程中也指定键值,如果访问时键值不匹配而且是被禁止的访问方式,则出错; 环保护:处理器状态分为多个环(ring),分别具有不同的存储访问特权级别(privilege),通常是级别高的在内环,编号小(如0环)级别最高;可访问同环或更低级别环的数据

16、;可调用同环或更高级别环的服务。,页面的共享与保护,共享页面:在物理页面表中有引用计数。只能共享不被修改的页面。这对用户应用是透明的,完全由操作系统控制,目的在于减少系统内的物理页面总数。 当共享页从内存中淘汰或重新装入内存时,共享该页的所有作业进程的页表中的相应页表项必须被同时更新。 写时复制(copy on write):如果一个进程要改写共享页面,则先把该页面复制一份,让该进程访问复制后的页面,而让其他进程访问复制前的页面。,通过引用计数(reference count)来描述存储区的共享,引用计数表示共享它的进程的数目:,2.存储共享,页面的共享与保护,段式存储管理基本思想:,将程序的地址空间划分为若干个段(segment),程序加载时,分配其所需的所有段(内存分区),这些段不必连续;物理内存的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号