欢迎来到天天文库
浏览记录
ID:48182412
大小:308.50 KB
页数:42页
时间:2020-01-18
《CH5-1连续分配存储管理.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、CH5存储器管理5.1程序的装入和链接5.2连续存储空间管理5.3对换5.4分页式存储管理5.5分段式存储管理5.6虚拟存储管理5.1程序的装入和链接程序的装入程序的链接程序的装入绝对装入方式事先已知用户程序形成可执行模块后将驻留在内存的什么地方,编译程序在编译的时候直接产生实际存储地址的目标代码;由绝对装入程序按照模块中提供的绝对地址,将程序和数据装入内存;装入内存后,因为其中提供的均是绝对地址,因此调度到它运行时,不须再对其中的地址再作修改和变换;程序中使用的绝对地址,既可由程序员直接给出,也可在编译或汇编时给出程序员给出:要求其熟悉内存的使
2、用情况,并且程序一旦修改,可能会引起程序中所有绝对地址的改变;编译时产生:在编程时尽量采用符号地址,在编译或汇编时,再将这些符号地址转换成绝对地址;可重定位装入方式编译完成后,目标模块的起始地址通常都是从0开始,程序中的所有其它地址,也都是相对于起始地址0计算的;可重定位装入程序在将这些目标模块装入内存时,先要将目标模块中的相对地址全部转换成绝对地址,再装入内存;例如:编制的程序编译完后,地址为0000~2020H,如果分给它的内存空间是从10000H开始的一段内存空间,那么在装入时,该目标程序的地址就从10000+0000H~10000+202
3、0H如有一条语句:MOVA,2000H,则将转变成:MOVA,12000H动态运行时装入方式将装入模块装入内存后,并不立即进行地址转换,而是到程序真正要执行时才进行地址转换,因此装入内存后,装入模块中的地址依然是相对地址;方便存储管理中的“对换”,以利于提高系统性能程序的链接指将经过编译后的一组目标模块以及它们所需要的库函数,装配成一个完整的装入模块——可执行模块。静态链接A模块B模块C模块CallBReturnCallCReturnReturn0L-10M-10N-1A模块JSR“L”ReturnB模块JSR“L+M”ReturnC模块Retu
4、rn0L-1LL+M-1L+ML+M+N-1对各模块的相对地址进行修改为A、B、C最终要链接成一个模块,且执行的顺序为ABC,所以B应接在A的末尾,起始地址应为L-1+1,而C则因为接在B的末尾,所以起始地址应为L+M-1+1换外部调用符号为具体地址将每个模块中所用的外部调用符号变成大的链接模块中的具体地址装入时动态链接用户源程序经编译后得到的目标模块,如A、B、C模块,是在装入时边装入边链接的即:A模块在装入时,如需要调用B模块,就去外存找B模块,并将它装入内存,装入时修改其中的相对地址,B模块在装入时,又有调用C模块的语句,于是再找到C模块,
5、将C模块调入内存,并修改其相对地址运行时动态链接将某些目标模块的链接,推迟到执行时才进行。即在执行过程中,若发现一个被调用模块尚未装入内存时,由OS去找到该模块,将它装入内存,并将它链接至调用者模块上。A模块IF条件1CALLB模块IF条件2CALLC模块…真正轮到A模块运行时,它要调用的可能只是B模块或C模块,如按装入时动态链接,则A模块在装入时也要将B、C模块一齐装入。如按运行时动态链接,则A模块在运行时,如满足条件1,则将B模块装入即可,如满足条件2,则将C模块装入即可。5.2连续分配存储管理方式指为一个用户程序分配一个连续的内存空间,有两
6、种分配方式:单一连续分配方式分区式分配方式单一连续分配方式最早出现的一种存储器管理方式,在这种方式下,内存只驻留一道程序。操作系统将内存分为两个分区:系统区:仅提供给OS用,一般驻留在内存的低址部分用户区:除系统区外的全部内存空间,提供给用户使用单一连续分配方式单一连续分配方式中的存储保护措施为了防止OS受到用户程序的破坏,较常用的方法是设一个基址寄存器(装有程序的最小物理地址)、一个界限寄存器(存放该程序的逻辑地址范围),由一个存储管理部件MMU来管理用户程序是否越界。单一连续分配方式方法是:每次执行一条指令,MMU都将程序中的逻辑地址映射为物
7、理地址(相对地址+基址),然后将此物理地址与界限寄存器值比较,如果未超出,表示未越界,可以继续执行;如果超出,则产生一中断信号送至CPU,告诉它程序执行越界,终止。现代OS一般不用这种方法,重启即可。单一连续分配的缺点•一个作业独占主存储空间,降低存储空间的利用率;•处理器和外部设备串行工作;•计算机的外围设备利用率不高分区式分配方式固定分区式分配动态分区式分配固定分区式分配实现思路将内存空间划分为若干个固定大小的分区,每个分区可装一道作业,当内存中划分成几个分区时,便允许几道作业并发运行;当某个分区的作业运行完毕,让出它所占有的这块内存时,系统
8、便从外存的后备队列中挑选出另一个作业调入内存划分分区的方法分区大小相等:简单、不很合理,程序太大,分区不够用,无法正常运行,程序太小,分
此文档下载收益归作者所有