OS 用户态转向核心态的例子

  1. 用户程序要求操作系统的服务,即系统调用。
  2. 发生一次中断。
  3. 用户程序中产生了一个错误状态。
  4. 用户程序中企图执行一条特权指令。
  5. 从核心态转向用户态由一条指令实现,这条指令也是特权指令,一般是中断返回指令。

注意:

1)若程序的运行由用户态转到核心态,则会用到访管指令,访管指令是在用户态使用的,所以访管指令不可能是特权指令。其基本功能是让程序“自愿进管”,从而引起访管中断。

2)计算机区分核心态和用户态后,从核心态到用户态的转换是由操作系统程序执行后完成的,而用户态到核心态的转换规则则是由 硬件 完成的,而从用户态转到核心态的唯一途径中断或异常

3)由用户态到核心态,不仅状态需要转换,而且所用的堆栈也可能需要由用户堆栈切换为系统堆栈,但是这个系统堆栈是属于该进程的。

发布了113 篇原创文章 · 获赞 58 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/QQQZSJ/article/details/100834577
os