存储保护:为避免主存中的多个进程相互干扰,必须对主存中的程序和数据进行保护。这一功能需要软硬件协同完成,CPU检查是否允许访问,不允许则产生地址保护异常,由OS进行相应处理。
- 数据段可指定R/W或RO;程序段可指定R/E或RO
- 私有主存区中的信息可读可写;公共区中的共享信息则需根据授权
- 非本进程信息、未获授权的信息(如OS内核、页表等)不可读写
以下情况会发生存储保护错:
- 访问越权(访问操作与所拥有的访问权限不符):页表中设定访问(存取)权限
- 地址越界(转换得到的物理地址不属于可访问范围)
为了对操作系统的存储保护提供支持,硬件必须具有以下三种基本功能:
- 支持至少2种运行模式
管理模式:执行系统程序(内核)时处理器所处的模式,或称管理程序模式,简称管态、管理态、核心态、内核态
用户模式:CPU执行非操作系统的用户程序时,处理器所处的模式,或称用户状态、目标程序状态,简称目态、用户态
- 使一部分CPU状态只能由内核程序用管态指令(特权指令)读写而不能由用户程序读写:User/SuperVisor模式位、页表首地址、TLB等。
- 提供让CPU在管理模式和用户模式相互转换的机制:异常和陷阱(系统调用)使CPU从用户态转到内核态;异常处理中的“返回”指令使CPU从内核态转到用户态。
动态重定位、存储保护等,若无硬件支撑在效率上是无意义、无实现价值的。
地址转换/存储保护的硬件支撑图