`
longxj
  • 浏览: 101864 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

linux进程调度策略

阅读更多

每个进程运行一个quantum,这个quantum是由进程的static priority决定的,计算公式如下:
base time quantum=
(140-static priority)*20 if static priority<120
(140-static priority)*5 if static priority>=120
conventional process's static priority位于(100,139)
real-time process's static priority位于(0,100)
处于TASK_RUNNING的进程被sheduler分为两类:
当进程未运行完quantum,则属于active process,否则属于expired process;
一般地说只有当active process都运行完后,才会调度expired process,但事实上没这么简单:
However, the general schema is slightly more complicated than this, because the scheduler tries to boost the performance of interactive processes. An
active batch process that finishes its time quantum always becomes expired. An active interactive process that finishes its time quantum usually remains
active: the scheduler refills its time quantum and leaves it in the set of active processes. However, the scheduler moves an interactive process that
finished its time quantum into the set of expired processes if the eldest expired process has already waited for a long time, or if an expired process
has higher static priority (lower value) than the interactive process. As a consequence, the set of active processes will eventually become empty and the
expired processes will have a chance to run.
scheduler在判断进程的优先级时,是看dynamic priority而不是static priority,process's dynamic priority由下面的公式进行计算:
dynamic priority=max(100,min(static priority-bonus)+5,139)
其中的bonus是跟进程的执行历史有关的,准确地说是跟进程的average sleep time有关,average sleep time越长,bonus就越大;btw,average sleep time还是linux判断一个进程是
interactive,还是batch。real-time process需要显示进行说明,其它进程则由下面的公式来进行分类:
dynamic priority<=3*static priority/4+28
或者
bonus-5>=static priority/4-28
其中static priority/4-28被称为interactive delta
scheduler选中哪个进程来运行是由进程的dynamic priority来决定的
补充:
nice() and setpriority()不会修改实时进程的优先级,但是会改变进程的base quantum time。
2009/02/01 日

分享到:
评论

相关推荐

    Linux进程调度策略分析

    ### Linux进程调度策略分析 #### 1. 前言 Linux系统因其开源特性与卓越性能,在服务器领域占据主导地位。作为多任务操作系统的核心组成部分,进程调度机制对于系统的整体性能和响应时间至关重要。本文旨在深入探讨...

    Linux进程调度策略的研究.pdf

    《Linux进程调度策略的研究》这篇文章深入探讨了Linux操作系统中的进程调度策略,这是操作系统设计的关键部分,对于提升系统性能和用户体验至关重要。文章首先介绍了操作系统中进程调度的基本概念和目标,包括提高...

    Linux进程调度程序剖析.pdf

    Linux进程调度程序剖析 Linux 进程调度程序剖析是 Linux 操作系统的核心组件之一,负责管理和调度系统中的进程。Linux 采用简单的基于优先级策略来完成对进程的调度工作。由于 Linux 采用了底半处理策略,因此进程...

    Linux进程调度策略的分析.pdf

    首先,理解Linux进程调度的时机至关重要。调度时机分为两种类型:主动调度和被动调度。主动调度发生在进程主动释放CPU,如进程终止、进入睡眠状态或在特定信号处理过程中。而被动调度则是在不显式调用schedule()函数...

    Linux的进程调度策略.pdf

    "Linux的进程调度策略" Linux 操作系统的进程调度策略是指操作系统对进程的管理和调度,以确保系统的高效运行和实时响应。 Linux 的进程调度策略主要包括进程调度的原理、依据和调度算法三个方面。 进程调度的原理...

    Linux进程调度算法分析

    Linux 进程调度算法分析 基于 X86 平台 Linux2.6.26 内核进程调度部分代码,刨析 Linux 进程调度算法,对算法的原理,实现和复杂度进行了分析并提出了算法改进措施。 Linux 进程调度概述: Linux 系统支持用户态...

    LINUX内核的进程调度策略.doc

    Linux内核的进程调度策略是操作系统的核心组成部分,它决定了如何有效地在多个进程中分配CPU资源,以确保系统的公平性和响应速度。调度策略主要包括调度时机、调度方式和调度策略,这三个方面共同构成了Linux内核中...

    Linux2.6进程调度策略分析.pdf

    Linux2.6进程调度策略分析 本文主要论述了 Linux2.6 进程调度策略问题,即系统何时进行进程切换以及选择哪一个进程进行切换。进程调度的目标是要使进程响应时间尽可能的快,后台作业吞吐量高,避免某些进程出现...

    Linux 2.6内核进程调度策略与算法分析.pdf

    "Linux 2.6内核进程调度策略与算法分析" Linux 2.6内核进程调度策略与算法分析是Linux操作系统中非常重要的一部分。Linux 2.6内核采用了新的调度器,该调度器基于O(1)算法,取消了全局同步和重算循环,每个CPU分配...

    详解Linux进程调度策略

    ### 详解Linux进程调度策略 #### 一、引言 在深入探讨Linux进程调度策略之前,我们首先简要介绍进程调度的基本概念。进程调度是指操作系统根据一定的算法选择一个处于就绪状态的进程,并将处理机分配给它,使之运行...

    Linux内核进程调度与控制的实现.pdf

    Linux 进程调度策略基于优先级的调度算法,选择最值得运行的进程。进程调度策略的目标是让进程在系统的 CPU 上运行,充分利用 CPU 的计算能力。如果进程数多于 CPU 数,其他的进程就必须等到 CPU 被释放才能运行。 ...

    LINUX2.6内核进程调度策略分析.pdf

    "LINUX2.6内核进程调度策略分析" 本文将对LINUX2.6内核进程调度策略进行分析,讨论LINUX2.6内核的进程调度策略的设计和实现细节,并与LINUX2.4内核进行比较。LINUX操作系统是一个多用户多任务操作系统,支持多...

    linux_sched.zip_Linux进程调度

    1. **Linux进程调度策略**: Linux提供了多种调度策略,如先来先服务(FCFS)、短进程优先(SPF)、时间片轮转(RR)等。在`sched.c`中,可能会包含具体的调度算法实现,如CFS(Completely Fair Scheduler,完全...

    Linux进程调度策略

    linux内核的三种主要调度策略:  1,SCHED_OTHER 分时调度策略,  2,SCHED_FIFO实时调度策略,先到先服务  3,SCHED_RR实时调度策略,时间片轮转  实时进程将得到优先调用,实时进程根据实时优先级决定调度...

    Linux进程调度器的设计--Linux进程的管理与调度(十七) - 嵌入式Linux中文站1

    本文将深入探讨Linux进程调度器的基本原理、进程分类及其对应的调度策略。 首先,进程调度器在Linux中扮演着决定哪个进程应当获得CPU执行权的角色。它需要在程序之间共享CPU时间,创造出并行执行的假象。调度策略...

    linux进程调度

    Linux进程调度是操作系统中一个至关重要的功能,它负责决定在多任务环境下哪些进程应该占用CPU的执行时间。在Linux操作系统中,进程调度可以基于不同的调度策略和优先级来配置,以确保系统的高效运行和资源的合理...

    linux-进程调度

    本文将深入探讨Linux进程调度的原理、策略以及相关概念。 首先,我们了解什么是进程。在计算机科学中,进程是程序在内存中的实例,拥有自己的独立资源,如内存空间、文件描述符等。每个进程都有一个唯一的进程ID...

Global site tag (gtag.js) - Google Analytics