内存空间的分配与回收
《操作系统》
操作系统作为系统资源的管理者,当然也需要对内存进行管理,要管些什么呢?

游戏GTA的大小超过60GB,按理来说这个游戏程序运行之前需要把60GB数据全部放入内存。然而,实际我的电脑内存才4GB,但为什么这个游戏可以顺利运行呢?
为了使编程更方便,程序员写程序时应该只需要关注指令、数据的逻辑地址。而逻辑地址到物理地址的转换(这个过程称为地址重定位)应该由操作系统负责,这样就保证了程序员写程序时不需要关注物理内存的实际情况。
所以操作系统主要管理一下四个事情
- 1.操作系统负责内存空间的分配与回收
- 2.操作系统需要提供某种技术从逻辑上对内存空间进行扩充
- 3.操作系统需要提供地址转换功能,负责程序的逻辑地址与物理地址的转换
- 4.操作系统需要提供内存保护功能。保证各进程在各自存储空间内运行,互不干扰
内存保护

内存保护可采取两种方法:
方法一:在CPU中设置一对上、下限寄存器,存放进程的上、下限地址。进程的指令要访问某个地址时,CPU检查是否越界。

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


fixed
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。