进程调度算法
Bamboo Lv3

先来先服务调度算法FCFS

每次从就绪队列选择最先进入队列的进程,然后一直运行,直到进程退出或被阻塞,才会继续从队列中选择第一个进程接着运行。

对短作业不利。

适用于 CPU 繁忙型作业的系统,而不适用于 I/O 繁忙型作业的系统。

最短作业优先调度算法SJF

优先选择运行时间最短的进程来运行,这有助于提高系统的吞吐量。

对长作业不利,被推迟到很后面。

高响应比优先调度算法HRRN

进程调度先运行响应比优先级最高的。
$$
优先权= \frac { 等待时间+要求服务时间 }{ 要求服务时间 }
$$
兼顾长作业和短作业。

时间片轮转调度算法RR

使用最广

image-20240828124832086

每个进程被分配一个时间段,称为时间片,即在该时间内可以为该进程运行。

  • 如果时间片用完,进程还在运行,那么将会把此进程从 CPU 释放出来,并把 CPU 分配另外一个进程;
  • 如果该进程在时间片结束前阻塞或结束,则 CPU 立即进行切换;

另外,时间片的长度就是一个很关键的点:

  • 如果时间片设得太短会导致过多的进程上下文切换,降低了 CPU 效率;
  • 如果设得太长又可能引起对短作业进程的响应时间变长。将

通常时间片设为 20ms~50ms 通常是一个比较合理的折中值。

Powered by Hexo & Theme Keep
Total words 28.5k Unique Visitor Page View