四章储器管理

上传人:壹****1 文档编号:569720560 上传时间:2024-07-30 格式:PPT 页数:38 大小:934.01KB
返回 下载 相关 举报
四章储器管理_第1页
第1页 / 共38页
四章储器管理_第2页
第2页 / 共38页
四章储器管理_第3页
第3页 / 共38页
四章储器管理_第4页
第4页 / 共38页
四章储器管理_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《四章储器管理》由会员分享,可在线阅读,更多相关《四章储器管理(38页珍藏版)》请在金锄头文库上搜索。

1、程序装入与内存分配第四章第四章 存储器管理存储器管理 4.1 4.1 程序的装入和链接程序的装入和链接 4.2 4.2 连续分配方式连续分配方式 程序装入与内存分配上节回顾上节回顾1.第二三章复习程序装入与内存分配基本概念基本概念程序装入与内存分配4.1 程序的装入和链接程序的装入和链接 程序装入与内存分配4.1.1 程序的装入程序的装入程序装入与内存分配1. 绝对装入方式绝对装入方式(Absolute Loading Mode) 程序中所使用的绝对地址,既可在编译或汇编时给出, 也可由程序员直接赋予。 通常是在程序中采用符号地址,然后在编译或汇编时,再将这些符号地址转换为绝对地址。 特点:程

2、序的逻辑地址与实际内存地址相同程序装入与内存分配2. 可重定位装入方式可重定位装入方式(Relocation Loading Mode) 特点:地址变换在装入时一次性完成,不再改变程序装入与内存分配3. 动态运行时装入方式动态运行时装入方式(Denamle Run-time Loading) 可重定位装入并不允许程序运行时在内存中移动位置。 动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此, 装入内存后的所有地址都仍是相对地址。 程序装入与内存分配4.1.2 程序的链接程序的链接 1.静态链接方式静

3、态链接方式(Static Linking) 2.装入时动态链接装入时动态链接(Load time Dynamic Linking)3.运行时动态链接运行时动态链接(Run-time Dynamic Linking)程序装入与内存分配4.1.2 程序的链接程序的链接 1. 静态链接方式静态链接方式(Static Linking) 图 4-3 程序链接示意图 程序装入与内存分配 在将这几个目标模块装配成一个装入模块时,须解决以下两个问题: (1) 对相对地址进行修改。 (2) 变换外部调用符号。 程序装入与内存分配2. 装入时动态链接装入时动态链接(Loadtime Dynamic Linking

4、) 装入时动态链接方式有以下优点: (1)便于修改和更新。 (2)(2) 便于实现对目标模块的共享。 程序装入与内存分配3. 运行时动态链接运行时动态链接(Run-time Dynamic Linking) 对模块的链接推迟到执行时才执行,即在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存, 把它链接到调用者模块上。凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上,这样不仅可加快程序的装入过程,而且可节省大量的内存空间。 程序装入与内存分配4.2 连续分配方式连续分配方式程序装入与内存分配4.2.1 单一连续分配单一连续分配 程序装入

5、与内存分配4.2.2 固定分区分配固定分区分配 划分分区的方法划分分区的方法 (1)分区大小相等, 即使所有的内存分区大小相等。 (2)(2) 分区大小不等。 程序装入与内存分配程序装入与内存分配2. 内存分配内存分配 图 4-4 固定分区使用表 程序装入与内存分配程序装入与内存分配4.2.3 动态分区分配动态分区分配 程序装入与内存分配程序装入与内存分配1. 分区分配中的数据结构分区分配中的数据结构 (1)空闲分区表。 (2) 空闲分区链。 图 4-5 空闲链结构 程序装入与内存分配2. 分区分配算法分区分配算法 (1)首次适应算法FF。 (2)(2) 循环首次适应算法,该算法是由首次适应算

6、法演变而成的。(3)(3) 最佳适应算法。 程序装入与内存分配程序装入与内存分配程序装入与内存分配程序装入与内存分配程序装入与内存分配3. 分区分配操作分区分配操作 1) 分配内存 图 4-6 内存分配流程程序装入与内存分配2) 回收内存 图 4-7 内存回收时的情况 程序装入与内存分配程序装入与内存分配4.2.4 可重定位分区分配可重定位分区分配 程序装入与内存分配1. 动态重定位的引入动态重定位的引入 图 4-8 紧凑的示意 程序装入与内存分配2. 动态重定位的实现动态重定位的实现 图 4-9 动态重定位示意图 程序装入与内存分配3. 动态重定位分区分配算法动态重定位分区分配算法 图 4-

7、10 动态分区分配算法流程图 程序装入与内存分配4.2.5 对换对换(Swapping) 1. 对换的引入对换的引入 所谓“对换”, 是指把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据,调入内存。对换是提高内存利用率的有效措施。整体对换:以进程为单位部分对换:以页或段为单位程序装入与内存分配2. 对换空间的管理对换空间的管理 为了能对对换区中的空闲盘块进行管理,在系统中应配置相应的数据结构,以记录外存的使用情况。其形式与内存在动态分区分配方式中所用数据结构相似,即同样可以用空闲分区表或空闲分区链。在空闲

8、分区表中的每个表目中应包含两项, 即对换区的首址及其大小,它们的单位是盘块号和盘块数。 程序装入与内存分配3. 进程的换出与换入进程的换出与换入 (1) 进程的换出。 每当一进程由于创建子进程而需要更多的内存空间,但又无足够的内存空间等情况发生时,系统应将某进程换出。 其过程是:1、系统选择处于阻塞状态且优先级最低的进程作为换出进程,2、启动盘块,将该进程的程序和数据传送到磁盘的对换区上。3、若传送过程未出现错误,便可回收该进程所占用的内存空间,并对该进程的进程控制块做相应的修改。 程序装入与内存分配 (2) 进程的换入。 系统应定时地查看所有进程的状态,从中找出“就绪”状态但已换出的进程,将其中换出时间(换出到磁盘上)最久的进程作为换入进程,将之换入,直至已无可换入的进程或无可换出的进程为止。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号