第4章存储器管理(1).ppt_第1页
第4章存储器管理(1).ppt_第2页
第4章存储器管理(1).ppt_第3页
第4章存储器管理(1).ppt_第4页
第4章存储器管理(1).ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章存储器管理,张培欣xxzhang123,2,2009年联考所占分值为12分2010年联考所占分值为12分2011年联考所占分值为6分2012年联考所占分值为7分,3,随着计算机应用领域的拓宽,对存储空间的需求在急剧增加。帕金森定律:存储器有多大,程序就会有多大。,存储器容量一直在不断地扩大,但仍然是最紧张的“瓶颈”资源,满足不了现代化软件发展的需要。如何合理而有效地使用存储器,在很大程度上反映了OS的性能,存储器管理仍是OS的中心问题之一。,4,如何合理而有效地使用存储器,在很大程度上反映了OS的性能,存储器管理仍是OS的中心问题之一。本章讨论很多不同的存储管理方案,从简单到复杂。,存储器管理:记录哪些内存在使用;在进程需要的时候为其分配存储器;在进程使用完后释放存储器;在主存太小无法装入所有进程时,管理主存和磁盘之间的交换,在计算机领域,历史总是在重复自身。简单的存储管理方案不再适用于台式机时,仍被一些掌上电脑、嵌入式系统和智能卡系统所采用。,5,第四章存储器管理,4.1存储器的层次结构4.2程序的装入和链接4.3连续分配方式4.4基本分页存储管理方式4.5基本分段存储管理方式4.6虚拟存储器的基本概念4.7请求分页存储管理方式4.8页面置换算法4.9请求分段存储管理方式,6,4.1存储器的层次结构,1.存储器的层次结构在现代计算机系统中,存储器是信息处理的来源与归宿,占据重要位置。但是,在现有技术条件下,任何一种存储装置,都无法同时从速度与容量两方面,满足用户的需求。实际上它们组成了一个存储装置层次。存储器的层次结构,7,4.1存储器的层次结构,主存,CPU寄存器,辅存,8,4.1存储器的层次结构,主存,CPU寄存器,辅存,从容量角度进行对比:,几十个到上百个,几十KB到几MB,数十MB到数GB,数GB到TB,大,小,9,4.1存储器的层次结构,主存,CPU寄存器,辅存,从访问时间角度进行对比:,慢,快,高速缓存的作用磁盘缓存的作用,价格/位,10,4.1存储器的层次结构,主存,CPU寄存器,辅存,存储管理负责,设备管理和文件管理负责,11,存储管理的目的1)主存的分配和管理:当用户需要内存时,系统为之分配相应的存储空间;不需要时,及时回收,以供其它用户使用。2)“扩充”主存容量:为用户提供比主存物理空间大得多的地址空间,以至使用户感觉他的作业是在这样一个大的存储器中运行。3)存储保护:确保多道程序都在各自分配到存储区域内操作,互不干扰,防止一道程序破坏其它作业或系统文件的信息。,4.1存储器的层次结构,12,4.2程序的装入和链接,能在一个模块内部完成符号名到地址的转换工作,符号解析和重定位,13,装入,关于三个空间的定义:,逻辑地址或相对地址,物理地址或绝对地址,符号地址,14,4.2.1程序的装入,将一个装入模块装入内存时,可采用三种方式:一、绝对装入方式(AbsoluteLoadingMode):程序员在编程序时,或编译程序(汇编程序)对源程序进行编译(汇编)时,如果知道程序将驻留在内存的具体位置,那么将产生的(所用的)是物理地址(绝对地址)。,15,在多道程序环境下,由于事先并不知晓目标程序在内存的具体位置,需要采用下述两个技术手段:(1)把逻辑地址和物理地址分开;(2)对逻辑地址实施地址重定位。,地址重定位是一个地址变换过程,这种地址变换就是地址映射。根据对地址变换进行的时间及采用技术手段的不同,把重定位分为静态重定位和动态重定位两类。,16,静态重定位:是指作业在装入过程中由装配程序进行的地址变换方式。这种重定位之所以称为静态的,是因为地址变换只在作业执行前集中一次完成的。,主要优点:无需增加硬件地址变换机构,因而可在一般计算机上实现。主要缺点:在作业执行期间不能被移动,因而也就不能实现重新分配主存。这对提高主存的利用率是不利的。,二、可重定位装入方式(RelocationLoadingMode):,17,18,三、动态运行时装入方式(DenamleRun-timeLoading):采用动态重定位技术。动态重定位:是指在作业执行过程中,当访问指令或数据时,由附加的地址变换机构进行的地址变换方式。动态重定位是靠硬件地址变换机构实现的。,19,0,3456,.,.,.,.,.,.,LOADA200,.,.,.,.,.,.,0,100,200,300,.,.,.,.,.,.,.,.,.,LOADA200,3456,逻辑地址空间,1100,1200,1300,物理地址空间,由于这种地址变换是在作业执行期间随着每条指令的数据自动地、连续地进行,所以称之为动态重定位。,20,主要优点:在作业执行期间可以被移动,因而能实现重新分配主存。这对提高主存的利用率是非常重要的。主要缺点:需要附加硬件支持;实现存储器管理的软件比较复杂。,21,22,4.2.2程序的链接,实现链接的方法有三种:静态链接装入时动态链接运行时动态链接,23,4.1.2程序的链接,一、静态链接:(StaticLinking)事先将几个目标模块链接装配成一个装入模块,以后不再拆开的链接方式,称为静态链接方式。如右图:,需解决以下两个问题:1.将相对地址进行修改。即将除第一个模块外的相对地址修改成装入模块中的相应的相对地址。2.变换外部调用符号。即将每个模块中所用的外部调用符号,都变换为相对地址。,24,二、装入时动态链接(Load-TimeDynamicLinking)用户源程序经编译后所得到的目标模块,是在装入内存时,边装入边链接的。即在装入一个目标模块时,若发生一个外部模块调用,将引起装入程序去找出相应的外部目标模块,并将之装入内存。,25,SEQAM,SUBR1,MAIN,系统目标库,当前生成的目标库,私有目标库,MAIN.callSEQAM.callSURB1.,装入模块,SEQAMRETURN,SURB1RETURN,26,装入时动态链接有如下优点:1.便于软件版本的修改和更新。只需修改各个目标模块,不必将装入模块拆开,非常方便。2.便于实现目标模块共享。即可以将一个目标模块链接到几个应用模块中,从而实现多个应用程序对该模块的共享。,27,三、运行时动态链接(Run-TimeDynamicLinking)采用装入时动态链接方式,需要把所有可能要运行到的模块全部装入内存,效率很低。采用运行时动态链接可将某些目标模块的链接推迟到执行时才进行,即在执行过程中,若发现一个被调用模块尚未装入内存时,由OS去找到该模块,将它装入内存,并链接到调用模块上。,28,链接和装入技术的发展史,一个程序要想装入内存运行必然要先经过编译、链接和装入这三个阶段,虽然是这样一个大家听起来耳熟能详的概念,在操作系统发展的过程中却已经经历了多次重大变革。简单来讲,可以将其划分为以下三个阶段:,1静态链接、静态装入,2静态链接、动态装入,3动态链接、动态装入,29,链接和装入技术的发展史,1静态链接、静态装入,静态链接、静态装入的做法是将所有目标文件链接成一个可执行映象,随后在创建进程时将该可执行映象一次全部装入内存。,例如:假设我们开发了两个程序Prog1和Prog2。Prog1由main1.c、utilities.c以及errhdl1.c三部分组成,分别对应程序的主框架、一些公用的辅助函数(其作用相当于库)以及错误处理部分,这三部分代码编译后分别得到各自对应的目标文件main1.o、utilities.o以及errhdl1.o。同样,Prog2由main2.c、utilities.c以及errhdl2.c三部分组成,三部分代码编译后分别得到各自对应的目标文件main2.o、utilities.o以及errhdl2.o。,30,链接和装入技术的发展史,当我们采用静态链接、静态装入的方法,同时运行这两个程序时内存和硬盘的使用情况如图,首先就硬盘的使用,utilities.o被链接进了每一个用到它的程序的可执行映象。内存的使用也是如此,操作系统在创建进程时将程序的可执行映象一次全部装入内存,之后进程才能开始运行。,31,链接和装入技术的发展史,采用这种方法使得操作系统的实现变得非常简单,但其缺点也是显而易见的。首先,既然两个程序使用的是相同的utilities.o,那么我们只要在硬盘上保存utilities.o的一份拷贝应该就足够了;另外,假如程序在运行过程中没有出现任何错误,那么错误处理部分的代码就不应该被装入内存。因此静态链接、静态装入的方法不但浪费了硬盘空间,同时也浪费了内存空间。,32,链接和装入技术的发展史,其想法是,一个函数只有当它被调用时,其所在的模块才会被装入内存。所有的模块都以一种可重定位的装入格式存放在磁盘上。首先,主程序被装入内存并开始运行。当一个模块需要调用另一个模块中的函数时,首先要检查含有被调用函数的模块是否已装入内存。如果该模块尚未被装入内存,那么将由负责重定位的链接装入器将该模块装入内存,同时更新此程序的地址表以反应这一变化。之后,控制便转移到了新装入的模块中被调用的函数那里。动态装入的优点在于永远不会装入一个使用不到的模块。,2静态链接、动态装入,33,链接和装入技术的发展史,仍然以上面提到的两个程序Prog1和Prog2为例,假如Prog1运行过程中出现了错误而P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论