08内存管理讲述.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 内存管理 背景 程序必需放入一个进程,并且送入内存才能被执行 多道程序设计 共享CPU = CPU 调度 共享内存 = 内存管理 内存由很大一组字或字节所组成,每个字或字节都有自己的地址 输入队列— 磁盘上等待进入内存并执行的进程的集合 地址映射 逻辑地址(虚拟地址)-CPU所生成的地址 物理地址-内存单元所看到的地址 逻辑地址空间-由程序所生成的所有逻辑地址的集合 物理地址空间-与逻辑地址相对应的内存中所有物理地址的集合 用户程序看不见真正的物理地址。用户只生成逻辑地址,且认为进程的地址空间为0到max。物理地址范围从R+0到R+max,R为基地址 地址映射-将程序地址空间中使用的逻辑地址变换成内存中的物理地址的过程。由内存管理单元(MMU)来完成。 进程在执行时,会访问内存中的指令和数据。将指令和数据捆绑到内存地址可以在以下步骤的任何一步中执行。 编译时期 : 如果内存位置已知,可生成绝对代码; 如果开始位置改变,需要重新编译代码。 加载时 : 如果存储位置在编译时不知道,则必须生成可重定位代码。 静态地址映射是在程序装入内存时完成从逻辑地址到物理地址的转换的。 在一些早期的系统中都有一个装入程序(加载程序),它负责将用户程序装入系统,并将用户程序中使用的访问内存的逻辑地址转换成物理地址。 优点是实现简单,不要硬件的支持。 缺点是程序一旦装入内存,移动就比较困难。有时间上的浪费。在程序装入内存时要将所有访问内存的地址转换成物理地址。 执行时:如果进程在执行时可以在内存中移动,则地址绑定要延迟到运行时。 需要硬件对动态地址映射的支持,例如基址和限长寄存器 基址寄存器这时称为重定位寄存器。用户进程所生成的地址在送交内存之前,都将加上重定位寄存器的值。 使用重定位寄存器的动态重定位 动态加载 一个子程序只有在调用时才被加载。 更好的内存空间利用率;不用的子程序决不会被装入内存。 当需要大量的代码来处理不经常发生的事情时是非常有用的。 不需要操作系统的特别支持,通过程序设计实现。 动态链接 链接被推迟到执行时期 二进制映像中对每个库程序的引用都有一个存根。 存根是小的代码片 ,用来定位合适的保留在内存中的库程序。 存根用子程序地址来替换自己,并开始执行子程序。 动态链接需要操作系统的帮助。操作系统需要检查子程序是否在进程的内存空间,或是允许多个进程访问同一内存地址。 内外存数据传输的控制 内存和外存之间必须经常地交换数据,按什么样地方式来控制内存和外存之间地数据流动呢?最基本的控制办法有两种: 用户程序自己控制 覆盖 操作系统控制 交换 覆盖 覆盖的思想是在内存中只保留那些在特定时间所需要的指令和数据。 当进程比所分配的内存大时,覆盖是必需的 由用户执行,不需要操作系统的特别支持,覆盖结构的程序设计很复杂。要求用户清楚地了解程序地结构,负担很大,且程序段地最大长度仍受内存容量限制。 局限于微处理机和只有有限物理内存且缺乏更先进硬件支持的其它系统 一个Two-Pass 汇编程序的覆盖 交换 一个进程可以暂时被交换到内存外的一个备份存储上,随后可以被换回内存继续执行。 e.g. round-robin CPU scheduling 备份存储—通常是快速磁盘,必须足够大,以便容纳所有用户的内存映像拷贝,也必须提供对这些内存映像的直接存取。 交换 滚入,滚出—由于基于优先级的算法,低优先级的进程被换出,这样高优先级的进程可以被装入和执行。 交换时间的主要部分是转移时间,总的转移时间直接同交换的内存空间成正比。 I/O问题 当I/O的时候,把工作锁定在内存中。以免I/O操作访问另一进程的内存 只使用操作系统缓冲。仅当换入进程后,才执行操作系统缓冲与进程内存之间的数据转移。 使用磁盘作为备份存储空间的两个进程的交换 连续内存分配 主存通常被分为两部分 用于驻留操作系统:为操作系统保留的部分,通常用中断向量保存在内存低端。 用于用户进程 :保存在内存高端。 采用连续内存分配时,每个进程位于一个连续的内存区域 内存保护:保护操作系统不受用户进程影响,保护用户进程不受其它用户进程影响。措施: 重定位寄存器,含有最小的物理地址值 界限寄存器,含有逻辑地址的值。每个逻辑地址必须小于界限寄存器 重定位和界限寄存器的硬件支持 连续内存分配 多个固定大小的分区:多道程序的程度受限制 固定分区方案的推广 孔: 可用的内存块,不同大小的孔分布在整个内存中。 当一个进程到来的时候,它将从一个足够容纳它的孔中分配内存。) 操作系统包含以下信息 a) 已分配的分区 b) (hole) 空闲的分区 动态存储分配问题 First-fit (首次适应) : 分配最先找到的合适的孔。 Be

文档评论(0)

舞林宝贝 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档