内存保护
需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他用户进程的影响。两种方法
- CPU中设置上、下限寄存器。
存放用户作业在主存中的下限和上限地址,每当CPU要访问一个地址时,分别和两个寄存器的值对比,判断有无越界 - 采用 重定位寄存器(或基址寄存器) 和 界地址寄存器(限长寄存器) 来实现保护。
重定位寄存器中含最小的物理地址值,界地址寄存器含逻辑地址的最大值。
每个逻辑地址值必须小于界地址寄存器;若比较后未越界则加上重定位寄存器的值后映射成物理地址,再送内存单元。
覆盖(Overlay)
早期用的。
基本思想:由于程序运行时并非任何时候都要访问程序及数据的各个部分(尤其是大程序),因此可把用户空间分成一个固定区和若干覆盖区。将经常活跃的部分放在固定区,其他部分按调用关系分段。首先将那些即将要访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统再将其调入覆盖区,替换覆盖区中原有的段。
实现:
- 将程序的必要部分代码和数据常驻内存