在计算机中,陷阱
也称为异常
或故障
,通常是一种由异常条件(如断点、零除、无效内存访问)引起的同步中断。陷阱通常会导致切换到内核模式
,操作系统将执行一些操作,然后再返回到初始进程。通常来讲,陷阱
是专门指用于启动到监视器程序或调试器的上下文切换的中断。
一般性解读
陷阱
是一种软件中断,由代码调用(如应用程序),调用操作系统提供的接口(提供操作硬件的指令,通常是同步的)。中断由事件调用(很多时候是硬件,比如接收数据的网卡或CPU定时器)引起,顾名思义中断操作系统正常的控制流,因为CPU必须切换到驱动程序来处理事件。
陷阱的实际作用
在计算机中,存在两种状态:用户态和内核态。
内核态
操作系统运行时处于内核态中,也可以理解为操作系统就是内核,其对计算机的所有硬件有着安全访问的权限,可以使机器运行任何指令。
用户态
计算机的应用程序,运行时处于用户态,应用程序不具备直接操作硬件的权限。
那么,我们可能会想,当我执行一个播放音乐的软件时,点击播放时,计算机开始播放音乐,这不就是对硬件中的声卡进行操作的吗?
我们的疑问其实就是陷阱
的作用,陷阱
可以使应用程序由用户态
陷入内核态
,把控制转交给操作系统,使得应用程序可以调用内核函数和使用硬件,从而间接的获得操作系统操作硬件的权限。
如我们播放音乐时,通过调用内核(操作系统)提供的接口,来告诉操作系统我们要播放音频了,那么操作系统就知道它接下来该怎么做了,最终我们的音乐按照我们的操作顺利的播放了。