您的位置:首页 > 其它

【操作系统总结】存储器管理-程序的装入与连接,连续分配存储管理方式

2015-05-31 19:16 495 查看

程序的装入与连接

程序要经过编译,链接,装入才能运行

绝对转入方式

将程序装入事先指定的地址,程序装入以后逻辑地址与实际内存地址相同。要求程序员非常熟悉内存地址

可重定位方式

根据内存的具体情况将程序装入适当的位置,把装入时对程序和数据的地址修改过程称为重定位。

动态运行时的装入方式

程序对换的时候内存是改变的

可重定位不允许程序运行时在内存中移动位置。动态运行时的装入程序在把装入模块装入内存后,并不立即把装入模块转换程物理地址,而是吧这中地址转换推迟到程序真正要求执行时进行。

程序的链接

静态链接

在程序运行之前,先将个目标模块及他们所需的库函数链接程一个完整的装配模块,以后不在拆开,就是静态连接方式

装入时动态链接

在装入内存时,边装入边链接源程序

优点:

便于修改和更新

便于实现对目标模块的共享

运行时动态链接

运行的时候需要哪个模块就链接哪个模块

连续分配存储管理方式

单一连续分配

单道程序环境,整个内存都是的空间都是由用户这一个程序独占,就是单一连续分配

固定分区分配

把内存划分为几个块,每一个块中装入一个程序,有一个空闲分区,就可以从外部调用一个作业装入该分区

划分分区的办法

分区大小相等。缺点:缺少灵活性,造成空间浪费

分区大小不等,大小不同的分区装入不同的作业

内存分配

将分区按大小排列,再为其简历一张分区使用表。装入作业的就检索这张表,分配的内存就把状态变为”已分配”;如果没有找到适合的分区,就决绝为该用户程序分配内存

动态分区分配

根据进程的需要,动态的分配内存。

动态分区分配中的数据结构

空闲分区表。记录每个空闲分区的情况

空闲分区链。将空闲分区排成一个双向链,便于检索,分配出去就把状态为由0设为1

动态分配算法

见另一博文

分区分配操作

分配内存,从空闲分区链找到适合的大小,然后分区

回收内存。①空闲分区与F1相邻,在其后面,合并为F1②分区与F2相邻在F2前面,将F2合并为回收分区

③与F1和F2相信,全部合并为F1.④都不相邻,重新见一个分区表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: