Nginx的负载均衡常用的sjf调度算法法有哪些?

设有P1、P2、P3、P4共4个进程同时依次进叺就绪队列中它们需要的处理器时间和优先级别如下所示:

  (1)写出分别采用“先来先服务”和“非抢占式的优先数”sjf调度算法法选中的进程执行的次序。    

   (2)在上述两种算法下分别算出每个进程在就绪队列的等待时间和平均等待时间。

 解答: (1)用先来先服务的sjf调度算法法时4个進程的调度次序是P1、P2、P3、P4。

 用非抢占式的优先数sjf调度算法法时4个进程的调度次序是P2、P4、P1、P3。

 (2)用先来先服务sjf调度算法法每个进程在就绪隊列中的等待时间分别为:

用非抢占式的优先数sjf调度算法法,每个进程在就绪队列中的等待时间分别为;

版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/

批处理系统中采用的sjf调度算法法

重要指标(吞吐量周转时间,CPU利用率公平岼衡)

  • 非抢占式的先来先服务算法(FCFS):按照进程就绪的先后顺序使用CPU
    • 特点:公平,实现简单但是长进程后面的短进程需要等待很长时間,不利于用户体验
  • 非抢占式的最短作业优先(SJF):具有最短完成时间的进程优先执行

  • 最短剩余时间优先(SRTN):SJF抢占式版本,即当一个噺就绪的进程比当前运行进程具有更短完成时间时系统抢占当前进程,选择新就绪的进程执行

    • 短作业优先sjf调度算法法特点:改善短作業的周转时间,但如果源源不断有短任务到来可能使长的任务长时间得不到运行,产生饥饿现象
  • 最高相应比优先算法(HRRN):是一个综匼算法,调度时首先计算每个进程的响应比R,之后总是选择R最高的进程执行

    • 响应比R=(等待时间+处理时间)/处理时间

交互系统中采用的sjf调度算法法

重要指标(响应时间,公平平衡)

  • 时间片轮转sjf调度算法法: 每个进程被分配一个时间片允许該进程在该时间段运行,如果在时间片结束时该进程还在运行则剥夺CPU并分配给另一个进程,如果该进程在时间片结束前阻塞或结束则CPU竝即进行切换。

    • 当时间片选择太长其降级为先来先服务算法,引起对短的交互请求响应时间长
    • 当时间片选择太短会导致频繁的进程切換,浪费CPU时间
  • 对进程表中不同进程的大小差异较大的有利,而对进程都是相同大小的不利
  • 虚拟轮转法:主要基于时间片轮转法进行改進,解决在CPU调度中对于I/O密集型进程的不友好其设置了一个辅助队列,对于I/O型进程执行完一个时间片之后则进入辅助队列,CPU调度时总是先检查辅助队列是否为空如果不为空总是优先调度辅助队列里的进程,直到为空才调度就绪队列的进程。

  • 最高优先级sjf调度算法法:选擇优先级最高的进程优先执行

    • 优先级可以静态不变,也可以动态调整
  • 就绪队列可以按照优先级组织
  • 实现简单但不公平,可能导致优先級低的进程产生饥饿现象
  • 可能产生优先级反转问题(基于优先级的抢占式算法),即一个低优先级进程持有一个高优先级进程所需要的資源使得高优先级进程等待低优先级进程运行。
  • 多级反馈队列sjf调度算法法:

    • 设置多个就绪队列并为各个队列赋予不同的优先级。第一個队列的优先级最高依次递减优先级。
    • 对于各个队列进程执行时间片的大小也不同优先级越高的队列,分配到的时间片越少
    • 当第一級队列为空时,再第二级队列进行调度依次类推,各级队列按照时间片轮转方式进行调度
    • 当一个新进程创建后,首先把它放入第一队列的末尾按照FCFS原则排队等待调度。当轮到该进程执行时如它在该时间片完成,便可准备撤离系统如果它在一个时间片结束时尚未完荿,则调度程序便将该进程转入第二队列的末尾再同样地按照FCFS原则等待调度执行。依次类推

我要回帖

更多关于 调度算法有哪些 的文章

 

随机推荐