zoukankan      html  css  js  c++  java
  • 调度算法(笔记)

    自己的小小笔记总结

    调度算法:根据系统的分配策略所规定的资源分配算法

    ①为什么会有调度算法?调度算法有什么用?根据不同的系统和系统目标,采用不同的调度算法,能更加高效地提高效率。

    ②有哪些调度算法?

    1.先来先服务调度算法(FCFS)

    2.短作业(进程)优先调度算法(SJF)

    3.高优先权调度算法(FPF)

    4.基于时间片的轮转调度算法(RR)

    1.先来先服务调度算法(最简单的调度算法)

    原理:

    可用于作业调度和进程调度。谁先来就先给谁服务

    作业调度时:从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为他们分配资源,创建进程,然后放入就绪队列。

    进程调度时:从就绪队列中选择一个最先进入该队列的进程,为它分配处理机。

    优点:利于长作业,CPU繁忙型进程

    缺点:不利于短作业,I/O繁忙型进程

    2.短作业(进程)优先调度算法

    原理

    对短作业或短进程优先调度(偏心短作业/短进程)

    作业调度时:从后备作业队列中选择一个或多个估计运行时间最短的作业,将它们调入内存,为他们分配资源,创建进程,然后放入就绪队列。

    进程调度时:从就绪队列中选择一个估计运行时间最短的进程,为它分配处理机。

    优点:利于短作业(进程)

    缺点:不利于长作业,没考虑作业的紧迫程度,实际应用中该算法不一定能真正做到短作业优先调度。

    3.高优先权调度算法(FPF)

    原理:

    对短作业或短进程优先调度(偏心短作业/短进程)

    作业调度时:从后备作业队列中选择若干个优先权最高的作业,将它们调入内存,为他们分配资源,创建进程,然后放入就绪队列。

    进程调度时:从就绪队列中选择一个优先权最高的进程,为它分配处理机。

    算法分类

    非抢占式优先权算法(要从一而终运行下去,除非自身放弃处理机)

    抢占式优先权算法(处理机可以被抢)

    优先权分类:

    静态优先权:在创建进程时确定,在整个运行期间保持不变。

                           那怎么确定这个静态优先权呢?

           有三依据: ①进程类型。系统进程的优先权比一般用户进程的要高

                                              ②进程对资源的需求。

                                              ③用户要求

    动态优先权:在创建进程时确定,但可以在运行期间改变

    优点:利于短作业(进程)

    缺点:不利于长作业,没考虑作业的紧迫程度,实际应用中该算法不一定能真正做到短作业优先调度。

    高响应比优先调度算法

    这里要记住的是一个公式:

           优先权(响应比)=(等待时间+要求服务时间)/要求服务时间

    优点:照顾短作业,考虑作业的先后到达次序,兼顾长作业

    缺点:增加系统开销(因为每次调度都要进行响应比计算)

    4.基于时间片的轮转调度算法

    (1)时间片轮转法

    原理:在每次调度,把CPU分配给队首进程(按先来先服务排序的队列),让其执行一个时间片。当时间片用完,该进程会被停止,然后把它送到就绪队列的末尾,再把处理机分配给新的队首进程。

    (2)多级反馈队列调度算法

    原理:

    (1)设置多个就绪队列,为各个队列依次递减赋予不同优先权,且第一队列优先权最高, 最后队列优先权最低。优先权越高,时间片越小。(在每个队列中都遵循FCFS)

    (2)当一个新进程进入内存时,首先把它放进第一队列末尾,按FCFS原则静静地等待。轮到自己上场的时候,如果在规定的时间片里没有完成自己的任务,就会被安置到第二队列的末尾,同样,如果还没完成,就会到第三队列末尾,这样依次被安排下去。。。

    (3)只有当第一队列空闲时,调度程序才会找第二队列的进程去运行。同理,只有当第1~(i-1)队列空闲时,才会调度第i队列的进程。

    优点:拥有较好的性能,能满足终端型作业用户,短批处理作业用户,长批处理作业用户的需要。

    调度算法中涉及的计算:

         等待时间=开始服务时间-到达时间

         优先权(响应比)=(等待时间+要求服务时间)/要求服务时间

  • 相关阅读:
    使用ToolRunner运行Hadoop程序基本原理分析 分类: A1_HADOOP 2014-08-22 11:03 3462人阅读 评论(1) 收藏
    Hadoop入门经典:WordCount 分类: A1_HADOOP 2014-08-20 14:43 2514人阅读 评论(0) 收藏
    Hadoop配置文件 分类: A1_HADOOP 2014-08-19 12:48 1157人阅读 评论(1) 收藏
    【Nutch2.2.1基础教程之3】Nutch2.2.1配置文件 分类: H3_NUTCH 2014-08-18 16:33 1376人阅读 评论(0) 收藏
    8大排序算法图文讲解 分类: B10_计算机基础 2014-08-18 15:36 243人阅读 评论(0) 收藏
    Hadoop基本原理之一:MapReduce 分类: A1_HADOOP 2014-08-17 19:26 1113人阅读 评论(0) 收藏
    Hadoop1.2.1伪分布模式安装指南 分类: A1_HADOOP 2014-08-17 10:52 1346人阅读 评论(0) 收藏
    【Nutch2.2.1基础教程之6】Nutch2.2.1抓取流程 分类: H3_NUTCH 2014-08-15 21:39 2530人阅读 评论(1) 收藏
    【Nutch2.2.1基础教程之1】nutch相关异常 分类: H3_NUTCH 2014-08-08 21:46 1549人阅读 评论(2) 收藏
    javascript的全局变量 分类: C1_HTML/JS/JQUERY 2014-08-07 11:03 562人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/bxtfdxg/p/12694791.html
Copyright © 2011-2022 走看看