扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: 计算机基础 > 操作系统 > 4.用户态和内核态是如何切换的?

先看为什么要进行切换

用户程序是跑在用户态下的,但有时候会遇到一些操作需要比较高的权限,比如申请内存等,这时候就需要转换到内核态去做。

用户态切换到内核态主要是通过中断异常陷入机制(访管指令)

内核态切换到用户态是通过设置程序状态字PSW

导致用户态切换到内核态最主要有三种场景

  • 系统调用,这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作。
  • 异常,当CPU执行运行在用户态下的程序时,发生了异常,这时会从当前的进程切换到处理异常的内核相关程序中,也就是从用户态切换到内核态,比如缺页异常
  • 外围设备的中断,当外围设备完成用户请求的操作后,会像CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序

点击面试手册,获取本站面试手册PDF完整版