📜  CPU调度中到达时间和突发时间的区别(1)

📅  最后修改于: 2023-12-03 15:30:06.840000             🧑  作者: Mango

CPU调度中到达时间和突发时间的区别

在CPU调度中,到达时间(arrival time)和突发时间(burst time)是非常重要的概念。虽然它们都是用来描述进程的属性,但它们所处的角色和作用是不同的。

到达时间

到达时间是指进程到达系统的时间点,也就是进程开始在系统中进行相应的操作(如:CPU运算、I/O操作、等待等)的时间。到达时间不仅仅是指计算机真正开始执行该进程的时间,还包括操作系统等固定的开销。到达时间影响的是进程的调度,因为正在执行的进程不会立刻放弃 CPU,必须等待当前进程到达时间之前到达的进程执行完毕后才会进行调度。

突发时间

突发时间指的是进程执行某个操作(如:CPU 运算、I/O 操作)需要的时间。在操作系统中,CPU 突发时间是当前进程运行 CPU 操作所需的最短时间量。突发时间影响的是进程的执行时间,因为它决定了系统所需多久才能完成当前进程的操作。也就是说,CPU 突发时间是处理器执行指令所需的工作时间。

到达时间和突发时间的关系

到达时间和突发时间之间不存在直接关系,它们是两个独立的概念。到达时间影响的是进程的调度,突发时间影响的是进程的执行时间。在进程调度算法中,不同算法对到达时间和突发时间的处理也略有不同。

先进先出算法(FCFS)

先进先出算法是按照到达时间的先后顺序,将进程加入到队列中,队头的进程先被调度执行。对于一个已加入队列的进程,FCFS调度算法考虑的是该进程的突发时间,而不会在意其它进程的到达时间。

短作业优先算法(SJF)

短作业优先算法认为处理时间短的进程应该先得到处理。对于一个已到达的进程,SJF调度算法会考虑其突发时间大小,以决定其优先级。在 SJF 的调度过程中,到达时间并不会对进程排序产生影响。

时间片轮转算法(RR)

时间片轮转算法每个进程被给予一个时间片(如:50ms),在此时间片内未完成的进程会被添加到队列的队尾。在轮到下一个进程时,就会重新分配一个时间片进行执行,这样循环进行直到该进程完成或超时。这种算法会先考虑到达时间,并按照时间顺序将进程放入就绪队列中。然而,时间片轮转算法并不是一个依据突发时间进行调度的算法。

以上三种常见的调度算法中,到达时间和突发时间在算法中所占的比重是不同的,因此开发者需要选择适合自己应用的调度算法,并对其进行适当地调试。