Operating system 循环调度与IO

Operating system 循环调度与IO,operating-system,round-robin,Operating System,Round Robin,我不确定循环调度如何处理I/O操作。我了解到,循环调度更喜欢CPU受限的进程,但如果进程提前完成其时间片会发生什么 假设我们忽略了调度进程本身,并且一个进程提前完成了它的时间片,那么调度程序会调度另一个进程(如果它的CPU受限),还是当前进程会启动它的IO操作,并且因为它不是CPU受限的,所以会在之后立即切换到另一个(CPU受限的)进程?如果支持CPU绑定进程,调度程序是否会调度所有CPU绑定进程,直到它们完成,然后才调度I/O进程 请帮我理解 有两个不同的调度器:CPU(进程/线程…)调度器和

我不确定循环调度如何处理I/O操作。我了解到,循环调度更喜欢CPU受限的进程,但如果进程提前完成其时间片会发生什么

假设我们忽略了调度进程本身,并且一个进程提前完成了它的时间片,那么调度程序会调度另一个进程(如果它的CPU受限),还是当前进程会启动它的IO操作,并且因为它不是CPU受限的,所以会在之后立即切换到另一个(CPU受限的)进程?如果支持CPU绑定进程,调度程序是否会调度所有CPU绑定进程,直到它们完成,然后才调度I/O进程

请帮我理解

有两个不同的调度器:CPU(进程/线程…)调度器和I/O调度器

CPU调度器通常采用一些混合算法,因为它们确实经常遇到抢占和主动放弃部分时间片的进程。他们必须在不让任何人“挨饿”的情况下,迅速为更高优先级的工作提供服务。(对当前Linux调度程序的研究是最有趣的。已经有好几次了。)

CPU调度器将进程标识为“主要是‘I/O绑定’”或“主要是‘CPU绑定’”,此时知道它们的特性可以而且确实会发生变化。如果您的进程重复使用完整的时间片,则会被视为CPU受限

I/O调度器寻求对I/O请求队列进行排序和重新排序,以获得最大效率。例如,保持物理磁盘驱动器的读/写磁头在单个方向上高效移动。(磁盘驱动器延迟的两个组成部分是“寻道时间”和“旋转延迟”,其中“寻道时间”是两个延迟中最差的。与此相反,固态驱动器具有非常不同的定时。)I/O调度器还必须了解通道(磁盘接口卡、电缆等)它们提供了对每个设备的访问:它们不能简单地观察任何一个驱动器在做什么。与CPU调度器一样,请求必须得到有效处理,但决不能“饿死”。Linux的I/O调度器也可以随时用于您的研究

“纯循环”作为一种调度规则,只是意味着所有请求都具有相同的优先级,并将按照最初提交的顺序依次提供服务。虽然它们很漂亮,但在现实生活中你很少会遇到纯正的知更鸟