操作系统在内存中的位置
操作系统就是管理计算机的程序,而管理者本身也需要使用内存空间资源。
内存管理的第一个问题是操作系统本身在内存中的存放位置。
1.仅有RAM时,使操作系统位于RAM底层
操作系统处于地址空间下面,有一个实际好处:就是在复位、中断、陷入等操作时,控制移交给操作系统更方便,因为操纵系统的起始地址为0,无须另行记录操作系统所处的位置,程序计数器清零就可以了。清零操作对于硬件来说非常简单,无须从总线或寄存器读取任何数据。
2.在既有ROM也有RAM的情况下,整个操作系统占用整个ROM
操作系统放在ROM里面的好处是不容易被破坏,缺点就是ROM要做得大,能够容纳整个操作系统。由于ROM比较贵,通常情况下是备有少量的ROM,只将操作系统的一部分放在ROM里,其余部分放在RAM里。
3.在既有ROM也有RAM的情况下,操作系统部分占用整个ROM,部分占用RAM底层
该分配模式还有另外一个好处:可以将输入输出和内存访问统一起来。即将输入输出设备里面的寄存器或其他存储媒介编入内存地址(在用户程序地址之上),使得访问输入输出设备如同访问内存一样。这种输入输出称为内存映射的输入输出。如果要访问的地址高于RAM的最高地址,则属于I/O操作,否则属于正常内存操作。
这种模式又分为3种情况:
•没有使用内存映射的输入输出,ROM里面全部是操作系统。
•使用了内存映射的输入输出,ROM的一部分是操作系统,另一部分属于I/O设备。
•使用了内存映射的输入输出,ROM全部属于I/O设备。
多数现代操作系统采用的是第2种情况:即ROM里面包括操作系统一部分和I/O,RAM里面则包括操作系统的其他部分和用户程序。
参考资料:
《操作系统之哲学原理》 邹恒明著