3.2 内存管理
作为计算机资源的管理者,操作系统在内存管理方面有着很多的工作
3.2.1 内存空间的分配和回收
内存空间的分配和回收主要解决的问题是内存空间那些区域需要被分配以及如何分配,还有进程结束后的空间是如何释放以及怎么释放的问题(后期会有介绍)
3.2.2 内存空间的拓展
之前在讲操作系统的虚拟性的时候提到过,由于内存资源价格昂贵所以人们会使用一些技术将内存在逻辑上进行拓展
3.2.3 地址转换
为了使编程更方便,程序员写程序时应该只需要关注指令、数据的逻辑地址。而逻辑地址到物理地址的转换(这个过程称为地址重定位)应该由操作系统负责,这样就保证了程序员写程序时不需要关注物理内存的实际情况。其中地址重定位我们就会联想到上节讲过的绝对装入、可重定位装入、动态重定位装入。
3.2.4 内存保护
内存保护主要是为了保证各个进程在各自的存储空间内运行不影响其他进程。内存保护可以采用两种方式:
方法一:在CPU中设置一对上、下限寄存器,存放进程的上、下限地址。进程的指令要访问某个地址时,CPU检查是否越界。
方法二:
采用重定位寄存器(又称基址寄存器)和界地址寄存器(又称限长寄存器)进行越界检查。重定位寄存器中存放的是进程的起始物理地址。界地址寄存器中存放的是进程的最大逻辑地址。