第四章 存储器管理(1-2).ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.0 基本概念补充 存储器管理:指内存的管理,外存管理在文件部分讲述; 单道程序系统:内存被划分成两部分:一部分供OS使用,一部分供当前正在执行的程序使用。 多道程序系统:存储器的用户部分必须进一步地细分,以适应多个进程的要求。细分的任务由操作系统动态实现,这就是存储器管理。 存储器管理的目的:一是方便用户使用,二是提高存储器的利用率。 1、存储器管理功能 地址映射的方式 静态地址映射: 1)程序被装入内存时由操作系统的连接装入程序完成程序的逻辑地址到内存地址的转换; 2)地址转换工作是在程序执行前由装入程序集中一次完成。 假定程序装入内存的首地址为BR,程序地址为VR,内存地址为MR,则地址映射按下式进行:MR=BR+VR 静态映射优缺点 优点:不需要硬件的支持,简单易实现,成本低; 缺点:程序必须占用连续的内存空间;一旦程序装入后不能移动;主存利用率低;难以做到程序和数据的共享。 动态地址映射(重定位) 动态地址重定位:在程序执行的过程中,每次将要访问的指令或数据逻辑地址转换为内存地址。 动态映射方法:装入程序把程序和数据原样装入到已分配的存储区中,然后把这个存储区的起始地址送入重定位寄存器中。在程序执行时,再将相对地址转换成绝对地址。 硬件支持:在动态地址重定位机构中,有一个基地址寄存器BR和一个程序地址寄存器VR,一个内存地址寄存器MR。 转换过程:MR=BR+VR 动态地址映射的过程 程序装入内存后,它所占用的内存区的首地址由系统送入基地址寄存器BR中。 在程序执行的过程中,若要访问内存,将访问的逻辑地址送入VR中。 地址转换机构把VR和BR中的内容相加,并将结果送入MR中,作为实际访问的地址。 动态重定位优缺点 优点:1)程序占用的内存空间是动态可变的,当程序从某个存储区移到另一个区域时,只需要修改相应的寄存器BR的内容即可;2)一个程序不一定要求占用一个连续的内存空间,可以部分地装入程序运行;4)便于多个进程共享同一个程序的代码。 动态地址重定位的代价:1)需要硬件的支持;2)实现存储管理的软件算法较为复杂。 未分配区表用空闲区链表表示: 作业4-1 P142 : 4、5、6 举例:如左图所示,按照基本分页存储管理方式为进程分配内存空间。 设页面大小为1KB 2、逻辑地址结构 逻辑地址空间中的地址为A,页面大小为L,则有: 3、页表 分页存储管理方式按照进程页面的多少,为进程离散分配相同数量的物理块,为了记录每一页所分配的物理块,必须为每个进程建立一个页表 每个进程一个页表,每个页面一个表项; 表项:页号:0、1、2、…、n;块号:离散分配形成;存取控制:读写控制 例:有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、10、5块,试将虚地址7145,3412转换成内存地址。 2、具有快表的地址变换机构 问题:两次访问内存(页表,数据),运行速度下降一半; 解决方法:联想存储器,快表,存放当前访问的页表项; 思路:将已访问的页号的页表项放入快表,方便下次访问,提高访问速度,争取一次访问内存; 联想存储器:通常只要设定8~16个寄存器作为联想存储器,即可使程序执行速度大大提高。 例题一 一个由8个页面,每页有1024个字节组成的逻辑空间,把它装入有32个物理块的存储器中,问: (1)逻辑地址需要多少位二进制来表示? (2)绝对地址需要多少位二进制来表示? 解:页面数:8=23 块数:32= 25 页面长度:1024=210 习题二: 设有一分页管理系统,向用户提供的逻辑地址空间 最大为16页,每页2048字节,内存总共有8个存储 块,试问逻辑地址至少应为多少位?物理地址至少 应为多少位?内存空间共有多大? 答案: 逻辑地址至少15位; 物理地址至少14位; 内存空间共有8*2048=214 习题三: 现有一分页管理系统,其页表存放在内存中。 若对内存的一次存取需要1.5ms,试问实现一次页 面访问的存取时间是多少? 现有一个加有快表的系统,快表的平均命中率为 80%,当页表项在快表中时,其查找时间忽略为0, 试问此时的存取时间是多少?若快表的平均命中率 为90%时,存取时间又为多少呢? 解: 若页表存在内存,则一个页面访问需要访问内存2 次,已知一次存取时间为1.5ms,则一次页面访问 的存取时间为3ms. 若系统中有快表,则两种情况: 需要访问的页面在快表中:访问内存1次; 需要访问的页面不在快表中:访问内存2次; 若快表的命中率为80%则: 访问时间:0.8*1.5+(1-0.8)*2*1.5 2.动态重定位的实现:作业在内存中仍保持逻辑地址,在执行时再实施重定位。具体过程如下图。 图 4-9 动态重定位示意图 3. 动态重定位分区分配算法:在动态

文档评论(0)

awang118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档