中断与系统调用了解吗?

所谓的中断就是在计算机执行程序的过程中,由于出现了某些特殊事情,使得CPU暂停对程序 的执行,转而去执行处理这一事件的程序。等这些特殊事情处理完之后再回去执行之前的程 序。中断一般分为三类:

由计算机硬件异常或故障引起的中断,称为内部异常中断;

由程序中执行了引起中断的指令而造成的中断,称为软中断(这也是和我们将要说明的系统调 用相关的中断);

由外部设备请求引起的中断,称为外部中断。简单来说,对中断的理解就是对一些特殊事情的 处理。

与中断紧密相连的一个概念就是中断处理程序了。当中断发生的时候,系统需要去对中断进行 处理,对这些中断的处理是由操作系统内核中的特定函数进行的,这些处理中断的特定的函数 就是我们所说的中断处理程序了。

另一个与中断紧密相连的概念就是中断的优先级。中断的优先级说明的是当一个中断正在被处 理的时候,处理器能接受的中断的级别。中断的优先级也表明了中断需要被处理的紧急程度。 每个中断都有一个对应的优先级,当处理器在处理某一中断的时候,只有比这个中断优先级高 的中断可以被处理器接受并且被处理。优先级比这个当前正在被处理的中断优先级要低的中断 将会被忽略。

典型的中断优先级如下所示: 机器错误 > 时钟 > 磁盘 > 网络设备 > 终端 > 软件中断

在讲系统调用之前,先说下进程的执行在系统上的两个级别:用户级和核心级,也称为用户态 和系统态(user mode and kernel mode)。 用户空间就是用户进程所在的内存区域,相对的,系统空间就是操作系统占据的内存区域。用 户进程和系统进程的所有数据都在内存中。处于用户态的程序只能访问用户空间,而处于内核 态的程序可以访问用户空间和内核空间。