一、CPU的两种运行模式
用户态和内核态是CPU的两种运行模式,其通过CPU中的状态寄存器PSW标识。CPU处于内核态即正在执行内核程序,此时可以执行特权指令(不允许用户直接使用),而CPU处于用户态即在执行用户程序,只可执行非特权指令。
二、用户态与内核态的转化
内核态->用户态:CPU从内核态转化为用户态只需要执行特权指令、改变寄存器状态即可
用户态->内核态:CPU从用户态转化称为内核态仅仅只有通过中断才可以,此时操作系统内核夺回CPU的使用权
三、中断——外中断和内中断
外中断即来自CPU执行指令外部的事件导致中断,比如时钟中断、设备I/O中断等
内中断即异常是来自CPU执行指令内部的事件导致中断,比如陷入指令、非法操作等
四、系统调用——用户的主动中断
操作系统管理系统的软件以及硬件资源,一切和资源相关的操作都必须通过系统调用方式。当用户程序需要调用操作系统所提供的功能时,通过系统调用的方式向操作系统提出请求,由操作系统代为完成。
系统调用需要发生在内核态,用户程序主动执行陷入指令引起中断,从而将CPU的控制权交给操作系统内核(此时从用户态->内核态),操作系统内核程序在处理完系统调用请求后再将CPU使用权交给用户程序(此时从内核态->用户态)。