《第四章存储器管理课件.ppt》由会员分享,可在线阅读,更多相关《第四章存储器管理课件.ppt(38页珍藏版)》请在三一办公上搜索。
1、第四章 存储器管理,4.1 程序的装入和链接 4.2 连续分配方式,上节回顾,第二三章复习,基本概念,4.1 程序的装入和链接,4.1.1 程序的装入,1.绝对装入方式(Absolute Loading Mode),程序中所使用的绝对地址,既可在编译或汇编时给出,也可由程序员直接赋予。通常是在程序中采用符号地址,然后在编译或汇编时,再将这些符号地址转换为绝对地址。特点:程序的逻辑地址与实际内存地址相同,2.可重定位装入方式(Relocation Loading Mode),特点:地址变换在装入时一次性完成,不再改变,3.动态运行时装入方式(Denamle Run-time Loading),可
2、重定位装入并不允许程序运行时在内存中移动位置。动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此,装入内存后的所有地址都仍是相对地址。,4.1.2 程序的链接,静态链接方式(Static Linking)装入时动态链接(Load time Dynamic Linking)运行时动态链接(Run-time Dynamic Linking),4.1.2 程序的链接,1.静态链接方式(Static Linking),图 4-3 程序链接示意图,在将这几个目标模块装配成一个装入模块时,须解决以下两个问题:(1
3、)对相对地址进行修改。(2)变换外部调用符号。,2.装入时动态链接(Loadtime Dynamic Linking),装入时动态链接方式有以下优点:便于修改和更新。(2)便于实现对目标模块的共享。,3.运行时动态链接(Run-time Dynamic Linking),对模块的链接推迟到执行时才执行,即在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上,这样不仅可加快程序的装入过程,而且可节省大量的内存空间。,4.2 连续分配方式,4.2.1 单一连续分配,4.
4、2.2 固定分区分配,划分分区的方法,分区大小相等,即使所有的内存分区大小相等。(2)分区大小不等。,2.内存分配,图 4-4 固定分区使用表,4.2.3 动态分区分配,1.分区分配中的数据结构,空闲分区表。(2)空闲分区链。,图 4-5 空闲链结构,2.分区分配算法,首次适应算法FF。(2)循环首次适应算法,该算法是由首次适应算法演变而成的。(3)最佳适应算法。,3.分区分配操作,1)分配内存,图 4-6 内存分配流程,2)回收内存,图 4-7 内存回收时的情况,4.2.4 可重定位分区分配,1.动态重定位的引入,图 4-8 紧凑的示意,2.动态重定位的实现,图 4-9 动态重定位示意图,3
5、.动态重定位分区分配算法,图 4-10 动态分区分配算法流程图,4.2.5 对换(Swapping),1.对换的引入,所谓“对换”,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据,调入内存。对换是提高内存利用率的有效措施。整体对换:以进程为单位部分对换:以页或段为单位,2.对换空间的管理,为了能对对换区中的空闲盘块进行管理,在系统中应配置相应的数据结构,以记录外存的使用情况。其形式与内存在动态分区分配方式中所用数据结构相似,即同样可以用空闲分区表或空闲分区链。在空闲分区表中的每个表目中应包含两项,即
6、对换区的首址及其大小,它们的单位是盘块号和盘块数。,3.进程的换出与换入,(1)进程的换出。每当一进程由于创建子进程而需要更多的内存空间,但又无足够的内存空间等情况发生时,系统应将某进程换出。其过程是:1、系统选择处于阻塞状态且优先级最低的进程作为换出进程,2、启动盘块,将该进程的程序和数据传送到磁盘的对换区上。3、若传送过程未出现错误,便可回收该进程所占用的内存空间,并对该进程的进程控制块做相应的修改。,(2)进程的换入。系统应定时地查看所有进程的状态,从中找出“就绪”状态但已换出的进程,将其中换出时间(换出到磁盘上)最久的进程作为换入进程,将之换入,直至已无可换入的进程或无可换出的进程为止。,