CN109144716A - 基于机器学习的操作系统调度方法及装置、设备 - Google Patents
基于机器学习的操作系统调度方法及装置、设备 Download PDFInfo
- Publication number
- CN109144716A CN109144716A CN201710507215.6A CN201710507215A CN109144716A CN 109144716 A CN109144716 A CN 109144716A CN 201710507215 A CN201710507215 A CN 201710507215A CN 109144716 A CN109144716 A CN 109144716A
- Authority
- CN
- China
- Prior art keywords
- task
- resource
- operating system
- task groups
- resource allocation
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文公布了一种基于机器学习的操作系统调度方法及装置、设备,包括:利用无监督聚类算法基于资源需求特征将各任务分类为一个或多个任务组;利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳;利用所述训练得到的资源分配参数为所述任务组下一周期的进程调度分配资源。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种基于机器学习的操作系统调度方法及装置、设备。
背景技术
操作系统管理计算机的硬件资源,现代操作系统允许多个进程分时共享硬件资源,调度系统用来解决如何在多个进程间分配硬件资源的问题,即如何将计算机管理的有限资源在什么时候分配多少给一个进程,什么时候分配给另外一个进程,什么时候收回分配给一个进程的资源。
调度系统是现代操作系统的核心模块,面对各种复杂的应用场景,如何将有限的系统资源尽可能合理的分配给需要调度的进程,是调度系统追求的目标。
操作系统管理的硬件资源很多,比如CPU资源、内存资源等。以分配CPU资源的进程调度为例,相关技术的调度算法首先区别被调度任务的类别和优先级,对于不同类别的任务采取不同的资源分配策略,对于同一类别的任务通过优先级区别分配策略。被调度任务的类别和优先级由操作系统提供接口给用户设置。
具体以linux操作系统为例,相关技术的调度算法是将任务分为普通任务和实时任务,对不同的任务采用不同的算法,对实时任务使用先进先出(FIFO)调度算法、时间片轮转算法。对于普通任务使用完全公平调度算法。用户可以对任务设置优先级,调度时根据任务分类选择对应的调度算法,再根据用户设置的任务优先级,选择任务什么时候执行和换出。
相关技术的调度方法的一个重要问题,是:随着CPU核数的增加和CPU性能的提高,操作系统管理的任务越来越多,用户需要对所有任务选择其分类是属于实时任务还是非实时任务,并且给每个任务设置合适的优先级。但实际操作中往往由于系统的复杂性导致优先级设置不当或者任务类别设置不当,导致系统资源分配效率不高,最终造成任务被操作系统调度情况和用户需求不一致,严重情况下可能会让一些任务长期占有CPU,其他任务得不到及时执行。即使针对具体任务用户设置了比较合适的参数,但由于任务太多,参数组合是一个巨大的数目,又无法一一尝试,用户针对所有任务设置的参数组合往往也不是相对合理的,以至于无法充分发挥计算机性能。
相关技术的调度方法还存在另一个问题,是对于一些特殊的场景预先设计的调度策略和调度参数往往不能发挥较好的作用。
综上可知,相关技术的调度方法一方面需要用户对每个具体任务设置调度策略和调度参数,而在系统内任务数目较多的情况下,用户要么无法针对某个或某些具体任务设置合理的调度参数(如优先级或者任务类别)从而导致系统资源分配效率不高,要么用户针对具体任务设置了比较合理的参数但这些参数的组合又无法充分发挥计算机性能,另一方面相关技术的调度方法灵活性不够,在一些特殊场景下预设的调度策略和调度参数无法发挥作用。针对上述技术问题,目前尚未提出有效的解决方案。
发明内容
为了解决上述技术问题,本发明实施例提供了一种基于机器学习的操作系统调度方法及装置、设备,不仅实现了调度参数的自动化设置,而且能动态的自动调整调度策略来适应各种复杂场景。
本申请提供了:
一种基于机器学习的操作系统调度方法,包括:
利用无监督聚类算法基于资源需求特征将各任务分类为一个或多个任务组;
利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳;
利用所述训练得到的资源分配参数为所述任务组下一周期的进程调度分配资源。
其中,利用无监督聚类算法基于资源需求特征将各任务分类之前,还包括:收集各任务的资源使用数据,并通过各任务的资源使用数据分析得到各任务的资源需求特征;
其中,所述资源使用数据,包括如下之一或多项:
CPU空闲时间;
内存使用量;
使用磁盘的进程信息。
其中,基于资源需求特征将各任务分类为一个或多个任务组,包括:将资源需求特征相同的各任务分类为同一任务组;
其中,所述任务组包括如下之一或多项:
高CPU负载任务组;
高IO资源任务组;
高内存占用任务组;
对指定设备高频率访问的任务组。
其中,所述利用预建立的训练模型对所述任务组的资源分配参数进行调整之前,还包括:根据预先设置的各任务的期望参数,得到各任务的期望特征向量;将各任务组中任务的期望特征向量与各任务组的资源分配参数相关联,形成所述任务组的所述训练模型。
其中,所述各任务的期望参数,包括如下之一或多项:
表示是否期望任务尽快执行的参数;
表示是否期望任务尽快响应用户操作的参数;
表示期望执行时长的参数。
其中,所述利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳,包括:将硬件资源使用效率和任务满足用户期望的程度分别表达为第一数值和第二数值;在一个周期内利用预建立的训练模型对各所述任务组的资源分配参数进行调整,使得所述第一数值和第二数值最小。
其中,利用预建立的训练模型对所述任务组的资源分配参数进行调整之前,还包括:利用所述训练模型的默认值为所述任务组第一个周期的进程调度分配资源。
一种基于机器学习的操作系统调度装置,包括:
分类单元,用于利用无监督聚类算法基于资源需求特征将各任务分类为一个或多个任务组;
训练单元,用于利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳;
分配单元,用于利用所述训练得到的资源分配参数为所述任务组下一周期的进程调度分配资源。
其中,所述训练单元,还用于:根据预先设置的各任务的期望参数,得到各任务的期望特征向量;将各任务组中任务的期望特征向量与各任务组的资源分配参数相关联,形成所述任务组的所述训练模型。
其中,所述训练单元,具体用于将硬件资源使用效率和任务满足用户期望的程度分别表达为第一数值和第二数值;在一个周期内利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得所述第一数值和第二数值最小。
一种计算设备,包括:
存储有基于机器学习的操作系统调度程序的存储器;
处理器,配置为执行所述基于机器学习的操作系统调度程序以执行下述操作:利用无监督聚类算法基于资源需求特征将各任务分类为一个或多个任务组;利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳;利用所述训练得到的资源分配参数为所述任务组下一周期的进程调度分配资源。
一种计算机可读存储介质,所述计算机可读存储介质上存储有基于机器学习的操作系统调度程序,所述基于机器学习的操作系统调度程序被处理器执行时实现上述基于机器学习的操作系统调度方法的步骤。
本发明实施例中,利用机器学习的方法对操作系统中的任务进行分类,并利用预建立的训练模型对资源分配参数进行调整,最终使用训练得到的资源分配参数进行资源分配,解决了相关技术中需要用户对每个具体任务设置调度策略和调度参数的技术问题,实现了调度参数的自动化配置,并且能够动态的自动调整调度策略来适应各种复杂场景,克服了相关技术中调度方法灵活性不够的缺陷。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本申请中计算设备的示例性结构示意图;
图2为本发明实施例基于机器学习的操作系统调度方法流程示意图;
图3为本发明实施例基于机器学习的操作系统调度装置结构示意图;
图4为本发明实施例基于机器学习的操作系统调度方法示例性流程的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本文中,计算设备100可以为用于执行本文所述功能的任何类型的设备。例如,计算设备100可以被体现为(但不限于)服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、手持装置、消息收发设备、可佩戴计算设备、车辆远程信息处理设备、分布式计算系统、多处理器系统、消费电子设备、嵌入式控制器和/或被配置为执行本文所述功能的任何其他计算设备。
如图1所示,为计算设备100的示例性结构。计算设备100可以包括:处理器11、输入输出子系统12、存储器13和数据存储设备14。当然,在其他实施例中,计算设备还可以包括其他或附加的部件。例如,输入设备(图1未示出)、输出设备(图1未示出)、通信电路15等。此外,在一些实施例中,示例性部件中的一个或多个可以并入另一个部件,例如,在一些实现方式中,存储器或其他部分可以并入处理器中。
处理器11可以为能够执行本文所述功能的任何类型的处理器。例如,处理器可以为单一或多核处理器、数字信号处理器、微处理器、或其他处理器或处理/控制电路。在一些实现方式中,计算设备可以包括一个或一个以上的处理器。
存储器13可以为能够执行本文所述功能的任何类型的存储器。存储器可存储计算设备的操作器件使用的各种数据和软件,比如,操作系统、应用、程序、库和驱动程序。
存储器13通过所述输入输出子系统12通信地耦合到处理器11,输入输出子系统12可以为有助于处理器11、存储器13和计算设备的其他部件的输入/输出操作的电路或部件。在一些实现方式中,输入输出子系统12可以形成片上系统的一部分,并且与处理器、存储器及计算设备的其他部件一起并入在单个集成电路芯片上。
数据存储设备14可以为用于短期或长期数据存储的任何类型的设备。比如,存储器设备和电路、存储卡、硬盘驱动器、固态驱动器或其他数据存储设备。
通信电路15可以为能够在计算设备和远程计算设备之间通信的任意通信电路、设备或其集合。该通信电路可以被配置为使用任何一个或多个通信技术(例如,无线或有线通信)和相关联的协议(如,以太网、蓝牙、WiFi、WiMAX、CDMA、TD-CDMA、LTE等)来实现这样的通信。该通信电路可以为包括无线网络适配器的网络适配器。
在一些实现方式中,计算设备100还可以为“虚拟服务器”,该“虚拟服务器”由在网络上分布并在云中操作的多个计算设备形成。
在一种配置中,存储器13可以是内存,内存是计算机可读介质的示例。内存可能包括模块1,模块2,……,模块N(N为大于2的整数)。计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如图2所示,本申请提供一种基于机器学习的操作系统调度方法,包括:
步骤201,利用无监督聚类算法基于资源需求特征将各任务分类为一个或多个任务组;
步骤202,利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳;
步骤203,利用所述训练得到的资源分配参数为所述任务组下一周期的进程调度分配资源。
其中,所述训练模型用于表示各任务的期望特征向量与其所属任务组的资源分配参数之间的关联关系。
本申请中上述方法可通过上文所述计算设备100实现。
本申请的上述方法,利用机器学习的方法对操作系统中的任务进行分类,并利用预建立的训练模型对资源分配参数进行调整,最终使用训练得到的资源分配参数进行资源分配,解决了相关技术中需要用户对每个具体任务设置调度策略和调度参数的技术问题,实现了调度参数的自动化配置,并且能够动态的自动调整调度策略来适应各种复杂场景,克服了相关技术中调度方法灵活性不够的缺陷。
计算设备为完成一个具体任务需要请求资源,不同的任务执行时需要的资源可能不同,这是由任务对应的程序代码决定的。本申请中,所述资源分配参数是和资源对应的,一个资源至少对应一种资源分配参数,实际应用中往往对应多种资源分配参数,即优选的,资源和资源分配参数是一对多的关系。以CPU资源来说,对应的资源分配参数可能包含:任务可以分配到的CPU时间、任务占用CPU资源的优先级等。对于内存资源,对应的资源分配参数就可能不只一个,可能包含的资源分配参数有:a.内存大小b.分配内存的属性(是否DMA)c.内存是否即时分配d.内存分配地址参数(高地址还是低地址)等。总的来说,不同资源有不同的资源分配参数。需要说明的是,对于确定的任务来说,它需要的资源是确定的,因此需要哪些资源分配参数也是确定的,但是资源分配参数的取值是可以变化的。举例来说,任务1需要CPU资源,那么就一定会对应CPU时间参数和占用CPU资源优先级参数,但是这2个参数的取值是可以变化的。
对于不同任务,虽然可能需要的资源都不尽相同,但是有可能有一些任务对资源的需要有共同特征,把它们当做一类使用统一的分配策略会提高效率。至于怎么识别哪些任务是一类的,就是机器学习算法来的任务。
一个典型场景实际对应的是有共同资源请求特征的一类任务,可以采用相同的分配策略设置资源参数的取值。比如,对于一个只需要CPU和内存的任务,可以认为是计算密集型场景,那么可以尽量提高CPU占用优先级这个资源分配参数的取值。再比如,对于一个需要CPU和打印机的任务,因为可能需要频繁请求打印机服务,可以认为是一个IO密集型场景,这种场景可以降低CPU占用优先级这个资源参数的取值。又比如,对于一个需要大内存的任务,这种情况可以降低其内存大小资源参数的取值。
一种实现方式中,利用无监督聚类算法基于资源需求特征将各任务分类之前,还可以收集各任务的资源使用数据,并通过各任务的资源使用数据分析得到各任务的资源需求特征。其中,所述资源使用数据,包括如下之一或多项:CPU空闲时间;内存使用量;使用磁盘的进程信息。当然,在其他实施方式中,资源使用数据还可包含其他内容,对此,本文不作限制。
本申请中,将资源需求特征相同的各任务分类为同一任务组。也就是说,采用机器学习的无监督聚类算法对操作系统任务资源需求进行分类,将具有相同资源需求特征的任务分为一类。实际应用中,可以根据任务对资源的需求区别形成不同的任务组。例如,所述任务组可以包括如下之一或多项:高CPU负载任务组;高IO资源任务组;高内存占用任务组;对指定设备高频率访问的任务组。当然,在其他实施方式中,任务组还可采用其他方式进行划分,对此,本文不作限制。
本申请中,所述利用预建立的训练模型对所述任务组的资源分配参数进行调整之前,还可以采用如下方式建立所述训练模型:根据预先设置的各任务的期望参数,得到各任务的期望特征向量;将各任务组中任务的期望特征向量与各任务组的资源分配参数相关联,形成所述任务组的所述训练模型。这里,所述各任务的期望参数,可以包括如下之一或多项:表示是否期望任务尽快执行的参数;表示是否期望任务尽快响应用户操作的参数;表示期望执行时长的参数。
实际应用中,计算设备的操作系统可以根据对用户输入的期望参数进行抽象和量化,得到每个具体任务的期望特征向量Q,期望特征向量Q表示用户对系统调度结果的期望。这之后,操作系统基于任务分类的结果,建立各个任务组的训练模型,将资源分配转化为训练模型中的参数,该训练模型表示任务组的资源分配方式与期望特征向量Q之间的关联关系,该训练模型的参数即为相应任务组的资源分配参数,训练模型中的参数取值即为资源分配时所需要的资源分配参数。
本申请中,所述利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳,可以包括:将硬件资源使用效率和任务满足用户期望的程度分别表达为第一数值和第二数值;在一个周期内利用预建立的训练模型对各所述任务组的资源分配参数进行调整,使得所述第一数值和第二数值最小。如此,利用机器学习训练方式,通过操作系统内建的搜集的系统信息数据对训练模型进行优化,不断的调整模型参数,在每一个时间周期内得到一组能让训练模型取得极值的参数作为调度分配资源方式。
这里,关于资源使用效率需要收集,可以包括:在一个周期时间内CPU使用率、内存使用率、并行任务数目、各种设备使用率比如磁盘、中断控制器、网卡等等数据。
这里,满足期望也需要收集,可以包括:响应中断时间、任务实际完成时间和用户要求之间差值、任务内存占用大小和用户期望占用大小之间差值等。
这里,所述用户期望可以通过一个数值表示。比如,用户输入期望任务完成时间是3s,然后会统计实际任务的完成时间,计算期望和实际的差值,再乘以一个权重(权重表示期望的影响),最后汇总所有期望和实际的差值。
这里,对于第一个周期,可以利用所述训练模型的默认值作为所述任务组第一个周期进程调度的资源分配参数,也就是说,利用所述训练模型的默认值为所述任务组第一个周期的进程调度分配资源。实际应用中,训练模型的默认参数可由事先进行的各种训练求得,不同的场景下,环境特征不同,根据不同的环境特征采用不同的默认值,对应不同任务组的不同训练模型也有不同的默认值。
本申请的上述方法,利用机器学习的无监督算法对操作系统内请求资源的任务进行分类,在分类的基础上建立用户调度期望和资源分配方式的训练模型,然后采用机器学习的方式对训练模型进行优化,从而可以得到一组参数,并将参数用于任务的资源分配。最后在操作系统运行过程中搜集必要信息,不断利用机器学习方式对模型进行优化,不断的动态调整任务的资源分配方式,从而可以根据实际情况不断的获得一组适合当前情况的参数用于资源分配,最终实现任务的合理调度。
相应的,本申请还提供一种基于机器学习的操作系统调度装置,如图3所示,包括:
分类单元31,用于利用无监督聚类算法基于资源需求特征将各任务分类为一个或多个任务组;
训练单元32,用于利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳;
分配单元33,用于利用所述训练得到的资源分配参数为所述任务组下一周期的进程调度分配资源。
其中,所述训练单元32,还可用于:根据预先设置的各任务的期望参数,得到各任务的期望特征向量;将各任务组中任务的期望特征向量与各任务组的资源分配参数相关联,形成所述任务组的所述训练模型。
其中,所述训练单元32,具体可用于将硬件资源使用效率和任务满足用户期望的程度分别表达为第一数值和第二数值;在一个周期内利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得所述第一数值和第二数值最小。
本申请中,上述基于机器学习的操作系统调度装置可实现上述基于机器学习的操作系统调度方法的所有细节(包括下文中图4所示流程)。这里,分类单元31、训练单元32、分配单元33分别可以是软件、硬件或两者的结合。实际应用中,上述基于机器学习的操作系统调度装置可实现为图1所示的计算设备100,也可设置于该计算设备100中以实现本文所述功能。
本申请还提供一种计算设备,该计算设备至少可以包括:
存储有基于机器学习的操作系统调度程序的存储器;
处理器,配置为执行所述基于机器学习的操作系统调度程序以执行下述操作:利用无监督聚类算法基于资源需求特征将各任务分类为一个或多个任务组;利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳;利用所述训练得到的资源分配参数为所述任务组下一周期的进程调度分配资源。
本申请的计算设备可实现上述基于机器学习的操作系统调度方法的所有细节(包括下文中图4所示流程)。实际应用中,本申请的计算设备至少实现为上文所述的计算设备100。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于机器学习的操作系统调度程序,所述基于机器学习的操作系统调度程序被处理器执行时实现上述基于机器学习的操作系统调度方法的步骤。
本申请中,处理器根据所述计算机可读存储介质中已存储的程序代码执行上述基于机器学习的操作系统调度方法的所有细节(包括下文中图4所示流程)。实际应用中,本申请的计算机可读存储介质至少实现为上文所述计算设备100中的计算机可读存储介质。
下面提供了本文公开技术的示例性实例。
实例1
本实例包括基于机器学习的操作系统调度流程,该流程可以通过上文所述计算设备来实现,是上文基于机器学习的操作系统调度方法的一种示例性实现方式。在其他实施方式中,还可以采用其他流程。例如,可以在本实例流程中增加其他步骤,或者调整本流程中某些步骤的执行顺序等。
如图4所示,本示例中基于机器学习的操作系统调度流程可以包括:
步骤1,用户创建任务,创建任务的同时用户使用操作系统提供的接口输出调度期望,设置对该任务的期望参数,操作系统根据用户输入进行抽象和量化,采用一定算法得到用户对该任务的期望特征向量Q。
这里,设置任务的期望参数的具体形式可以是对一些字段进行赋值,比如期望该任务尽快执行=yes、期望该任务尽快响应用户操作=yes、期望在10s内执行完毕等等。实际应用中期望参数包括但不局限于上述参数。
步骤2,操作系统内建系统资源信息记录和获取机制(比如搜集一段时间内的CPU空闲时间,搜集一段时间的内存使用量,搜集一段时间使用磁盘的进程信息等),选择合适的无监督分类算法,通过内建系统搜集到的相关信息对系统内任务的资源需求进行分类,将具有资源需求共同点最多的任务分为一类任务组。
如图4所示,通过对任务分类,可以得到属于类型1的任务组、属于类型2的任务组、……、属于类型m(m为不小于2的整数)的任务组等m个任务组。
步骤3,操作系统基于步骤2的任务分类结果,将各个任务组的资源分配方式与步骤1得到的期望特征向量Q相关联,建立训练模型:Q=f(x)。
其中,训练模型Q=f(x)中,某一类型的任务组对应一组资源分配参数,一组资源分配参数可以表示一种资源分配方式。在一种实现方式中,还可以针对用户有指标要求的单独任务建立训练模型Q=f(x),该单独任务也可以对应一组资源分配参数。也就是说,可以同时针对不同任务组和用户有指标要求的单独任务建立训练模型Q=f(x)。这样,可以根据训练模型Q=f(x)可以得到某些具体任务的调度策略和每一类任务的调度策略。
这里的调度是指如何分配资源给多个任务共享,比如一个资源什么时候给任务a,什么时候从a收回再分配给任务b。对于多个资源的分配方式可以表示为一个向量x。因此一种调度策略就是一个资源分配方式,也就是对于一个向量x,不同x的取值对应不同的调度策略或者资源分配方式。
步骤4,操作系统基于所建立的训练模型Q=f(x),使用训练模型参数的默认值将资源分配到相应的具体任务和任务组后,在一个周期中操作系统统计硬件资源使用效率、以及任务满足用户期望的程度,并且通过算法将硬件资源使用效率表达为数值h、将任务满足用户期望的程度表达为数值q。其中,数值q越小表示训练模型越符合用户对各个任务的期望,数值h越小表示计算机资源使用效率越高。
步骤5,操作系统选择合适的优化算法,不断调整训练模型的参数取值,即改变进程的资源分配,使得上一步得出的h和g最小,在h和q最小的情况下得到训练模型Q=f(x)对应的一组参数,并以该组参数作为下一周期进程调度的资源分配参数。
其中,Q和q是相同的,是用户期望的数字量化,具体形式可以是一个向量,该向量的一个分量代表一个用户期望值和实际值的差距,这个值是由系统统计得到。h是各种资源使用效率的量化,具体形式也可以是一个向量,每个向量代表一种资源的使用率,这个向量也是实际由系统统计得到的。实际上可以有如下关系q=f(x),h=g(x)即改变资源分配参数值x会导致系统得到不同的q和h。
步骤6,周期性的重复执行步骤2、步骤4和步骤5,不断的进行优化。
其中,第一个周期可以使用训练模型Q=f(x)的默认值作为资源分配参数,训练模型Q=f(x)的默认值由事先进行的各种训练求得,不同的应用场景具有不同的环境特征,不同的环境特征采用不同的默认值,不同的训练模型也具有不同的默认值。
其中,训练模块第一次可以随便选择一个分配方式,这种分配方式对应x1向量,然后计算这种情况下的q1和h1,然后根据算法调整x1为x2,再计算采用x2分配情况下的q2和h2,算法会保证调整后的q2和h2要比q1和h1小。这样依次迭代,最后会收敛,即发现得到一个xn,再如何调整xn,qn和hn都不会有大的变化。这时候就停止训练,xn就是最后选择的调度参数,也对应一种调度策略。也就是说,q1=f(x1),h1=g(x1),不断改变x1值直到得到xn,qn=f(xn),hn=g(xn),此时再改变xn,qn和hn的值发现值的变化将小于一个阙值(预先约定的阈值),此时即可停止训练,得到最终的调度参数xn,也就得到了具体的调度策略。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本申请不限制于任何特定形式的硬件和软件的结合。
以上显示和描述了本申请的基本原理和主要特征和本申请的优点。本申请不受上述实施例的限制,上述实施例和说明书中描述的只是说明本申请的原理,在不脱离本申请精神和范围的前提下,本申请还会有各种变化和改进,这些变化和改进都落入要求保护的本申请范围内。
Claims (12)
1.一种基于机器学习的操作系统调度方法,其特征在于,包括:
利用无监督聚类算法基于资源需求特征将各任务分类为一个或多个任务组;
利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳;
利用所述训练得到的资源分配参数为所述任务组下一周期的进程调度分配资源。
2.根据权利要求1所述的操作系统调度方法,其特征在于,利用无监督聚类算法基于资源需求特征将各任务分类之前,还包括:收集各任务的资源使用数据,并通过各任务的资源使用数据分析得到各任务的资源需求特征;
其中,所述资源使用数据,包括如下之一或多项:
CPU空闲时间;
内存使用量;
使用磁盘的进程信息。
3.根据权利要求1或2所述的操作系统调度方法,其特征在于,
基于资源需求特征将各任务分类为一个或多个任务组,包括:将资源需求特征相同的各任务分类为同一任务组;
其中,所述任务组包括如下之一或多项:
高CPU负载任务组;
高IO资源任务组;
高内存占用任务组;
对指定设备高频率访问的任务组。
4.根据权利要求1所述的操作系统调度方法,其特征在于,所述利用预建立的训练模型对所述任务组的资源分配参数进行调整之前,还包括:
根据预先设置的各任务的期望参数,得到各任务的期望特征向量;
将各任务组中任务的期望特征向量与各任务组的资源分配参数相关联,形成所述任务组的所述训练模型。
5.根据权利要求4所述的操作系统调度方法,其特征在于,所述各任务的期望参数,包括如下之一或多项:
表示是否期望任务尽快执行的参数;
表示是否期望任务尽快响应用户操作的参数;
表示期望执行时长的参数。
6.根据权利要求1所述的操作系统调度方法,其特征在于,所述利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳,包括:
将硬件资源使用效率和任务满足用户期望的程度分别表达为第一数值和第二数值;
在一个周期内利用预建立的训练模型对各所述任务组的资源分配参数进行调整,使得所述第一数值和第二数值最小。
7.根据权利要求1或6所述的操作系统调度方法,其特征在于,利用预建立的训练模型对所述任务组的资源分配参数进行调整之前,还包括:
利用所述训练模型的默认值为所述任务组第一个周期的进程调度分配资源。
8.一种基于机器学习的操作系统调度装置,其特征在于,包括:
分类单元,用于利用无监督聚类算法基于资源需求特征将各任务分类为一个或多个任务组;
训练单元,用于利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳;
分配单元,用于利用所述训练得到的资源分配参数为所述任务组下一周期的进程调度分配资源。
9.根据权利要求8所述的操作系统调度装置,其特征在于,
所述训练单元,还用于:根据预先设置的各任务的期望参数,得到各任务的期望特征向量;将各任务组中任务的期望特征向量与各任务组的资源分配参数相关联,形成所述任务组的所述训练模型。
10.根据权利要求8所述的操作系统调度装置,其特征在于,
所述训练单元,具体用于将硬件资源使用效率和任务满足用户期望的程度分别表达为第一数值和第二数值;在一个周期内利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得所述第一数值和第二数值最小。
11.一种计算设备,其特征在于,包括:
存储有基于机器学习的操作系统调度程序的存储器;
处理器,配置为执行所述基于机器学习的操作系统调度程序以执行下述操作:利用无监督聚类算法基于资源需求特征将各任务分类为一个或多个任务组;利用预建立的训练模型对所述任务组的资源分配参数进行调整,使得硬件资源使用效率和任务满足用户期望的程度达到最佳;利用所述训练得到的资源分配参数为所述任务组下一周期的进程调度分配资源。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于机器学习的操作系统调度程序,所述基于机器学习的操作系统调度程序被处理器执行时实现如权利要求1至7中任一项所述基于机器学习的操作系统调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710507215.6A CN109144716A (zh) | 2017-06-28 | 2017-06-28 | 基于机器学习的操作系统调度方法及装置、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710507215.6A CN109144716A (zh) | 2017-06-28 | 2017-06-28 | 基于机器学习的操作系统调度方法及装置、设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109144716A true CN109144716A (zh) | 2019-01-04 |
Family
ID=64805678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710507215.6A Withdrawn CN109144716A (zh) | 2017-06-28 | 2017-06-28 | 基于机器学习的操作系统调度方法及装置、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144716A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083452A (zh) * | 2019-04-26 | 2019-08-02 | 深信服科技股份有限公司 | 一种资源管理方法、系统及电子设备和存储介质 |
CN111181770A (zh) * | 2019-12-12 | 2020-05-19 | 北京淇瑀信息科技有限公司 | 一种资源分配方法、系统、电子设备和存储介质 |
CN111340243A (zh) * | 2020-05-15 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 用于联盟学习的方法、装置及联盟学习系统 |
CN111353696A (zh) * | 2020-02-26 | 2020-06-30 | 中国工商银行股份有限公司 | 一种资源池的调度方法及装置 |
CN111737190A (zh) * | 2020-07-03 | 2020-10-02 | 北京智芯微电子科技有限公司 | 嵌入式系统的动态软硬件协同方法、嵌入式系统 |
CN112016693A (zh) * | 2019-05-30 | 2020-12-01 | 中兴通讯股份有限公司 | 机器学习引擎实现方法及装置、终端设备、存储介质 |
CN112148465A (zh) * | 2019-06-26 | 2020-12-29 | 维塔科技(北京)有限公司 | 资源分配方法和装置,电子设备及存储介质 |
CN112506652A (zh) * | 2020-12-01 | 2021-03-16 | 中国科学院深圳先进技术研究院 | 一种动态资源分区方法 |
CN112596879A (zh) * | 2020-12-24 | 2021-04-02 | 中国信息通信研究院 | 用于量子云计算平台任务调度的方法 |
CN112612612A (zh) * | 2020-12-25 | 2021-04-06 | 联想未来通信科技(重庆)有限公司 | 一种任务处理方法及装置 |
CN113377540A (zh) * | 2021-06-15 | 2021-09-10 | 上海商汤科技开发有限公司 | 集群资源调度方法及装置、电子设备和存储介质 |
TWI756974B (zh) * | 2020-12-09 | 2022-03-01 | 財團法人工業技術研究院 | 機器學習系統及其資源配置方法 |
CN114764353A (zh) * | 2021-01-13 | 2022-07-19 | 戴尔产品有限公司 | 用于信息处置系统(ihs)全系统优化的ml到ml的编排系统和方法 |
WO2023030230A1 (en) * | 2021-09-03 | 2023-03-09 | International Business Machines Corporation | Using a machine learning module to determine a group of execution paths of program code and a computational resource allocation to use to execute the group of execution paths |
CN115878330A (zh) * | 2023-02-08 | 2023-03-31 | 腾云创威信息科技(威海)有限公司 | 线程的运行控制方法及其系统 |
CN118171749A (zh) * | 2024-03-21 | 2024-06-11 | 广东工业大学 | 基于调度算法的机器学习方法、系统及存储介质 |
US12073729B2 (en) | 2021-04-27 | 2024-08-27 | Rockwell Collins, Inc. | Machine-learned operating system and processor |
US12147840B2 (en) | 2021-09-03 | 2024-11-19 | International Business Machines Corporation | Using a machine learning module to determine a group of execution paths of program code and a computational resource allocation to use to execute the group of execution paths |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818875A (zh) * | 2006-03-16 | 2006-08-16 | 浙江大学 | 嵌入式操作系统分组硬实时任务调度的实现方法 |
CN102831012A (zh) * | 2011-06-16 | 2012-12-19 | 日立(中国)研究开发有限公司 | 多节点分布式系统中的任务调度装置和任务调度方法 |
CN106202431A (zh) * | 2016-07-13 | 2016-12-07 | 华中科技大学 | 一种基于机器学习的Hadoop参数自动调优方法及系统 |
US20170024316A1 (en) * | 2015-07-23 | 2017-01-26 | Qualcomm Incorporated | Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring |
CN106897132A (zh) * | 2017-02-27 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种服务器任务调度的方法以及装置 |
-
2017
- 2017-06-28 CN CN201710507215.6A patent/CN109144716A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818875A (zh) * | 2006-03-16 | 2006-08-16 | 浙江大学 | 嵌入式操作系统分组硬实时任务调度的实现方法 |
CN102831012A (zh) * | 2011-06-16 | 2012-12-19 | 日立(中国)研究开发有限公司 | 多节点分布式系统中的任务调度装置和任务调度方法 |
US20170024316A1 (en) * | 2015-07-23 | 2017-01-26 | Qualcomm Incorporated | Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring |
CN106202431A (zh) * | 2016-07-13 | 2016-12-07 | 华中科技大学 | 一种基于机器学习的Hadoop参数自动调优方法及系统 |
CN106897132A (zh) * | 2017-02-27 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种服务器任务调度的方法以及装置 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083452A (zh) * | 2019-04-26 | 2019-08-02 | 深信服科技股份有限公司 | 一种资源管理方法、系统及电子设备和存储介质 |
CN112016693A (zh) * | 2019-05-30 | 2020-12-01 | 中兴通讯股份有限公司 | 机器学习引擎实现方法及装置、终端设备、存储介质 |
CN112148465A (zh) * | 2019-06-26 | 2020-12-29 | 维塔科技(北京)有限公司 | 资源分配方法和装置,电子设备及存储介质 |
CN111181770A (zh) * | 2019-12-12 | 2020-05-19 | 北京淇瑀信息科技有限公司 | 一种资源分配方法、系统、电子设备和存储介质 |
CN111353696A (zh) * | 2020-02-26 | 2020-06-30 | 中国工商银行股份有限公司 | 一种资源池的调度方法及装置 |
CN111340243B (zh) * | 2020-05-15 | 2020-09-08 | 支付宝(杭州)信息技术有限公司 | 用于联盟学习的方法、装置及联盟学习系统 |
CN111340243A (zh) * | 2020-05-15 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 用于联盟学习的方法、装置及联盟学习系统 |
CN111737190A (zh) * | 2020-07-03 | 2020-10-02 | 北京智芯微电子科技有限公司 | 嵌入式系统的动态软硬件协同方法、嵌入式系统 |
CN112506652A (zh) * | 2020-12-01 | 2021-03-16 | 中国科学院深圳先进技术研究院 | 一种动态资源分区方法 |
CN112506652B (zh) * | 2020-12-01 | 2023-10-20 | 中国科学院深圳先进技术研究院 | 一种动态资源分区方法 |
US11954527B2 (en) | 2020-12-09 | 2024-04-09 | Industrial Technology Research Institute | Machine learning system and resource allocation method thereof |
TWI756974B (zh) * | 2020-12-09 | 2022-03-01 | 財團法人工業技術研究院 | 機器學習系統及其資源配置方法 |
CN112596879B (zh) * | 2020-12-24 | 2023-06-16 | 中国信息通信研究院 | 用于量子云计算平台任务调度的方法 |
CN112596879A (zh) * | 2020-12-24 | 2021-04-02 | 中国信息通信研究院 | 用于量子云计算平台任务调度的方法 |
CN112612612A (zh) * | 2020-12-25 | 2021-04-06 | 联想未来通信科技(重庆)有限公司 | 一种任务处理方法及装置 |
CN114764353B (zh) * | 2021-01-13 | 2023-09-29 | 戴尔产品有限公司 | 用于信息处置系统(ihs)全系统优化的ml到ml的编排系统和方法 |
CN114764353A (zh) * | 2021-01-13 | 2022-07-19 | 戴尔产品有限公司 | 用于信息处置系统(ihs)全系统优化的ml到ml的编排系统和方法 |
US12073729B2 (en) | 2021-04-27 | 2024-08-27 | Rockwell Collins, Inc. | Machine-learned operating system and processor |
CN113377540A (zh) * | 2021-06-15 | 2021-09-10 | 上海商汤科技开发有限公司 | 集群资源调度方法及装置、电子设备和存储介质 |
WO2023030230A1 (en) * | 2021-09-03 | 2023-03-09 | International Business Machines Corporation | Using a machine learning module to determine a group of execution paths of program code and a computational resource allocation to use to execute the group of execution paths |
US12147840B2 (en) | 2021-09-03 | 2024-11-19 | International Business Machines Corporation | Using a machine learning module to determine a group of execution paths of program code and a computational resource allocation to use to execute the group of execution paths |
CN115878330A (zh) * | 2023-02-08 | 2023-03-31 | 腾云创威信息科技(威海)有限公司 | 线程的运行控制方法及其系统 |
CN118171749A (zh) * | 2024-03-21 | 2024-06-11 | 广东工业大学 | 基于调度算法的机器学习方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144716A (zh) | 基于机器学习的操作系统调度方法及装置、设备 | |
US10949257B2 (en) | System and method for scheduling workload based on a credit-based mechanism | |
CN110389816B (zh) | 用于资源调度的方法、装置以及计算机可读介质 | |
CN106911592B (zh) | 一种自适应资源分配方法及装置 | |
CN110995614A (zh) | 一种算力资源分配的方法及装置 | |
CN110489213A (zh) | 一种任务处理方法及处理装置、计算机系统 | |
US8984521B2 (en) | Computer system performance by applying rate limits to control block tenancy | |
CN109906421A (zh) | 基于线程重要性的处理器核划分 | |
CN109684074A (zh) | 物理机资源分配方法及终端设备 | |
CN110888714A (zh) | 容器的调度方法、装置和计算机可读存储介质 | |
CN103885812A (zh) | 虚拟机规格调整方法及装置 | |
CN114443263A (zh) | 显存管理方法、装置、设备及系统 | |
CN103701934A (zh) | 一种资源优化调度方法及虚拟机宿主机优化选择方法 | |
CN109906437A (zh) | 基于线程重要性的处理器核停止和频率选择 | |
CN114625500B (zh) | 云环境下拓扑感知的微服务应用调度的方法及应用 | |
US20240264875A1 (en) | Method, apparatus, system, device, medium and program product for resource scheduling | |
CN117971499A (zh) | 资源配置方法、装置、电子设备和存储介质 | |
CN109271236A (zh) | 一种业务调度的方法、装置、计算机存储介质及终端 | |
CN115586961A (zh) | 一种ai平台计算资源任务调度方法、装置及介质 | |
CN109634812A (zh) | Linux系统的进程CPU占用率控制方法、终端设备及存储介质 | |
CN110928649A (zh) | 资源调度的方法和装置 | |
CN115344358A (zh) | 资源调度方法、装置和管理节点 | |
CN109298949B (zh) | 一种分布式文件系统的资源调度系统 | |
CN115766582A (zh) | 流量控制方法、装置和系统、介质和计算机设备 | |
CN111475277A (zh) | 一种资源分配方法、系统、设备及机器可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190104 |