1.存储器的层次管理
访问速度从上往下依次降低
- 主存储器(简称内存、主存,也称可执行存储器):用来保存进程运行时的程序和数据。由于主存的访问速度远低于CPU执行指令的速度,为缓和这一矛盾,引入了寄存器和高速缓存。
- 寄存器:访问速度最快。
- 高速缓存:访问速度快于主存
- 磁盘缓存
2.程序的装入和链接
编译–链接–装入
单个目标模块的装入过程:
- 绝对装入方式:事先知道程序将驻留在内存的位置,编译程序将产生绝对地址的目标代码。可适合单道程序环境
- 可重定位装入方式:多道程序环境下的起始地址是0开始,根据内存 当情况,将装入模块装入合适位置
- 动态运行时装入方式:程序在运行过程中,在内存中中的位置可能经常要改变,因此将相对地址转换为绝对地址的过程推迟到运行时执行
程序的链接:
- 静态链接
- 装入时动态链接:优点,便于修改和更新,便于实现对目标模块的共享
- 运行时动态链接:加快程序的装入过程,且节省大量空间
3.连续分配方式
- 单一连续分配:只用于单用户、单任务的操作系统,内存可分为系统区和用户区。
- 固定分区分配:可运行多道程序,将内存划分为若跟个固定大小的区域,每个分区之装入一道程序。划分分区的方法:分区大小相等(缺乏灵活性)、分区大小不等
- 动态分区分配:数据结构(空闲分区表、空闲分区链)、分区分配算法(首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法、快速适应算法)、分配内存、回收内存
- 动态重定位分区分配:增加重定位寄存器,分区算法与动态分区算法增加紧凑过程(即若多个小的碎片总和大于所要求的内存,则进行紧凑)
- 伙伴系统:特点已分配区或空闲分区均为2的k次幂
- 哈希算法
对换:将内存上暂时不能运行的进程或者暂时不用的程序和数据调出到外存上。提高内存利用率。可分为进程对换、页面对换、分段对换。为了实现进程对换,必须实现三个功能:
- 对换空间的管理:外存分为文件区和对换区,文件区采取离散分配方式,对换区采取连续分配方式
- 进程的换出:选取处于阻塞状态且优先级低的进程作为换出进程
- 进程的换入:系统定时查看所有进程的状态,从中找到“就绪”状态但已换出,且换出时间最久的进程换入内存。
4.分页存储管理方式和分段存储管理方式
离散分配方式:将一个进程直接分散地装入到许多不相邻接的分区中
分页存储管理方式:如果不具备页面对换功能,则成为基本的分页存储管理方式/纯分页存储管理方式,不支持实现虚拟存储器的功能。(分页提高内存利用率)
分段存储管理模式:(满足用户在编程和使用上多方面的要求:方便编程、信息共享、信息保护、动态增长、动态链接)
- 段页式存储管理方式
分页和分段的主要区别:
(1)页是信息的物理单位,分页是为了减少内存碎片,提高内存的利用率;分段是为了更好地满足用户的需要
(2)页的大小固定且由系统决定,由系统把逻辑地址分为页号和页内地址两部分,是由机器硬件决定的;而段的长度却不固定,决定于用户编写的程序;
(3)分页的作业地址空间是一维的;而分段的作业地址空间是二维的,标识一个地址时,既需要段名也需给出段内地址。
5.虚拟存储器的基本概念
虚拟存储器主要是从逻辑上扩充内存容量。常规存储器管理方式的特征:一次性、驻留性。
虚拟存储器指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。
实现方法:
- 分页请求系统:在分页系统的基础上,增加请求调页功能和页面置换功能。为了实现请求调页和置换功能,系统必须提供必要的硬件支持和响应的软件。硬件:请求分页的页表机制、缺页中断机构、地址变换机构。软件:实现请求分页
- 请求分段系统:同上
虚拟存储器的特征:多次性、对换性、虚拟性
页面置换算法:
- 最佳置换算法:选择淘汰的页面是以后永不使用或最长时间内不再被访问的页面,因此无法实现。
- 先进先出(FIFO)页面置换算法:淘汰最先进入内存的页面
- 最近最久未使用(LRU)置换算法:该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,选择其t值最大的,即最近最久未使用的页面予以淘汰,需硬件支持
- Clock置换算法:LRU的近似算法,也叫最近未用算法(NRU)
- 最少使用(LFU)置换算法
- 页面缓冲算法(PBA):VAX/VMS操作系统使用