用户态和内核态区别

是什么?
用户态和内核态是机器划分的不同的运行环境。
为什么
要避免程序随意直接访问操作系统内核数据结构和程序,这样会导致程序之间无规则的竞争和信息随意被访问
怎么用

  • 系统调用:通过操作系统提供的系统调用函数来实现切换。系统调用的本质是中断。
  • 异常事件:当CPU正在执行运行在用户态的程序时,突然发生某些预先不可知的异常,必须要先切换到内核态处理系统的异常==,典型的如缺页异常。
  • 外围设备的中断:当外部设备在用户态下完成用户的请求操作后,会向CPU发出中断信号,CPU就会暂停执行下一条即将要执行的指令,这时候就会切换到内核态,转而去执行中断信号对应的处理程序
    注意:系统调用的本质其实也是中断,相对于外围设备的硬中断,这种中断称为软中断。从触发的对象来看,系统调用是进程主动请求切换的,而异常和硬中断则是被动的
posted @ 2021-08-19 16:36  快乐的海盗  阅读(116)  评论(0编辑  收藏  举报