典型的调度算法

来源:互联网 发布:惠州综合网络问政平台 编辑:程序博客网 时间:2024/06/06 12:46
  1. 先来先服务调度算法(FCFS):从就绪队列中选择最先进入该队列中的的进程。属于不可剥夺算法,当长任务先到达系统,就会使得后面的许多短作业等待更长的时间。
    对长作业有利,对短作业不利(现对SJF和高响应比);有利于CPU繁忙型作业,不利于I/O繁忙型作业。

  2. 短作业优先调度算法(SJF):从就绪队列中选择一个估计运行时间最短的时间,将它们调入内存运行。直到完成或发生某事件而阻塞时,才释放处理机。
    对长作业不利(由于调度程序总是调度那些短作业,将导致长作业长期不被调度(饥饿现象)),导致SJP算法的平均等待时间,平均周转时间少。

  3. 优先级调度算法:该算法可以用作作业调度也可以用作进程调度。
    非剥夺式优先级调度算法:让处理机中的进程结束之后再分配给优先级更高的进程。
    剥夺式优先级调度算法:当一个算法在处理机运行时,若有某个更重要或紧张的进程进入就绪队列是,则立即暂停正在运行的进程,将处理机分配给更重要或更紧迫的进程。
    静态优先级:创建进程时确定,不可更改。
    动态优先级:根据情况的变动调整优先级,动态调整优先级的主要是进程占用CPU时间的长短,就绪进程等待CPU时间的长短。

  4. 高响应比优先调度算法:是FCFS调度和SJF调度的综合,考虑每个作业的等待时间和估计的运行时间。在每次进行作业调度时,先从后备作业中的每个响应比,选出相应比最高的作业投入运行。
    响应比=(等待时间+要求服务时间)/要求服务时间
    当作业的等待时间相同时,要求服务时间越短,其相应比也高,有利于短作业。
    当要求时间相同时,由等待时间决定。
    对于长作业,作业的响应比可以随等待时间的增加而提高,当等待时间足够长时,其响应比提高,避免了长作业的饥饿现象。

  5. 时间片轮转调度算法:主要用于分时系统,进程调度总是选择就绪队列中的第一个进程执行。
  6. 多级反馈队列调度算法:时间片轮转调度算法和优先级调度算法的综合。
  7. 分时系统中,相应时间跟时间片和用户数成正比。
  8. 中断向量本身是用于存放中断服务例行程序的入口地址,那么中断向量地址就应该是该入口地址的地址。
0 0