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

程序的装入与连接

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

绝对转入方式

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

可重定位方式

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

动态运行时的装入方式

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

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

程序的链接

静态链接

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

装入时动态链接

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

优点:

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

运行时动态链接

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

连续分配存储管理方式

单一连续分配

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

固定分区分配

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

划分分区的办法

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

内存分配

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

动态分区分配

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

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

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

动态分配算法

见另一博文

分区分配操作

  1. 分配内存,从空闲分区链找到适合的大小,然后分区
  2. 回收内存。①空闲分区与F1相邻,在其后面,合并为F1②分区与F2相邻在F2前面,将F2合并为回收分区

    ③与F1和F2相信,全部合并为F1.④都不相邻,重新见一个分区表

时间: 2024-10-08 18:12:15

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

操作系统之存储器管理

存储器的层次结构 存储器的层次如下图: 上图中,寄存器和主存储器称为可执行存储器.高速缓存的作用是缓和CPU与内存之间的速度差异,主要由硬件实现.磁盘缓存的出现是由于内存容量不够,需要引入磁盘,然而磁盘的I/O速度远低于主存的访问速度,为了缓和两者之间在速度上的差异,设置了磁盘缓存.磁盘缓存与高速缓存不同,它本身并不是实际存在的存储器,是利用主存中的部分空间暂时存放从磁盘中读出写入的信息. 程序的装入与链接 用户程序需要运行,必须先将它装入内存,然后再将其转变为一个可以执行的程序,通常要经历一下

【操作系统】存储器管理(四)

一.前言 在分析了处理器调度后,接着分析存储器管理,如何对存储器进行有效的管理,直接影响着存储器的利用率和系统性能.下面,开始存储器管理的学习. 二.存储器的层次结构 2.1 主存储器 主存储器是计算机系统中的一个主要部件,用于保存进程运行时的程序和数据,CPU的控制部件只能从主存储器中取得指令和数据,数据能够从主存储器中读取并将他们装入到寄存器中,或者从寄存器存入到主存储器,CPU与外围设备交换的信息一般也依托于主存储器地址空间.但是,主存储器的访问速度远低于CPU执行指令的速度,于是引入了寄

计算机操作系统之存储器管理

程序运行 将用户的一个源程序变成一个可在内存中执行的程序,通常要经过以下几个步骤: 1.编译:由编译程序,将程序编译成若干个目标模块 2.链接:由链接程序将编译后形成的一组目标模块,以及他们所需要的库函数链接在一起,形成一个完整的装入模块. 3.装入:由装入程序将装入模块装入内存 具体讨论一下如何把一个装入模块,装入内存: 1.绝对装入方式:编译程序产生带有绝对地址的目标代码,只适合于单道程序环境. 2.可重定位装入方式:所得到的模块都是以0开始的,程序中的其它地址也都是相对于起始地址计算的,此

计算机操作系统 存储器管理

1.连续分配存储管理方式 1.1 单一连续分配 1.2 固定分区分配 1.2.1 分区大小相等 1.2.2 分区大小不相等 1.3 动态分区分配 1.3.1 数据结构 1.3.2 动态分配分区算法 1.3.2.1 基于顺序搜索的动态分区分配算法 1.3.2.1.1 首次适应算法(first fit) 1.3.2.1.2 循环首次适应算法(next fit) 1.3.2.1.3 最佳适应算法(best fit) 1.3.2.1.4 最坏适应算法(worst fit) 1.3.2.2 基于索引搜索的

操作系统基本分页存储管理方式

操作系统基本分页存储管理方式 连续分配内存方式会形成许多"碎片",通过紧凑的方式将碎片拼接成一块大的空间,但是拼接过程系统开销太大.如果允许将一个进程直接分散地装入到许多不相邻的分区中,那么就不需要再进行"紧凑".基于这一思想而产生了离散分配方式.如果离散分配的基本单位是页,则称为分页存储管理方式:如果离散分配的基本单位是段,则称为分段存储管理方式. 在分页管理方式中,如果不具备页面对换功能(将处于阻塞状态且优先级低的进程对换到外存),则称为基本的分页存储管理方式,

连续分配管理方式

在早期的操作系统中,是通过简单的分区技术进行内存管理的,内存分区属于连续分配方式. 1.单一连续分配 只能用于单用户.单任务的操作系统. 将内存分为系统区和用户区两部分,系统区仅提供给操作系统使用,通常是放在内存的低地址部分: 用户区是指除系统区以外的全部内存空间,提供给用户使用 2.固定分区分配 系统将这些用户主存空间划分为若干个固定大小的区域,每个区域供一道程序使用,分区大小可以相等也可以不等. 存在两个问题:1)程序可能太大,而放不进任何一个分区. 2)主存利用率低,当程序小于固定分区大小

操作系统-存储器管理

存储器管理 存储器的层次结构 程序的装入和链接 用户程序要在系统中运行的话,就必须装入内存,然偶后将其转变为一个可执行的程序. 编译 由编译程序对用户源程序进行编译,形成若干个目标文件 链接 由链接程序将编译后形成的一组目标模块以及它们所需要的库函数接在一起,形成一个完整的装入模块 装入 由装入程序将装入模块装入内存 程序的链接 静态链接方式 在程序运行前,就先将各个目标模块以及它们所需要的库函数链接成一个完成的装配模块,之后都不会拆开,这样需要解决两个问题:修改相对地址,变换外部调用符号 装入

操作系统-存储器管理部分

存储器历来都是计算机系统中重要的组成部分.仍然是一种宝贵而又稀缺的资源. 如何对它加以有效的管理,不仅直接影响到存储器的利用效率,而且会影响系统的性能. 存储器的管理的主要对象是内存.在计算机执行时,几乎每一条指令都会涉及到对存储器的访问. 存储器的三个理想条件(这三个条件从现在技术来讲是不可能同时达到的) 1.对存储器的访问速度要跟得上处理机的运行速度. 2.要求存储器要有很大的容量. 3.而且存储器的造价应该很低. 在现代计算机系统当中无一例外的采用了多层结构的存储器系统. 存储器的多层结构

操作系统学习-1-操作系统概论及存储器管理

!:什么是操作系统? 操作系统没有一个完整.精确.公认的定义,因为操作系统是一个复杂的系统软件,其外沿或边界不是很清楚.但是可以从功能的角度对其进行定义,从功能的角度来说的话,可以分为对内和对外,对外即对应用程序:对应用程序来说,操作系统是一个控制软件:能够管理应用程序,包括对应用程序的启动.中断.挂起.杀死等,并且能够为应用程序提供各种各样的服务,譬如:网卡服务,声卡服务,io服务等.对内即对硬件资源:对硬件资源来说,操作系统是一个资源管理软件:能够协调的为各种应用程序分配相应的资源,这些资源