2.2.2 存储体系
计算机系统采用层次结构的存储系统,以便在速度、容量、价格等要素之间取得性能和费用的折中。
1.存储器层次结构
按照访问速度由快到慢、价格由高到低对存储器层次从上到下划分,分为寄存器、高速缓存(Cache)、主存、磁盘、磁带等5层。其中磁盘和磁带统称辅存,容量大且存储的信息可永久保存,属于操作系统中设备管理的管理对象;另外三层均属于存储管理的管理对象,存取速度快,但所存信息掉电后会消失。
寄存器和高速缓存用于加快指令的执行。寄存器访问速度最快、价格最贵、容量较小,一般以“字”为单位,只用来存放临时的工作信息或系统必需的控制信息。高速缓存容量稍大,存放主存中经常访问的一些信息。
主存是CPU能直接访问的唯一存储空间,程序和数据必须装入主存之后CPU才能对它们进行操作。主存以“字节”为单位进行编址。计算机系统地址总线的根数决定内存空间的最大寻址范围,但内存空间的大小取决于实际安装的RAM片数和容量。CPU执行程序时,每次从主存中读出一条指令,并存入“指令寄存器”。然后分析指令,根据指令中指定的地址从主存读出操作数存入“通用寄存器”;根据指令中的操作码对操作数进行运算,将结果暂存在通用寄存器,或者存储到主存中。利用控制寄存器来保证各程序(交替占用处理器时)能正确执行以及系统安全。
系统启动后,将操作系统的核心程序装入主存,主存的其余存储空间用来存放当前需执行的程序和数据。大部分程序(编译程序、应用程序和操作系统的非核心程序等)都存放在辅存中,如果要使用辅存中的信息,应该先将其调入主存。
2.存储保护机制
主存中往往同时存在操作系统程序和多个用户程序,为了保证操作系统程序不被破坏,以及避免用户程序之间相互干扰,必须限定用户程序的主存活动区域。对主存有多种管理方式,不同的管理方式有不同的存储保护方法。存储保护涉及防止地址越界和控制正确存取。
防止地址越界就是对程序运行时所产生的所有主存访问地址进行检查,确保仅访问自己的主存区。例如,对于每个程序在主存中占一个连续的存储空间的存储管理方式,需要设置基址寄存器和限长寄存器。当操作系统选中某用户程序占用CPU时,将该程序所占主存空间的起始地址存入基址寄存器,将所占主存空间的长度存入限长寄存器。CPU在目态下执行程序时,对每一个访问主存的地址进行检查,若关系式(基址寄存器值≤访问地址≤基址寄存器值+限长寄存器值)成立,则允许访问,这样就保护了该区域之外的存储信息不被破坏。CPU在管态下执行程序时,不对访问主存的地址进行检查,以允许操作系统对各个用户程序进行管理和控制。此外,只有操作系统才有权改变基址寄存器和限长寄存器的值。
控制正确存取是指程序在访问分配给自己的主存区时,要对访问权限(读、写、执行)进行检查,以保证数据的安全性和完整性,达到信息存取保护的目的。