介绍操作系统是如何来管理内存资源。
层次化存储体结构
计算机的存储体系
- 寄存器(register)
- 在CPU内部,非常快速,昂贵
- 高速缓存(cache)
- 非常快速,昂贵,容量小,易失性
- 主存(RAM)
- 中等速度,中等价格,易失性
- 外存
- 容量大,速度慢,种类多,不易失
操作系统的工作就是协调这些存储器的使用,管理存储器的部分程序被称为存储管理器
- 记录存储使用状况
- 分配、回收存储资源
- 数据的装入与写回
存储管理系统分类
在运行期间,进程需要在内存和磁盘之间换进换出的系统(交换和分页)和不需要换进换出的系统。
不需要换进换出的系统
- 特点:进程被调入运行后,它将始终位于内存中,直至运行结束
- 没有交换和分页的单道程序
- 固定分区的多道程序
不需要换进换出的系统实现起来是最简单的,但无法做到并发等现代操作系统的高级功能。
基本的存储管理
单道程序存储管理
同一时刻只运行一道程序,应用程序和操作系统共享存储器。
相应地,同一时刻只能有一个进程在存储器中运行。
- 一旦用户输入了一个命令,操作系统就把需要的程序从磁盘贝到存储器中并执行它;在进程运行结束后,操作系统显示出个提示符并等待新的命令。当收到新的命令时它把新的程序装入存储器,覆盖掉原来的程序。
实现方案
将操作系统和应用程序在RAM上存放位置的不同分为以下三种结构:
固定分区的多道程序系统
将内存划分为n个分区(可能不相等),分区的划分可以在系统启动时手工完成。
实现方案
每个分区分别有一个运行队列
- 当一个作业到达时,可以把它放到能够容纳它的最小的分区的输入队列中
- 这会造成小分区的队列是满的,而大分区的输入队列却是空的
各分区共享同一个输入队列
如果选择小进程先运行,则会浪费内存空间;而如果选择大进程运行,则对小进程不利。