对于单处理器系统,每次只允许一个进程运行,任何其他进程必须等待,直到CPU空闲能被调度为止,多道程序的目的是在任何时候都有某些进程在运行,以使CPU使用率最大化。
CPU-I/O区间周期
CPU的成功调度依赖于进程的如下属性:进程执行由CPU 执行和I/O等待周期。
进程在这两个状态之间切换,进程执行从 CPU 区间开始,在这之后是 I/O 区间,接着是另一个 CPU 区间,然后是另一个I/O区间,如此进行下去,最终,最后的CPU 区间通过系统请求终止执行。
CPU调度程序
每当CPU空闲时,操作系统就必须从就绪队列中选择一个进程来执行,进程选择由短期调度程序 或 CPU 调度程序执行,调度程序从内存中选择一个能够执行的进程,并为之分配CPU。
就绪队列不必是先进先出(FIFO)队列。正如研究各种调度算法时将看到的,就绪队列可实现为FIFO队列、优先队列、树或简单的无序链表,不过,从概念上讲,就绪队列内的所有进程都要排队以等待在CPU上运行,队列中的记录通常为进程控制块。
调度算法(重要)
CPU 调度处理是从就绪队列中选择进程并为之分配CPU的问题。
先到先服务调度(FCFS)
先到先服务(first-come, first-served(FCFS))
采用这种方案,先请求CPU的进程先分配到CPU,FCFS 策略可以用FIFO队列来实现。当一个进程进入到就绪队列,其PCB链接到队列的尾部,当CPU空闲时,