自考《操作系统概论》教材关于“进程切换”的错误

来源:百度知道 编辑:UC知道 时间:2024/06/15 04:49:10
2005年谭耀铭版的书中第31页说:

“在下列情况下均会引起进程的切换:
…………
…………
(3)一个进程从等待状态变成就绪状态。”

【疑问】这(3)怎么会引起进程的切换呢?

在第22页关于进程在执行过程中的状态不断变化的描述中就很清晰的说明啦

比如:此刻进程P1正在占用CPU运行,进程P2由于要求磁盘传输信息而处于等待状态。
当磁盘传输信息完成后,P2从等待状态变成就绪状态,而P1如果仍在占用CPU运行。
并不发生进程切换啊!
我晕!!!!!!!!!!!!!
请不要搞错啦,我这是在提出疑问啊!
不懂就问总比不懂装懂好吧?
毓莹格格同学既然你如此明白不如教教我吧,谢谢啦!
书上的东西也不一定都是对的啊
【注意】“进程切换”的定义为:一个进程让出处理器由另一个进程占用处理器的过程

书上这个地方没详细做解释
不过结合全书尤其是第102页的“5.5.3 I/O中断事件的处理”就可理解

按你举的例子,可以这么看:
进程P2等待的磁盘传输信息结束后,
通道便会产生“I/O正常结束”的中断请求CPU进行干预,
那么进程P1就要让出CPU而由中断处理进程占用CPU对中断事件进行处理,
(这时就引起了进程的切换)
处理中包括把进程P2由“等待”状态变成“就绪”状态,
处理完后中断处理进程让出CPU,由进程调度程序从就绪队列中选中一个进程占用CPU。

你想错了吧。
是已经切换完成了啊,P2从等待状态变成就绪状态,原因是这里磁盘传输完成了,使P2结束等待,切换成就绪。
而要让P2占用CUP运行,就是从就绪态切换到运行态,需要系统的某种算法从多个就绪进程中选择一个进程占用CUP,P2的优先级低于P1,当然就不能切换到运行态咯。
我的是2000年版书和你有点出入。

你说的是那节头一句话吧,为什么他多加了个引号,因为他特指就绪状态切换到运行状态。 但为什么会引起4种进程的切换呢?因为“进程切换”这个过程需要从CUP中把旧的进程拿出,把优先级高的进程放进去,从而引起那个旧的进程状态的变化,也就是那4中进程的切换。和“进程切换”是前因后果的关系。就是(1)和(4)。参考中断和进程切换控制流程图下的那一段,第二句话。“在上述会引起进程……”
看操作系统概论一定要活啊,不然会很累。建议把这门放到最后考,容易理解,不然真的很抽象,靠死记硬背很难过的。

你不懂就说人家错误,你觉得你的说法对吗?
课本里的东西都是经过论证确定的
教材里绝对不可以出现未定的东西

恩,是的