当前位置:文档之家› linux及windows中的调度算法

linux及windows中的调度算法


动态优先级调度算法 这种调度算法根据任务的资源需求来动态地分配 任务的优先级,其目的就是在资源分配和调度时 有更大的灵活性。非实时系统中就有很多这种调 度算法,比如短作业优先的调度算法。在实时调 度算法中, EDF算法是使用最多的一种动态优先 级调度算法,该算法给就绪队列中的各个任务根 据它们的截止期限(Deadline)来分配优先级, 具有最近的截止期限的任务具有最高的优先级。
谢谢观赏
WPS ice
Make Presentation much more fun
@WPS官方微博 @kingsoftwps
分析比较普通调度和实时调度 一个实时系统是指计算的正确性不仅取决于程序 的逻辑正确性,也取决于结果产生的时间,如果 系统的时间约束条件得不到满足,将会发生系统 出错。
实时调度与非实时调度的主要区别是: (1)实时调度所调度的任务有完成时限,而非实时调度没有。 从而,实时调度算法的正确与否不仅与算法的逻辑有关, 也与调度算法调度的时限有关。 (2)实时调度要求较快的进程或线程切换时间,而非实时调度 的进程或线程的切换时间较长。 (3)非实时调度强调资源利用率(批处理系统)或用户共享处理 机(分时系统),实时调度则主要强调在规定时限范围内完 成对相应设备的控制。 (4)实时调度为抢先式调度,而非实时调度则很少采用抢先式 调度
平均周转时间和最大等待时间:通过最先执行最 短任务可以使平均周转时间最短。然而,这种调 度策略可能会使长时间运行的任务永远得不到调 度且会增加他们的等待时间。
I/O设备利用率和CPU利用率:CPU利用率的最大 化可以通过长时间运行CPU限制的任务和同时不 实行上下文切换。I/O设备利用率的最大化可以通 过尽可能调度已经准备好的I/O限制的任务。
基于比例共享调度算法 虽然基于优先级的调度算法简单而有效,但这种 调度算法提供的是一种硬实时的调度,在很多情 况下并不适合使用这种调度算法:比如象实时多 媒体会议系统这样的软实时应用。对于这种软实 时应用,使用一种比例共享式的资源调度算法( SD算法)更为适合。 比例共享调度算法指基于CPU使用比例的共享式 的调度算法,其基本思想就是按照一定的权重( 比例)对一组需要调度的任务进行调度,让它们 的执行时间与它们的权重完全成正比。
对于CPU利用率和响应时间的关系,需要根据具体应用进 行分析。 对于某一项任务,响应时间可能取决与几个因素, CPU计算时间,磁盘I/O等待,通讯带宽等。 如果是多路CPU的话,有时为了减小CPU计算时间, 可以考虑将一项任务拆成可以并发的任务,提交后台,提 高CPU的利用率。 或是对应用进行修改,减小不必要的读操作,或在应 用中尽量采用顺序读取。注意看一下QPFRADJ 的值,是 否和应用匹配。 如果是客户端提交的请求造成CPU占用超过99%,那 么CPU处理时间肯定是响应的瓶颈。需要优化应用。
单处理器实时调度 RMS(Rate-Monotonic Scheduling)调度算法 RMS算法 具有资源同步约束的RMS调度 基于RMS 的非周期任务的调度 EDF LLF
多处理器实时调度 静态调度 动态调度
各种实时操作系统的实时调度算法可以分为如下 三种类别:基于优先级的调度算法(Prioritydriven scheduling-PD)、基于CPU使用比例的 共享式的调度算法(Share-driven scheduling-SD )、以及基于时间的进程调度算法(Time-driven scheduling-TD),下面对这三种调度算法逐一进 行介绍。
基于优先级的调度算法 基于优先级的调度算法给每个进程分配一个优先 级,在每次进程调度时,调度器总是调度那个具 有最高优先级的任务来执行。根据不同的优先级 分配方法,基于优先级的调度算法可以分为如下 两种类型
静态优先级调度算法 这种调度算法给那些系统中得到运行的所有进程 都静态地分配一个优先级。静态优先级的分配可 以根据应用的属性来进行,比如任务的周期,用 户优先级,或者其它的预先确定的策略。RM( Rate-Monotonic)调度算法是一种典型的静态优 先级调度算法,它根据任务的执行周期的长短来 决定调度优先级,那些具有小的执行周期的任务 具有较高的优先级。
基于时间的进程调度算法 对于那些具有稳定、已知输入的简单系统,可以 使用时间驱动(Time-driven:TD)的调度算法, 它能够为数据处理提供很好的预测性。这种调度 算法本质上是一种设计时就确定下来的离线的静 态调度方法。在系统的设计阶段,在明确系统中 所有的处理情况下,对于各个任务的开始、切换 、以及结束时间等就事先做出明确的安排和设计 。这种调度算法适合于那些很小的嵌入式系统、 自控系统、传感器等应用环境。 这种调度算法的优点是任务的执行有很好的可预 测性,但最大的缺点是缺乏灵活性,并且会出现 有任务需要被执行而CPU却保持空闲的情况。
谈谈Linux/Windows 中使用的调度算法
如何评价调度算法的性能?谈谈下面每对指标间 的关系。 a、CPU利用率和响应时间 b、平均周转时间和最大等待时间 c、I/O设备利用率和CPU利用率
CPU使用率其实就是你运行的程序占用的CPU资 源,表示你的机器在某个时间点的运行程序的情 况。使用率越高,说明你的机器在这个时间上运 行了很多程序,反之较少。使用率的高低与你的 CPU强弱有直接关系。现代分时多任务操作系统 对 CPU 都是分时间片使用的。
哪些常用的调度算法可用于实时调度 根据建立调度表和可调度性分析是脱机还是联机 实现分为静态调度和动态调度,静态调度无论是 单处理器调度还是分布式调度,一般是以RMS算 法为基础;而动态调度则以EDF、LLF为主。 按系统分类实时调度可以分为单处理器调度,集 中式多处理器调度和分布式处理器调度。 按任务是否可抢占又能分为抢占式调度和不可抢 占式调度。
我们可以通过两种方法来实现比例共享调度算法:第一 种方法是调节各个就绪进程出现在调度队列队首的频率, 并调度队首的进程执行;第二种做法就是逐次调度就绪队 列中的各个进程投入运行,但根据分配的权重调节分配个 每个进程的运行时间片。 比例共享调度算法可以分为以下几个类别:轮转法、公平 共享、公平队列、彩票调度法(Lottery)等 比例共享调度算法的一个问题就是它没有定义任何优先 级的概念;所有的任务都根据它们申请的比例共享CPU资 源,当系统处于过载状态时,所有的任务的执行都会按比 例地变慢。所以为了保证系统中实时进程能够获得一定的 CPU处理时间,一般采用一种动态调节进程权重的方法。
相关主题