首页 > 试题广场 >

什么是用户态和内核态?从什么方面区分这两个?用户态切内核态有

[问答题]
什么是用户态和内核态?从什么方面区分这两个?用户态切内核态有哪些情况?
用户态:运行应用进程
内核态:运行操作系统
通过执行级别来区分。
切换主要是三个方面:系统调用,异常和外围设备的中断
发表于 2020-02-12 22:15:02 回复(0)
更多回答
当一个进程在执行用户自己的代码时处于用户运行态(用户态),此时特权级最低,为3级,是普通的用户进程运行的特权级,大部分用户直接面对的程序都是运行在用户态。Ring3状态不能访问Ring0的地址空间,包括代码和数据;当一个进程因为系统调用陷入内核代码中执行时处于内核运行态(内核态),此时特权级最高,为0级。执行的内核代码会使用当前进程的内核栈,每个进程都有自己的内核栈。
当在系统中执行一个程序时,大部分时间是运行在用户态下的,在其需要操作系统帮助完成一些用户态自己没有特权和能力完成的操作时就会切换到内核态。
用户态切换到内核态的3种方式:
(1)系统调用
(2)异常
(3)外围设备的中断
发表于 2020-03-29 17:21:28 回复(0)