内核态
内核态:
通常一个内核由负责响应中断的中断服务程序,负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间的内存管理程序和网络,进程间通信等系统服务程序共同组成。其独立于普通应用程序,一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限,这种系统态和被保护起来的内存空间统称为内核空间。
用户态:
应用程序在用户空间执行,它们只能看到允许它们使用的部分系统资源,并且只能使用某些特定的系统功能,不能直接访问硬件,也不能访问内核划给别人的内存范围。
当内核运行时,系统以内核态进入内核空间执行,而执行一个普通用户程序时,系统将以用户态进入用户空间执行。
从用户态切换到内核态的三种方式:
(1).系统调用:
首先我们都知道应用程序通过系统调用界面陷入内核,这是应用程序完成其工作的基本行为方式;
(2).中断进入内核:
当外围设备完成用户的请求操作后,会像CPU发出中断信号,此时,CPU就会暂停执行下一条即将要执行的指令,转而去执行中断信号对应的处理程序,如果先前执行的指令是在用户态下,则自然就发生从用户态到内核态的转换。
(3).异常进入内核:
当CPU正在执行运行在用户态的程序时,突然发生某些预先不可知的