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

程序的装入与连接

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

绝对转入方式

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

可重定位方式

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

动态运行时的装入方式

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

程序的链接

静态链接

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

装入时动态链接

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

  1. 便于修改和更新
  2. 便于实现对目标模块的共享

运行时动态链接

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

连续分配存储管理方式

单一连续分配

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

固定分区分配

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

划分分区的办法

  1. 分区大小相等。缺点:缺少灵活性,造成空间浪费
  2. 分区大小不等,大小不同的分区装入不同的作业

内存分配

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

动态分区分配

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

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

  1. 空闲分区表。记录每个空闲分区的情况
  2. 空闲分区链。将空闲分区排成一个双向链,便于检索,分配出去就把状态为由0设为1

动态分配算法

见另一博文

分区分配操作

  1. 分配内存,从空闲分区链找到适合的大小,然后分区
  2. 回收内存。①空闲分区与F1相邻,在其后面,合并为F1②分区与F2相邻在F2前面,将F2合并为回收分区
    ③与F1和F2相信,全部合并为F1.④都不相邻,重新见一个分区表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值