我在网上准备面试时看到这个问题:
给定一个非抢占式内核,哪种类型的进程在性能方面会受到更大的影响,为什么?
I\O 限制
CPU 限制
我知道:
CPU 密集型进程会获得长量子,但优先级较低,而 I/O 密集型进程会获得短量子,但优先级较高。
起初,我认为 I\O 绑定会受到更多影响,因为它必须等待从磁盘读取完成(而不仅仅是要求操作系统在准备好时唤醒它),但我认为这是错误的,因为即使在非抢占式内核进程可以自行决定完成其工作并让另一个进程继续工作。
我正在寻找详细的答案,以深入了解我在这里缺少的内容。
答案1
“CPU 密集型进程获得长量子但优先级较低,而 I/O 密集型进程获得高优先级短量子”的说法并不正确。
如果是这样的话那就太理想了——但通常情况下,每个进程都会获得几乎相同的时间片。 I/O 密集型进程会很快放弃 CPU。
安排不同的优先事项动态地否则将很难做到,并且由于内核无法抢占,因此不清楚如何实现这种优先级。