OS - 操作系统中的特权处理与访管指令


主要参考:

  • 《操作系统概论》(机械工业出版社)

特权指令

调用源头上,为保证计算机系统正确可靠地工作(避免引起冲突或意外错误),限制部分指令不允许用户程序调用,称为特权指令只允许操作系统调用)。

目态/管态

区分处理特权指令与普通指令,CPU同时设置了两种工作状态

  • 目态,不允许执行特权指令
  • 管态,允许执行特权指令

标识CPU工作状态的关键判断依据 —— 程序状态字(Program Status Word,PSW)。

程序状态字(Program Status Word,PSW)

程序状态字

每个程序都要有一个程序状态字,用来控制指令执行顺序,并且保留和指令与程序有关的系统状态,包含三部分内容:

  • 程序基本状态
    • 等待/计算:当前处理器状态;
    • 目态/管态:当前处理器状态;
    • 条件码:体现当前指令执行结果的各种状态信息(如算术运算产生的正、负、零或溢出等);
    • 指令地址:下一条指令的存放地址
  • 中断码:保存程序执行时当前发生的中断事件;

  • 中断屏蔽位:指出程序执行中,是否要响应出现的中断事件。

单处理器计算机系统中,有一个专门用来存放当前运行程序的 PSW 的寄存器,称为程序状态字寄存器。因此操作系统调度 CPU 执行/挂起相关程序时,也就需要将对应程序的 PSW 装入/移出程序状态字寄存器。

访管指令

用户程序执行过程中,需要调用操作系统提供的不同功能的子程序,也就是系统调用(如读/写文件、分配主存等),其中有些还必须执行硬件的特权指令(如 I/O指令)才能完成任务,因此,需要在目态(用户程序执行,CPU不处理特权指令)下提供一个渠道,来使操作系统执行相关特权指令,这个渠道就是“访管指令”。

访管指令调用

  • 编译程序翻译过程中,将需调用操作系统功能的逻辑要求转换成访管指令,并设置一些参数;

  • 处理器执行到访管指令时,会产生一个中断事件(1)(将操作系统程序的PSW装入程序状态字寄存器),实现用户程序与系统调用程序之间的转换;

  • 系统调用按规定参数执行结束后,再返回到用户程序(2)(将用户程序的PSW重新装入程序状态字寄存器)。


猜你喜欢

转载自www.cnblogs.com/JustBeZero/p/9632781.html