wtysos11 / blogWiki

Use to store public paper and organize them.
17 stars 4 forks source link

First Come First Serve和Processor Sharing/Round Robin的区别 #155

Closed wtysos11 closed 3 years ago

wtysos11 commented 3 years ago

这两种都是Scheduling algorithm,其中Processor Sharing又名Round Robin。在看排队论的FCFS和PS两种服务模式的时候我就感觉这两个不太好区分。两者的意思在排队论与进程调度中是一样的,不过后面讨论更多的是进程调度中的概念。

对于FCFS来说,它是最简单的非抢占调度算法(scheduling algorithm)。进程根据它们的到达顺序被分配给CPU,使用队列来实现。每一次CPU空闲的时候,队列头的进程被分配给CPU,然后进程从队列中移除。当一个新进程进入就绪队列时,它被放在队列的末尾。

对于Round Robin来说,这是一个抢占式(preemptive )的调度算法。在RR/PS中,一个小的时间单位被称为time quantum或者time slice(下称时间片),这是CPU为每个job提供的资源。CPU循环(cyclic order)为每个任务分配一个时间片,一般是10~100 ms。因此就绪队列可以被看作是一个循环队列。因此对于处理时长较短的job响应速度会非常快。

说实话,我有点不太理解为什么Round Robin是抢占式的,它抢占什么了?参考文章

我的理解是,虽然每个进程都会被分到时间片,但是优先级高的进程会优先得到时间片,所以是可以有优先级的。根据维基百科的说法,抢占式是因为一旦时间配额到期,调度程序会将进程强制退出,所以是抢占式的(不是进程抢占,是操作系统抢占,我之前理解有点问题)