给以后会看到的人,所以我来挖个坟。
a)
首先造成就绪态的原因有:CPU不空,或 进程超时从运行态返回就绪态。假设C个进程都是就绪态,CPU就空了,怎么着也会调进程来运行,所以简单的考虑应该是最多C-B个就绪态。
运行态最多B个,这里的条件比较简单,一个处理器一个进程,最多B个。
阻塞态,造成阻塞的原因略多,关键在于阻塞态要等待事件发生,所以如果C个进程全在等待各自要等的事件,它们就可以全阻塞,因此最多C个。
就绪挂起和阻塞挂起的进程是放在内存以外的,鬼知道有多大的地方放,理论上可以无限多。
b)
这个问题超微妙,因为题目只说了内存最多C个进程,没说我一个进程都不跑可不可以。如果我完全不新建进程,系统进程也不算在里面,那就最小数目都是0。如果系统进程要计数,但系统进程又是一组,不明数目,姑且算1个,那就是就绪态最小0个,运行态最小1个(没有用户进程,也有1个系统进程在跑),阻塞态等等最小0个。
学艺不精,还望指正。
d
这就是哲学家就餐问题的副本嘛,当5个进程的时候如果都同时申请到了1台,就发生死锁了。如果是4个进程,那必然有一个能申请到2台。