CN104375883B - 一种cfs调度器 - Google Patents

一种cfs调度器 Download PDF

Info

Publication number
CN104375883B
CN104375883B CN201410721645.4A CN201410721645A CN104375883B CN 104375883 B CN104375883 B CN 104375883B CN 201410721645 A CN201410721645 A CN 201410721645A CN 104375883 B CN104375883 B CN 104375883B
Authority
CN
China
Prior art keywords
module
time
virtual
weight
scheduler
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410721645.4A
Other languages
English (en)
Other versions
CN104375883A (zh
Inventor
武毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201410721645.4A priority Critical patent/CN104375883B/zh
Publication of CN104375883A publication Critical patent/CN104375883A/zh
Application granted granted Critical
Publication of CN104375883B publication Critical patent/CN104375883B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明提供一种CFS调度器,属于linux内核进程调度算法设计领域,本发明包括:权重转化模块(1)、时间片分配模块(2)、虚拟时间模块(3)、红黑树维护模块(4)、选择进程模块(5)这五个模块;当进行IO操作时,在每一次操作结束时调用IO专用调度函数;调用IO调度函数时,修改此进程的虚拟运行时间;当第一次调用此函数时将虚拟运行时间设为初始状态,再调用主调度器;当下两次调用时,正常调用主调度器;并来回切换;通过主调度器选择下一个运行的程序。可以有效地提高CFS算法对IO进程分配的CPU时间,从而提高IO速度。

Description

一种CFS调度器
技术领域
本发明涉及linux内核进程调度算法设计领域,具体涉及一种CFS调度器。
背景技术
CFS进程调度算法是在linux2.6.23后出现的产物,它的出现完全替代了之前的O(n)和O(1)调度算法;在之前的调度算法中,无论怎么优化,始终有些低优先级的进程得不到CPU的调度。而在这种情况下CFS以完全公平的调度策略则应运而生。
CFS算法是当前linux系统中使用最多的一种进程调度算法,由于其思路简单,容易实现,又切实地解决了进程饥饿的问题,所以有效地取带了O(1)和O(n)调度算法。但是看似完美的算法也有其不足之处,虽然完美地解决了进程等待的问题,却又引进了一些新问题。如高速存储应用就是其中之一,当进程对磁盘进行大量写操作时,会因为其主动放弃CPU而长时间得不到响应。由于其对所有进程都公平对待,所以在IO进程放弃CPU后,此算法会很快地将CPU时间分配给其他进程。
此优化算法即是针对IO进程长时间得不到CPU响应而设计的,对于由IO进程造成的进程调度做优化处理,使IO进程可以获得更多的CPU时间,从而加快磁盘的写操作。
发明内容
本发明的设计是基于CFS算法的改进设计的,目的在于提高IO进程占用的CPU时间,在磁盘IO不是瓶颈的情况下加快磁盘的写入速度。
相对于传统的CFS算法,对由IO进程而造成的进程调度进行优化。
一种CFS调度器,包括:权重转化模块(1)、时间片分配模块(2)、虚拟时间模块(3)、红黑树维护模块(4)、选择进程模块(5)这五个模块;
权重转化模块(1)是对系统中运行的各个进程的优先级进行相应的权重转化,使得不同优先级对应不同的权重,并以该权重进行下面的一系列的操作;
时间片分配模块(2)按照上述(1)模块中所得出的权重对系统中运行的各个进程分配相应的时间片,使各进程在理想状态下运行此时间片的长度;
虚拟时间模块(3)a、维护一个系统的虚拟时间,此虚拟时间与系统中所有进程的权重总和成反比,即总权重越大则系统虚拟时间前进的步伐越慢,反之则越快;b、各进程各自维护自己的一个虚拟时间,此虚拟时间与相应的进程权重成反比;
红黑树维护模块(4)按照上述(3)模块中所得出的虚拟时间,构造红黑树数据结构,虚拟时间最小的排在红黑树的最左边;
选择进程模块(5)时钟周期来到时,调用主调度器,主调度器再调用进程选择函数,从上述(4)模块中生成的红黑树里选择最左边的那个进程作为下一个时间片的运行进程。
通过优化由IO进程引起的系统调度函数,人为地减小其运行的虚拟时间,使IO进程可以得到更多的CPU运行时间。
技术步骤:
a、当进行IO操作时,在每一次操作结束时调用IO专用调度函数;
b、调用IO调度函数时,修改此进程的虚拟运行时间;当第一次调用此函数时将虚拟运行时间设为初始状态,再调用主调度器;当下两次调用时,正常调用主调度器;并来回切换;
c、通过主调度器选择下一个运行的程序。
本发明的益处:通过对CFS算法的优化,可以使CPU更加优待IO进程,使IO进程可以获得更多的CPU时间,从而处理更多的数据流量,有效地提高磁盘IO的速度。
通过优化由IO进程引起的系统调度函数,人为地减小其运行的虚拟时间,使IO进程可以得到更多的CPU运行时间。其中的优势在于:对于对存储要求较高的应用来说,可以快速的把数据写进磁盘。
附图说明
附图1 CFS维护进程队列的红黑树结构(按虚拟时间排序)。
附图2 改进CFS算法流程图。
具体实施方式
下面参照附图,对本算法设计的内容进行详细介绍,以及本算法的实现方法和过程。
正如发明内容中所描述的一样,本算法设计包括:权重转化模块(1)、时间片分配模块(2)、虚拟时间模块(3)、红黑树维护模块(4)、选择进程模块(5)这五个模块。
权重转化模块(1)是对系统中运行的各个进程的优先级进行相应的权重转化,使得不同优先级对应不同的权重,并以该权重进行下面的一系列的操作;
时间片分配模块(2)按照上述(1)模块中所得出的权重对系统中运行的各个进程分配相应的时间片,使各进程在理想状态下运行此时间片的长度;
虚拟时间模块(3)a、维护一个系统的虚拟时间,此虚拟时间与系统中所有进程的权重总和成反比,即总权重越大则系统虚拟时间前进的步伐越慢,反之则越快;b、各进程各自维护自己的一个虚拟时间,此虚拟时间与相应的进程权重成反比。
红黑树维护模块(4)按照上述(3)模块中所得出的虚拟时间,构造红黑树数据结构,虚拟时间最小的排在红黑树的最左边。
选择进程模块(5)时钟周期来到时,调用主调度器,主调度器再调用进程选择函数,从上述(4)模块中生成的红黑树里选择最左边的那个进程作为下一个时间片的运行进程。
方法实现过程:
a、当进行IO操作时,在每一次操作结束时调用IO专用调度函数;
b、调用IO调度函数时,修改此进程的虚拟运行时间;当第一次调用此函数时将虚拟运行时间设为初始状态,再调用主调度器;当下两次调用时,正常调用主调度器;并来回切换;
c、通过主调度器选择下一个运行的程序。

Claims (1)

1.一种CFS调度器,其特征在于,包括:权重转化模块(1)、时间片分配模块(2)、虚拟时间模块(3)、红黑树维护模块(4)、选择进程模块(5)这五个模块;
权重转化模块(1)是对系统中运行的各个进程的优先级进行相应的权重转化,使得不同优先级对应不同的权重,并以该权重进行下面的一系列的操作;
时间片分配模块(2)按照上述(1)模块中所得出的权重对系统中运行的各个进程分配相应的时间片,使各进程在理想状态下运行此时间片的长度;
虚拟时间模块(3)a、维护一个系统的虚拟时间,此虚拟时间与系统中所有进程的权重总和成反比,即总权重越大则系统虚拟时间前进的步伐越慢,反之则越快;b、各进程各自维护自己的一个虚拟时间,此虚拟时间与相应的进程权重成反比;
红黑树维护模块(4)按照上述(3)模块中所得出的虚拟时间,构造红黑树数据结构,虚拟时间最小的排在红黑树的最左边;
选择进程模块(5)时钟周期来到时,调用主调度器,主调度器再调用进程选择函数,从上述(4)模块中生成的红黑树里选择最左边的那个进程作为下一个时间片的运行进程;
通过优化由IO进程引起的系统调度函数,人为地减小其运行的虚拟时间,使IO进程可以得到更多的CPU运行时间;
其实现步骤为:
a、当进行IO操作时,在每一次操作结束时调用IO专用调度函数;
b、调用IO调度函数时,修改此进程的虚拟运行时间;当第一次调用此函数时将虚拟运行时间设为初始状态,再调用主调度器;当下两次调用时,正常调用主调度器;并来回切换;
c、通过主调度器选择下一个运行的程序。
CN201410721645.4A 2014-12-03 2014-12-03 一种cfs调度器 Active CN104375883B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410721645.4A CN104375883B (zh) 2014-12-03 2014-12-03 一种cfs调度器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410721645.4A CN104375883B (zh) 2014-12-03 2014-12-03 一种cfs调度器

Publications (2)

Publication Number Publication Date
CN104375883A CN104375883A (zh) 2015-02-25
CN104375883B true CN104375883B (zh) 2018-01-02

Family

ID=52554822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410721645.4A Active CN104375883B (zh) 2014-12-03 2014-12-03 一种cfs调度器

Country Status (1)

Country Link
CN (1) CN104375883B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106527959B (zh) * 2015-09-10 2019-07-26 阿里巴巴集团控股有限公司 刷新磁盘输入输出请求的处理方法及设备
CN107247627A (zh) * 2017-06-22 2017-10-13 上海优刻得信息科技有限公司 存储设备io分配方法、存储设备io分配装置及服务器系统
CN110990142A (zh) * 2019-12-13 2020-04-10 上海智臻智能网络科技股份有限公司 并发任务处理方法、装置、计算机设备和存储介质
CN113268342A (zh) * 2021-05-08 2021-08-17 杭州电子科技大学 一种面向边缘i/o密集型应用的混合cpu调度方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262557B (zh) * 2010-05-25 2015-01-21 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
linux内核调度器分析及模拟;高博;《中国优秀硕士学位论文全文数据库》;20080815;16-20 *

Also Published As

Publication number Publication date
CN104375883A (zh) 2015-02-25

Similar Documents

Publication Publication Date Title
CN111149090B (zh) 多线程脉动阵列
CN104375883B (zh) 一种cfs调度器
EP2701074B1 (en) Method, device, and system for performing scheduling in multi-processor core system
CN102253857B (zh) 一种多核环境下的Xen虚拟机调度控制方法
CN101894047B (zh) 一种基于内核虚拟机调度策略的实现方法
CN103124957B (zh) 用于处理单元的动态资源分配的方法和设备
CN103389913B (zh) 一种用于Linux系统的实时中断处理方法
CN104679593B (zh) 一种基于smp系统的任务调度优化方法
CN104268018B (zh) 一种Hadoop集群中的作业调度方法和作业调度器
CN104331331B (zh) 任务数目和性能感知的可重构多核处理器的资源分配方法
CN109408215A (zh) 一种计算节点的任务调度方法和装置
CN104598298A (zh) 基于虚拟机当前工作性质以及任务负载的虚拟机调度算法
CN101145112A (zh) 一种实时系统任务调度方法
CN101414271A (zh) 多核平台下基于硬件计时器与任务队列的调度方法
CN111782355A (zh) 一种基于混合负载的云计算任务调度方法及系统
Singh et al. Analysis and comparison of CPU scheduling algorithms
CN109582436A (zh) 基于容器集群平台的细粒度抢占式资源调度系统及方法
US20150334058A1 (en) Adjusting buffer size for network interface controller
Arabnejad et al. Fair resource sharing for dynamic scheduling of workflows on heterogeneous systems
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
Agullo et al. Task-based multifrontal QR solver for GPU-accelerated multicore architectures
CN106874102A (zh) 基于容器工作性质的资源调度方法和装置
Liu et al. Evaluating task scheduling in hadoop-based cloud systems
US9760969B2 (en) Graphic processing system and method thereof
CN109240815B (zh) 一种共享堆栈的多任务运行方法、装置及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant