✨ 不可中断状态与僵尸进程
This commit is contained in:
parent
ab8361a155
commit
20d3582222
@ -4,6 +4,21 @@
|
|||||||
|
|
||||||
不可中断状态,表示进程正在跟硬件交互,为了保护进程数据和硬件的一致性,系统不允许其他进程或中断打断这个进程。进程长时间处于不可中断状态,通常表示系统有 I/O 性能问题。
|
不可中断状态,表示进程正在跟硬件交互,为了保护进程数据和硬件的一致性,系统不允许其他进程或中断打断这个进程。进程长时间处于不可中断状态,通常表示系统有 I/O 性能问题。
|
||||||
|
|
||||||
|
中断其实是一种异步的事件处理机制,可以提高系统的并发处理 能力。
|
||||||
|
|
||||||
|
由于中断处理程序会打断其他进程的运行,所以,为了减少对正常进程运行调度的影响,中断处理程序就需要尽可能快地运行。如果中断本身要做的事情不多,那么处理起来也不 会有太大问题;但如果中断要处理的事情很多,中断服务程序就有可能要运行很长时间。
|
||||||
|
|
||||||
|
特别是,中断处理程序在响应中断时,还会临时关闭中断。这就会导致上一次中断处理完成之前,其他中断都不能响应,也就是说中断有可能会丢失。
|
||||||
|
|
||||||
|
Linux 将中断处理过程分成了两个阶段,也就是上半部和下半部:
|
||||||
|
|
||||||
|
- 上半部直接处理硬件请求,也就是我们常说的硬中断,特点是快速执行;
|
||||||
|
|
||||||
|
- 而下半部则是由内核触发,也就是我们常说的软中断,特点是延迟执行。
|
||||||
|
|
||||||
|
Linux 中的软中断包括网络收发、定时、调度、RCU 锁等各种类型,可以通过查看 /proc/softirqs 来观察软中断的运行情况。
|
||||||
|
|
||||||
|
|
||||||
## 什么是僵死(僵尸)进程
|
## 什么是僵死(僵尸)进程
|
||||||
|
|
||||||
僵死(僵尸)进程进程:一个进程使用 fork 创建子进程,如果子进程退出,而父进程并没有调用 wait() 或 waitpid() 获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死(僵尸)。
|
僵死(僵尸)进程进程:一个进程使用 fork 创建子进程,如果子进程退出,而父进程并没有调用 wait() 或 waitpid() 获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死(僵尸)。
|
||||||
|
Loading…
x
Reference in New Issue
Block a user