内核态和用户态

一、内核态和用户态

1.内核态:控制计算机的硬件资源,并提供上层应用程序的环境。

2.用户态:上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源。

3.系统调用:为了使上层应用能够访问到这些资源,内核为上层应用提供访问的接口。

二、用户态切换为内核态的三种情况

2.1 系统调用:主动、软中断

2.2 异常事件:当CPU正在执行运行在用户态的程序时,突然发生某些预先不可知的异常事件,这个时候就会触发从当前用户执行的进程转向内核态执行相关的异常事件,典型的缺页异常。

2.3 外围设备的中断:当外围设备完成用户的请求操作后,会向CPU发出中断信号,此时,CPU就会暂停执行下一条即将要执行的指令,转而去执行中断信号对应的处理程序,如果先前执行的指令是在用户态下,则自然就发生从用户态到内核态的转换。被动,硬中断。

你可能感兴趣的:(linux)