考研操作系统第三章.pptx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 内存管理(Memory Management)4.1 概述4.2 程序的连接与装入4.3 实存储器管理4.4 虚拟存储管理4.5 小结4.1 概述一、存储器的层次结构存储系统的设计目标可归纳成3个问题: 容量,速度,成本容量:需求无止境 速度:能匹配处理器的速度成本:成本和其他部件相比应在合适范围之内存储器的层次结构容量、速度和成本之间的矛盾:三个目标不可能同时达到最优,要作权衡存取速度越快,每一个位(Bit)的价格越高追求大容量,就要降低存取速度追求高速度,就要降低容量寄存器Cache内存磁盘存储器的层次结构解决方案:采用层次化的存储体系结构 当沿着层次向下时每位的价格下降容量增大速度变慢策略:较小、较贵的存储器由较大、较便宜的慢速存储器作为后援 虚拟存储器降低较大、较便宜的慢速存储器的访问频率 高速缓存寄存器Cache内存磁盘存储器的层次结构寄存器(Register):在CPU内部, 用来暂存数据、地址以及指令信息。在计算机的存储系统中它具有最快的访问速度。 速度比主存快得多 造价高,容量一般都很小内存:速度尽量快到与CPU取指速度相匹配,大到能装下当前运行的程序与数据,否则CPU执行速度就会受到内存速度和容量的影响而得不到充分发挥高速缓存(cache):处于CPU和物理内存之间,访问速度快于内存,但低于寄存器4.1 概述二、内存管理的目的 有效利用内存空间帕金森(parkinson)定律:内存有多大,程序就有多大 考虑管理的开销:时间,空间 应用程序不必考虑内存的大小4.1 概述三、内存管理的功能记录内存的使用情况(是否空闲)进程所占内存空间的分配与回收当内存不足时,采取相应措施,逻辑扩充内存空间的共享与保护地址转换,把逻辑地址转换成相应的物理地址(重定位)逻辑地址空间:一个目标程序所限定的范围物理地址空间:内存中物理单元的集合4.2 程序的连接与装入一、程序连接的功能多个目标文件及库文件连接成1个完整的可执行文件。 定位目标文件可能存在的一些外部符号 浮动地址的重定位将用户源程序变为可在内存中执行的程序需经过:编译:由编译程序将用户源代码编译成若干目标模块链接:由链接程序将编译后形成的一组目标模块,以及所需库函数链接,形成完整的装入模块装入:由装入程序将装入模块装入内存4.2 程序的连接与装入二、程序连接的时机 静态连接:程序运行之前,静态的,只连接1次,多次运行 装入时连接:编译后,在装入内存时采用边装入边链接的链接方式,装入后是静态的 实际运行时连接:调用时动态连接4.1 程序的连接与装入三、程序的装入方式 程序能否直接在外存中执行? 不行!每个程序在运行前,必须装入内存。 不一定一次全部装入。装入方式:(1)完全静态装入(绝对装入)(2)静态重定位装入(可重定位装入)(3)动态重定位装入(动态运行时装入)程序的装入方式1. 完全静态装入(绝对装入)程序装入时不作任何修改,程序中逻辑地址与实际内存地址完全相同(可编译或汇编时给出,也可由程序员直接赋予),只适用于单道程序环境即装入内存的每个字节与其可执行文件完全相同。例如,DOS操作系统下的.com文件。重定位: 程序中的相对地址(从0开始)绝对地址程序的装入方式2. 静态重定位装入程序装入时进行一次地址重定位,运行时不变。一旦作业进入内存后,整个运行期间,不能再内存中移动,也不能再申请内存空间程序的装入方式逻辑地址(相对地址) 用户的程序经过汇编或编译连接后形成可执行代码,代码通常采用相对地址的形式,其首地址为0,指令中的地址都采用相对于首地址的偏移量 机器是不能用逻辑地址在内存中读取信息的。物理地址(绝对地址) 内存中存储单元的实际地址模块A0010000h.........MOV AX, [500H]MOV AX, [500H]MOV AX, [10500H]...0fffh......模块B0...MOV BX, [1600H]MOV BX, [11600H]MOV BX, [600H].........2fffh12fffh1fffh静态重定位装入连接装入程序的装入方式3. 动态重定位装入真正执行到一条指令要访问某个内存地址时,才进行地址重定位。(根据需要动态分配内存,便于程序段共享)好处:程序可以在内存中移动。如何实现动态重定位? 一般设置1个重定位寄存器, 存放当前进程在内存的起始地址 绝对地址 = 相对地址 + 重定位寄存器的值动态重定位装入重定位寄存器逻辑地址空间物理地址空间100001000地址+2001100100MOV AX, [200]MOV AX,[200]20012345612345612001300300交换与覆盖覆盖 基本原理:(1)把程序划分为若干个功能上相对独立的程序段(称为覆盖块),按照其自身的逻辑结构使那些不会同时执

文档评论(0)

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

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

1亿VIP精品文档

相关文档