财务管理第三章 内存管理

上传人:bao****ty 文档编号:118739223 上传时间:2019-12-24 格式:PPT 页数:69 大小:2.91MB
返回 下载 相关 举报
财务管理第三章 内存管理_第1页
第1页 / 共69页
财务管理第三章 内存管理_第2页
第2页 / 共69页
财务管理第三章 内存管理_第3页
第3页 / 共69页
财务管理第三章 内存管理_第4页
第4页 / 共69页
财务管理第三章 内存管理_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《财务管理第三章 内存管理》由会员分享,可在线阅读,更多相关《财务管理第三章 内存管理(69页珍藏版)》请在金锄头文库上搜索。

1、第三章 内存管理(1) 内存管 理 l目的与要求:掌握程序处理基本过程中内存管理相 关环节的概念及内存管理的各种方法与技术。 l重点与难点:重定位的基本概念,动态分区分配方 式、分段和分页存储管理方式、虚拟存储器等主要 内存管理方式的相关概念及关键技术。 l作业: 2,3,4,5,6,7,8,10,11,15,17 ,18 第三章 存储器管理 3.1 存储器的层次结构 3.2 程序的装入和链接 3.3 连续分配方式 3.1.1 存储器的层次结构 1. 存储器的层次结构 在现代计算机系统 中,存储器是信息外理 的来源与归宿,占据重 要位置。但是,在现有 技术条件下,任何一种 存储装置,都无法同时

2、 从速度与容量两方面, 满足用户的需求。实际 上它们组成了一个速度 由快到慢,容量由小到 大的存储装置层次。 存储器的层次结构 2.各种存储器 l高速缓存Cache: 少量的、非常快速、昂贵、易变的 l内存RAM: 若干兆字节、中等速度、中等价格、易变的 l 磁盘: 数百兆或数千兆字节、低速、价廉、不易变 的 l由操作系统协调这些存储器的使用 3.1.2 存储管理的目的 l内存分配 l使各得其所、提高利用率及适应动态增长 要求 l连续分配/离散分配方式 l地址映射 l逻辑地址转换为物理地址,与分配方式相 关 l内存保护 l基于地址的保护、存取访问控制保护 l内存扩充 l对换技术、虚拟存储技术

3、3.1.3. 基本概念 1.定位(存储分配):为具体的程序和数据等 分配存储单元或存储区工作。 2.映射:把逻辑地址转换为相应的物理地址的 过程。 3.隔离:按存取权限把合法区与非法区分隔, 实现存储保护。 4.名空间 l程序员在程序中定义的标识符 l程序符号集合 l由程序员自定义 l没有地址的概念 符号指令 数据说明 I/O说明 5.地址空间 l程序用来访问信息所用地址单元的集合 l逻辑(相对)地址的集合 l由编译程序生成 6.存储空间 l主存中物理单元的集合 l物理(绝对)地址的集合 l由装配程序等生成 地址映射 Load A 200 3456 。 。 1200 物理地址空间 Load A

4、 data1 data1 3456 源程序 Load A 200 3456 0 100 200 编译 连接 逻辑地址空间 BA=1000 名空间 地址空间 存储空间 7.逻辑地址与物理地址 l逻辑地址(相对地址,虚地址) : 用户的程序经过汇编或编译后形成目标代码 ,目标代码通常采用相对地址的形式,其首 地址为0,其余指令中的地址都相对于首地址 而编址。 不能用逻辑地址在内存中读取信息 l物理地址(绝对地址,实地址) 内存中存储单元的地址,可直接寻址 8.存储共享 l内存共享:两个或多个进程共用内存中相 同区域 l目的:节省内存空间,提高内存利用率 l实现进程通信(数据共享) l共享内容: 代

5、码共享,要求代码为纯代码 数据共享 9.存储保护与安全 保护目的: 为多个程序共享内存提供保障,使在内 存中的各道程序, 只能访问它自己的区域, 避免各道程序间相互干拢,特别是当一道程 序发生错误时, 不致于影响其他程序的运 行。通常由硬件完成保护功能,由软件辅助 实现。(特权指令不能完成存储保护。) 1) 存储保护 l 保护系统程序区不被用户侵犯(有意或无意 的) l不允许用户程序读写不属于自己地址空间的 数据(系统区地址空间,其他用户程序的地 址空间) 2) 保护过程-防止地址越界 每个进程都有自己独立的进程空间, 如果一个进程在运行时所产生的地址在其 地址空间之外,则发生地址越界。即当程

6、 序要访问某个内存单元时,由硬件检查是 否允许,如果允许则执行,否则产生地址 越界中断,由操作系统进行相应处理。 10.内存“扩充” 通过虚拟存储技术实现 l用户在编制程序时,不应该受内存容量限 制,所以要采用一定技术来“扩充”内存 的容量,使用户得到比实际内存容量大的 多的内存空间 l具体实现是在硬件支持下,软硬件相互协 作,将内存和外存结合起来统一使用。通 过这种方法把内存扩充,使用户在编制程 序时不受内存限制 3.2 程序的装入和链接 程序程序处理基本过程 内存 装入 模块 装入 程序 链接 程序编译 程序 源程序 库 目标模块 符号名 空间 目标地址 空间 统一的 目标地址 空间 物理

7、地址 空间布局? 3.2.1 程序的装入 1. 绝对装入方式 程序中所使用的绝对地址,可在编译或汇编时给 出, 也可由程序员直接赋予。 但在由程序员直接给 出绝对地址时, 不仅要求程序员熟悉内存的使用情 况,而且一旦程序或数据被修改后,可能要改变程序 中的所有地址。因此,通常是宁可在程序中采用符号 地址,然后在编译或汇编时,再将这些符号地址转换 为绝对地址。 l绝对装入模块及绝对装入方式 2. 可重定位装入方式 l静态可重定位装入方式和动态可重定位装入方式 l如果在程序装入时一次性地完成程序中所有地 址敏感指令及数据的地址修正且以后不再改变 ,则称对应的地址变换为静态重定位。 l如果在程序装入

8、时并不进行由相对地址到绝对 地址的转换过程,而是伴随程序执行进展来逐 步进行程序中相关地址敏感指令及数据的地址 修正,则称对应的地址变换为动态重定位。 l静态可重定位装入方式并不允许程序在装 入之后的运行过程中发生内存位置的移动 l动态可重定位装入方式及动态重定位过程 通常需要一定的硬件机构支持以使地址转 换不影响指令执行速度 3. 动态运行时装入方式 动态运行时的装入程序,在把装入模 块装入内存后,并不立即把装入模块中 的相对地址转换为绝对地址,而是把这 种地址转换推迟到程序真正要执行时才 进行。因此, 装入内存后的所有地址都 仍是相对地址。 l运行时链接装入模块及运行时链接装入方式 3.2

9、.2 程序的链接 程序链接示意图 1.静态链接方式 2. 装入时动态链接 装入时动态链接方式有以下优点: (1)便于修改和更新。 (2) 便于实现对目标模块的共享。 3. 运行时动态链接 这种链接方式是将对某些模块的链接推迟到 执行时才执行,即,在执行过程中,当发现一个 被调用模块尚未装入内存时,立即由OS去找到该 模块并将之装入内存, 把它链接到调用者模块上 。凡在执行过程中未被用到的目标模块,都不会 被调入内存和被链接到装入模块上,这样不仅可 加快程序的装入过程,而且可节省大量的内存空 间。 3.2.3 重定位 把作业地址空间中使用的逻辑地址变换成内 存空间中的物理地址的过程。又称地址映射

10、。如 下图,作业i经过重定位,把地址集合映射到以 1000为始址的内存中,作为作业i的存储空间。 1. 重定位的类型 1)静态重定位:当用户程序被装入内存 时,一次性实现逻辑地址到物理地址 的转换,以后不再转换(一般在装入 内存时由软件完成)作业i在执行前 一次变址,直到该作业完成退出内存 为止。 2) 动态 重定位 在程序运行过程中要访问数据时再进行 地址变换。由地址变换机构进行的地址变换 ,硬件上需要重定位寄存器的支持。 2.动态重定位的实现方式 l重定位寄存器:在执行一条指令取操作数 时,要将指令给出的有效地址(500)与重 定位寄存器中的内容(1000)相加,得 访问地址(1500),

11、从而实现了地址动 态修改。 l映象方式:采用页表来描述虚、实页面的 对应关系 。 3.3 连续分配存储管理 3.3.1 单一连续内存管理 l在单道环境下,不管是单用户系统还是单道批处 理系统,进程(作业)执行时除了系统占用一部 分主存外,剩下的主存区域全部归它占用。主存 可以划分为三部分: 系统区、用户区、空闲区。 用户占用区是一个连续的存储区所以又称单一连 续区存储管理。 l单用户系统在一段时间内,只有一个进程在内存 ,故内存分配管理十分简单,内存利用率低。内 存分为两个区域,一个供操作系统使用,一个供 用户使用 用户程序 位于RAM中的 操作系统 0 xFFF. 0 位于RAM中的 操作系

12、统 用户程序 0 ROM中的 设备驱动程序 用户程序 位于RAM中的 操作系统 0 单一连续区存储分配示意图 工作流程 单一连续区分配采用静态分配和静 态重定位方式,亦即作业或进程一旦 进入主存,就一直等到它运行结束后 才能释放主存。如下图所示的主存分 配与回收法。并且由装入程序检查其 绝对地址是否超越,即可达到保护系 统的目的。 工作流程(续) 缺点 l不支持多道。 l主存利用率不高。 l程序的运行受主存容量限制 。 存储保护 l自动地址修改 例如,存储器的地址空间为 ,而操作系统位于低址端的内。 对于这样的系统,我们给用户一个位的 地址空间,并对其每个存储器访问自动加上 。如果操作系统占用

13、高址端的,则 我们取每一个存储访问,而实际上,其地 址为( )。从而实现了对 操作系统的保护。 存储保护(续) l页、页寻址 通过对每个用户生成的地 址左端拼接上一位来实现区与用户区 。把操作系统确定在页,而把用户作业放 在页。 l界限寄存器 通过增加界限寄存器,划分 区与用户区。 3.3.2 固定分区分配 分区式管理是满足多道程序的最简单 的存储管理方案。它的基本思想是将 内存划分成若干个连续区域,称为分 区。每个分区只能存储一个程序,而 且程序也只能在它所驻留的分区中运 行。 l 预先把可分配的主存储器空间分割 成若干个连续区域,称为一个分区 。每个分区的大小可以相同也可以 不同,如图所示

14、。但分区大小固定 不变,每个分区装一个且只能装一 个作业 l存储分配:如果有一个空闲区, 则 分配给进程 1. 固定分区 分区4 分区3 分区2 分区1 操作系统 多个等待队列 分区4 分区3 分区2 分区1 操作系统 单个等待队列 固定分区示意图 2.内存分配管理 固定分区使用表 通过设置内存分配表,内存分配简单 缺点:内存利用率不高 3.3.2 可变分区分配 l 基本思想:内存不是预先划分好的,而是当作 业装入时,根据作业的需求和内存空间的使用 情况来决定是否分配。若有足够的空间,则按 需要分割一部分分区给该进程;否则令其等待 主存空间 l内存管理:设置内存空闲块表记录了空闲 区起始地址和

15、长度 l内存分配:动态分配 l内存回收:当某一块归还后,前后空间合并, 修改内存空闲块表 1. 分区分配中的数据结构 (1) 分区分配表(见图 4-3-5 ) (2) 空闲分区链 空闲链结构 0K 15K 38K 48K 68K 80K 110K 120K 空闲区表 已分配区表 始址长度标志 15K23K未分配 48K20K未分配 80K30K未分配 空 空 始址长度标志 0K15KJ1 38K10KJ2 68K12KJ3 110K10KJ4 空 空 分区分配表: 分区分配表 0K 15K 38K 48K 68K 80K 110K 120K 空闲区表 已分配区表 始址长度标志 15K23K未分配 48K20K未分配 98K12K未分配 空 空 始址长度标志 0K15KJ1 38K10KJ2 68K12KJ3 110K10KJ4 80K5KJ5 85K13KJ6 85K 98K 2. 分区分配操作 1) 分配内存 内存分配流程 2) 回收内存 内存回收时的情况 3.空闲分区链表 l为了实现动态分配,系统设立空闲分区链表: 每个空闲块的前后两个单元,放置必要的说明 信息和指针。系统只要设立一个链首指针,指 向第一个空闲块即可。分配程序可以依照自由 块链表,来查找适合

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

当前位置:首页 > 大杂烩/其它

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