Unix进程图混淆

时间:2012-04-15 00:19:54

标签: unix process

enter image description here

你能告诉我Unix流程图中两个红色箭头有什么区别吗? 为什么抢占进程直接进入用户运行而不重新安排?我不太清楚。为什么在Memery中抢占和准备运行是用虚线连接的? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

抢占的进程 已准备好在内存中运行,这就是为什么在此图中的Preempted和Ready to Run in Memory状态之间存在虚线的原因。 CPU密集型进程通常正在工作并使用CPU进行整个时间片,直到计时器滴答在硬件级别触发并导致内核抢占进程。这不会使流程更难以运行,因为在抢占流程的过程中,内核会保存上下文切换所需的所有数据结构。

但是,抢先的进程不一定准备好在用户模式中运行。相反,内核可以抢占自己,因为当网络数据包到达时,内核正在做一些工作,或者磁盘读取完成,或者计时器滴答,或者某些其他事件导致抢占。如果进程最初在用户模式下被抢占(我在第一段中描述的情况),那么只要调度程序决定它应该再次运行,它就会返回用户模式。那是最左边的红色箭头。另一方面,如果进程在内核模式下运行时被抢占,则只要调度程序决定它应该再次运行,它就会返回内核模式。那是另一个红色箭头。

答案 1 :(得分:0)

恕我直言,这个图是假的。僵尸进程应该结束,但事实并非如此。否则,僵尸程序会累积而不会。