操作系统作为系统资源的管理者,也需要对内存进行管理

1. 内存空间的分配与回收

  • 操作系统如何记录哪些内存区域已经被分配出去哪些还空闲?
  • 很多位置可以存放,应该存放在哪里?
  • 进程运行结束之后,如何将进程占用的内存空间回收?

2. 内存空间的扩展

操作系统需要提供某种技术从逻辑上对内存空间进行扩充

3. 地址转换

为了使编程方便,程序员写程序时应该只需要关注指令、数据的逻辑地址。而逻辑地址到物理地址的转换应该由操作系统负责(这个过程称为重定位),这样就保证了程序员写程序时不需要关注物理内存的实际情况。

操作系统需要提供地址转换功能,负责程序的逻辑地址与物理地址的转换

4. 内存保护

操作系统需要提供內存保护功能。保证各进程在各自存储空间内运行,互不干扰

内存保护可采取两种方法:

4.1. 上、下限寄存器

在 CPU 中设置一对上、下限寄存器,存放进程的上、下限地址。进程的指令要访问某个地址时,CPU 检查是否越界。

4.2. 重定位寄存器和界地址寄存器

采用重定位寄存器(又称基址寄存器)和界地址寄存器(又称限长寄存器)进行越界检查。重定位寄存器中存放的是进程的起始物理地址。界地址寄存器中存放的是进程的最大逻辑地址

5. 总结