欢迎来到天天文库
浏览记录
ID:51499835
大小:1.44 MB
页数:83页
时间:2020-03-25
《计算机操作系统汤子赢第4章.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第四章存储器管理4.1程序的装入和链接4.2连续分配方式4.3基本分页存储管理方式4.4基本分段存储管理方式4.5虚拟存储器的基本概念4.6请求分页存储管理方式4.7页面置换算法4.8请求分段存储管理方式4.1程序的装入和链接图4-1对用户程序的处理步骤4.1.1程序的装入1.绝对装入方式(AbsoluteLoadingMode)程序中所使用的绝对地址,既可在编译或汇编时给出,也可由程序员直接赋予。但在由程序员直接给出绝对地址时,不仅要求程序员熟悉内存的使用情况,而且一旦程序或数据被修改后,可能要改变程序中的所有地址。因此,通常是宁可在程序中采用符号地址,然后在编译或汇
2、编时,再将这些符号地址转换为绝对地址。2.可重定位装入方式(RelocationLoadingMode)图4-2作业装入内存时的情况3.动态运行时装入方式(DenamleRun-timeLoading)动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此,装入内存后的所有地址都仍是相对地址。4.1.2程序的链接1.静态链接方式(StaticLinking)图4-3程序链接示意图在将这几个目标模块装配成一个装入模块时,须解决以下两个问题:(1)对相对地址进行修改。(2)变换外部调用
3、符号。2.装入时动态链接(LoadtimeDynamicLinking)装入时动态链接方式有以下优点:便于修改和更新。(2)便于实现对目标模块的共享。3.运行时动态链接(Run-timeDynamicLinking)近几年流行起来的运行时动态链接方式,是对上述在装入时链接方式的一种改进。这种链接方式是将对某些模块的链接推迟到执行时才执行,亦即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上,这样不仅可加快程序的装入过程,而且可节省大
4、量的内存空间。4.2连续分配方式4.2.1单一连续分配这是最简单的一种存储管理方式,但只能用于单用户、单任务的操作系统中。采用这种存储管理方式时,可把内存分为系统区和用户区两部分,系统区仅提供给OS使用,通常是放在内存的低址部分;用户区是指除系统区以外的全部内存空间,提供给用户使用。4.2.2固定分区分配1.划分分区的方法分区大小相等,即使所有的内存分区大小相等。(2)分区大小不等。2.内存分配图4-4固定分区使用表4.2.3动态分区分配1.分区分配中的数据结构空闲分区表。(2)空闲分区链。图4-5空闲链结构2.分区分配算法首次适应算法FF。(2)循环首次适应算法,该算
5、法是由首次适应算法演变而成的。(3)最佳适应算法。3.分区分配操作1)分配内存图4-6内存分配流程2)回收内存图4-7内存回收时的情况4.2.4可重定位分区分配1.动态重定位的引入图4-8紧凑的示意2.动态重定位的实现图4-9动态重定位示意图3.动态重定位分区分配算法图4-10动态分区分配算法流程图4.2.5对换(Swapping)1.对换的引入所谓“对换”,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据,调入内存。对换是提高内存利用率的有效措施。2.对换空间的管理为了
6、能对对换区中的空闲盘块进行管理,在系统中应配置相应的数据结构,以记录外存的使用情况。其形式与内存在动态分区分配方式中所用数据结构相似,即同样可以用空闲分区表或空闲分区链。在空闲分区表中的每个表目中应包含两项,即对换区的首址及其大小,它们的单位是盘块号和盘块数。3.进程的换出与换入(1)进程的换出。每当一进程由于创建子进程而需要更多的内存空间,但又无足够的内存空间等情况发生时,系统应将某进程换出。其过程是:系统首先选择处于阻塞状态且优先级最低的进程作为换出进程,然后启动盘块,将该进程的程序和数据传送到磁盘的对换区上。若传送过程未出现错误,便可回收该进程所占用的内存空间,并
7、对该进程的进程控制块做相应的修改。(2)进程的换入。系统应定时地查看所有进程的状态,从中找出“就绪”状态但已换出的进程,将其中换出时间(换出到磁盘上)最久的进程作为换入进程,将之换入,直至已无可换入的进程或无可换出的进程为止。4.3基本分页存储管理方式4.3.1页面与页表1.页面1)页面和物理块分页存储管理,是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号,从0开始,如第0页、第1页等。相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame),也同样为它们加以编号,如0#
此文档下载收益归作者所有