陷入指令是指用户程序所依靠的指令,用于发起系统调用,请求操作系统提供服务。
陷入指令有其中一点特殊在于,其只能在用户态下执行,而不可以在核心态下执行。
用户程序执行陷入指令,相当于把CPU的使用权主动交给了操作系统内核程序(CPU状态会从用户态切换到核心态),之后操作系统内核程序再对系统调用请求做出相应的处理。处理完成后,操作系统内核程序又会把CPU的使用权还给用户程序(即CPU状态从核心态切换到用户态)。
总结一下:
- 陷入指令是再用户态执行的,执行陷入指令之后,立即引发一个内中断,从而CPU进入核心态
- 发出系统调用请求是再用户态,而对系统调用的相应处理是再核心态下进行
- 陷入指令是唯一一个只能再用户态,而不可再核心态执行的指令