合聚咖

合聚咖

内核态和用户态的区别是什么

admin

内核态和用户态的区别是权限不同。

内核态就是拥有资源多的状态,或者说访问资源多的状态,称之为特权态。相对来说,用户态就是非特权态。

当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。

此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。

每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。

即此时处理器在特权级最低的(3级)用户代码中运行。当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态。

因为中断处理程序将使用当前进程的内核栈。这与处于内核态的进程的状态有些类似。