码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-05-31 20:12:30      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:

程序的装入与连接

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

绝对转入方式

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

可重定位方式

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

动态运行时的装入方式

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

程序的链接

静态链接

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

装入时动态链接

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

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

运行时动态链接

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

连续分配存储管理方式

单一连续分配

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

固定分区分配

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

划分分区的办法

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

内存分配

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

动态分区分配

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

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

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

动态分配算法

见另一博文

分区分配操作

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

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

标签:

原文地址:http://blog.csdn.net/ttf1993/article/details/46290849

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!