功能 | 内容 | 注释 |
---|---|---|
内存分配和回收 | 静态分配 | |
动态分配 | ||
地址映射 (★) | 静态重定位 | 不允许程序运行时在内存中移动 |
动态重定位 | 允许程序在运行期间在内存中移动 | |
内存保护 | ||
内存扩充(逻辑扩充) | 借助大容量外存解决内存不足 |
存储器结构
其中寄存器,高速缓存,主存储器和磁盘缓存均属于系统存储管理的管辖范畴;低层的固定磁盘和可移动存储戒指属于设备管理的管理范畴,被长期保存.寄存器和内存被称为可执行存储器.进程可以使用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.段页式管理方式