进程调度算法
前言
进程调度算法,就是为进程分配cpu资源的资源分配算法。
一、先到先服务调度:
First Come,First Served(FCFS)
定义:先请求CPU的进程首先分配到CPU。FCFS策略可以通过FIFO队列轻松实现。
缺点:其他所有进程会等待一个大进程释放CPU
非抢占式:一旦CPU分配给了一个进程,该进程就会使用CPU知道释放CPU为止。
二、最短作业优先调度:
Short Job First (SJF)
定义:调度取决于进程的下次CPU执行长度,选择更短的作业优先执行。可以证明最短作业优先调度是最优的。
缺点:SJF算法也可能导致饥饿:长作业无限等待CPU
抢占/非抢占
三、优先级调度:
priority scheduling
定义:每个进程都有一个优先级与其关联,具有最高优先级的进程先分配CPU,具有相同优先级的进程按FCFS调度。
(SJF调度可以看做是以作业长度的大小为优先级的优先级调度)
抢占?:优先级调度可以是抢占的或者非抢占的。
问题:低优先级的进程可能会无限等待CPU,称之为无穷阻塞或饥饿。解决的办法是老化:逐渐增加等待很长时间的进程的优先级。
四、轮转调度:
Round Robin (RR算法)
定义:轮