4

在此处输入图像描述

你能告诉我 Unix 流程图中的两个红色箭头有什么区别吗?为什么抢占进程直接进入用户运行而不重新调度?我不太明白。为什么 Preempted 和 Ready to Run In Memery 用虚线连接?提前致谢。

4

2 回答 2

3

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

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

于 2012-04-15T00:30:48.967 回答
0

恕我直言,该图是伪造的。僵尸进程应该结束,但没有。否则僵尸进程会累积而他们不会。

于 2012-04-15T00:27:41.327 回答