操作系统-陷阱

维基百科

在计算机中,陷阱也称为异常故障,通常是一种由异常条件(如断点、零除、无效内存访问)引起的同步中断。陷阱通常会导致切换到内核模式,操作系统将执行一些操作,然后再返回到初始进程。通常来讲,陷阱是专门指用于启动到监视器程序或调试器的上下文切换的中断。

一般性解读

陷阱 是一种软件中断,由代码调用(如应用程序),调用操作系统提供的接口(提供操作硬件的指令,通常是同步的)。中断由事件调用(很多时候是硬件,比如接收数据的网卡或CPU定时器)引起,顾名思义中断操作系统正常的控制流,因为CPU必须切换到驱动程序来处理事件。

陷阱的实际作用

在计算机中,存在两种状态:用户态和内核态。

  • 内核态

    操作系统运行时处于内核态中,也可以理解为操作系统就是内核,其对计算机的所有硬件有着安全访问的权限,可以使机器运行任何指令。

  • 用户态

    计算机的应用程序,运行时处于用户态,应用程序不具备直接操作硬件的权限。

那么,我们可能会想,当我执行一个播放音乐的软件时,点击播放时,计算机开始播放音乐,这不就是对硬件中的声卡进行操作的吗?

我们的疑问其实就是陷阱的作用,陷阱 可以使应用程序由用户态陷入内核态,把控制转交给操作系统,使得应用程序可以调用内核函数和使用硬件,从而间接的获得操作系统操作硬件的权限。

如我们播放音乐时,通过调用内核(操作系统)提供的接口,来告诉操作系统我们要播放音频了,那么操作系统就知道它接下来该怎么做了,最终我们的音乐按照我们的操作顺利的播放了。