不可中断状态与僵尸进程

This commit is contained in:
nick 2019-07-12 00:01:53 +08:00
parent 9904c3de77
commit bd491c629c

View File

@ -10,6 +10,9 @@
特别是,中断处理程序在响应中断时,还会临时关闭中断。这就会导致上一次中断处理完成之前,其他中断都不能响应,也就是说中断有可能会丢失。
举个最常见的网卡接收数据包的例子:网卡接收到数据包后,会通过 __硬件中断__ 的方式,通知内核有新的数据到了。这时,内核就应该调用中断处理程序来响应它。对上半部来说,既然是快速处理,其实就是要把网卡的数据读到内存中,然后更新一下硬件寄存器的状态(表示数据已经读好了),最后再发送一个 __软中断__ 信号,通知下半部做进一步的处理。而下半部被软中断信号唤醒后,需要从内存中找到网络数据,再按照网络协议栈,对数据
进行逐层解析和处理,直到把它送给应用程序。
Linux 将中断处理过程分成了两个阶段,也就是上半部和下半部:
- 上半部直接处理硬件请求,也就是我们常说的硬中断,特点是快速执行;