操作系统之存储器管理

时间:2022-10-05 14:25:12
功能 内容 注释
内存分配和回收 静态分配
动态分配
地址映射 (★) 静态重定位 不允许程序运行时在内存中移动
动态重定位 允许程序在运行期间在内存中移动
内存保护
内存扩充(逻辑扩充) 借助大容量外存解决内存不足

存储器结构

操作系统之存储器管理
其中寄存器,高速缓存,主存储器和磁盘缓存均属于系统存储管理的管辖范畴;低层的固定磁盘和可移动存储戒指属于设备管理的管理范畴,被长期保存.寄存器和内存被称为可执行存储器.进程可以使用load和store对可执行存储器进行访问,但是对辅存的访问则需要IO实现.所以设计终端,设备驱动程序和物理设备的运行,耗时远多于访问可执行存储器.

  • 主存储器简称内存或主存.用于保护进程运行时的程序和数据,也称为可执行存储器.处理机从内存取得指令和数据,并将读取的数据装入数据寄存器中,指令存入指令存储器.或者反之.
  • 寄存器具有和处理机一样的速度,最快,可与CPU协调工作,价格昂贵.
  • 高速缓存介于寄存器和存储器之间的,悲愤内存中较为常用的数据,减少处理机对存储器的访问次数.
  • 为了缓和访问磁盘和内存的速度,设置了磁盘缓存,展示存放频繁使用的磁盘数据信息.

存储器管理的基本概念

1.程序装入与链接

1).编辑:形成源代码.
2).编译:由编译程序进行编译,形成若干模块(函数模块)
3).链接:由链接程序(linker)将模块与依赖的库链接准归形成完整的装入模块(load module)
4).装入:由装入程序(loder)将装入模块装入内存.

2. 程序装入方式
1)绝对装入方式(absolute Loading Mode)
当计算机很小且仅能运行单道程序时,完全有可能知道程序将驻留在内存的什么位置,采用这种方式,
2)可重定位装入方式(Relocateion loading mode)
因为编译程序不可能预知多道程序还价下,目标模块应放何处.更具内存的具体情况将装入模块装入内存的适当位置.会使装入模块中的所有逻辑地址和实际装入内存后的物理地址不同.又因为地址变换是程序装入后一次完成的所以称为静态重定位.
3) 动态运行时的装入方式(dynamic run-time loading)
装入内存中,并不立即把逻辑地址转为物理地址,而是等到程序要执行的时候才转换,所以需要重定位寄存器的支持.
3. 程序链接
1) 静态链接(生成可执行文件时进行)
运行之前将各模块链接成一个完整的装配模块,不再拆开,并且解决两个问题:a 对相对地址进行修改,因为各个模块的起始地址都为0.b变换外部调用符号,将每个模块中所用的外部调用符号也都变换成相对地址.这种运行就放入内存的链接方式叫做静态链接方式.
2)装入时动态链接(Load-time dynamic linking)
装入内存时,采用便装入便链接的链接方式,若发生一个外部模块调用事件,将一起装入程序去找出相应的外部目标模块,装入内存还要按照静态链接时那样,修改模块相对地址.优点:a便于修改和更新.b便于实现对目标模块的共享.c便于运行环境的适应.缺点:链接开销大,管理开销大.
3)运行时动态链接
对于用不到的模块不放入内存,.

连续分配管理方式

1.单一连续分配
操作系统之存储器管理
2.固定分区分配
将内存用户空间划分成若干分区,每个分区中只装入一道作业。
划分分区的方法
分区大小相等:
缺乏灵活性,用于控制多个相同对象的系统
分区大小不等:
多个较小分区、适量中等分区、少量大分区
内存分配管理
将分区按大小或地址排序
建立分区使用表——起址、大小、状态
程序装入时,由内存分配程序检索分区使用表,找到符合要求的分区,并进行标记。
优点:易于实现,开销小。
缺点:
内存碎片,造成浪费
分区总数固定,限制了并发执行的程序数目。
3.动态分区分配
数据结构:
1 空闲区表(可用表、*表):记录空闲区大小和起始位置
2 空闲分区链——双向链表:*链从*块本身的首末端分别取出一个字来用于成链,它记录两个项:*块的大小以及下一个*块的始址。所以成链可以是单链、双链或循环链,根据使用的分配算法而定。

分区分配算法
1 基于顺序搜索的动态分区分配算法
①首次适应算法(FF):对于存储申请,选取满足申请长度且起始地址最小的空闲区。
特点:内存低端会留下小的空闲区(碎片),高端有大的空闲区。
②循环适应算法(CF):从上次分配的位置之后开始查找。
特点:使内存的空闲分区均匀,但缺乏大的空闲分区。
③最佳适应算法(BF):空闲分区按大小递增的次序排列,从头开始找到第一个满足要求的空闲分区。
特点:会留下大量小碎片。
④最坏适应算法(WF):空闲分区按大小递减的次序排列。
优点:分配后剩下的可用空间比较大
缺点:一段时间后就不能满足对于较大空闲区的分配要求。
2基于索引的动态分区算法

4.可重定位分区分配

非连续分配管理方式

1.分页管理方式
2.分段管理方式
3.段页式管理方式

理解管理方式的基本原理和工作过程,搞清楚关系和区别,优缺点