CN105354084B - 一种基于带宽调度的cpu任务迁移方法及系统 - Google Patents
一种基于带宽调度的cpu任务迁移方法及系统 Download PDFInfo
- Publication number
- CN105354084B CN105354084B CN201510727439.9A CN201510727439A CN105354084B CN 105354084 B CN105354084 B CN 105354084B CN 201510727439 A CN201510727439 A CN 201510727439A CN 105354084 B CN105354084 B CN 105354084B
- Authority
- CN
- China
- Prior art keywords
- cpu
- task
- sequence
- bandwidth
- immigration
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013508 migration Methods 0.000 claims abstract description 24
- 230000005012 migration Effects 0.000 claims abstract description 24
- 238000003491 array Methods 0.000 claims description 12
- 238000000605 extraction Methods 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 238000005457 optimization Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 1
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/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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
- G06F9/4875—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with migration policy, e.g. auction, contract negotiation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
本申请公开了一种基于带宽调度的CPU任务迁移方法及系统,该方法包括:从计算机的所有CPU中选取N个CPU;按照预设的迁移周期,定期对上述N个CPU进行一次整体的CPU任务迁移。本申请是按照排序后的对应位置,将N个排序后的CPU任务一对一地迁移至N个排序后的CPU,实现了将较忙的CPU任务迁移至较闲的CPU上,以及将较闲的CPU任务迁移至较忙的CPU上的过程,从而保证了对操作系统调度过程的整体优化,并且,本申请是按照预设的迁移周期,定期进行整体的CPU任务迁移,从而避免了频繁切换CPU任务的现象,也即降低了CPU任务切换的频率,减少了系统开销。
Description
技术领域
本发明涉及操作系统调度领域,特别涉及一种基于带宽调度的CPU任务迁移方法及系统。
背景技术
在多任务实时操作系统中,通常会出现多个CPU需要分别对多个CPU任务进行处理的现象。为了减少较忙CPU的负担,需要进行相应任务调度处理。
目前,较为常见的CPU任务调度过程是基于EDF(EDF,即Earliest DeadlineFirst,最早截止时间优先算法)算法展开的,这种调度方法可以实现将当前最忙的CPU任务(即离截止时间最小的CPU任务)迁移至当前最闲的CPU上(即离截止时间最大的CPU)。然而,当截止时间很小的时候,将会导致操作系统频繁进行CPU任务的切换,由此带来了极大的系统开销。
综上所述可以看出,如何降低CPU任务切换的频率,以减少系统开销是目前亟待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种基于带宽调度的CPU任务迁移方法及系统,降低了CPU任务切换的频率,从而减少了系统开销。其具体方案如下:
一种基于带宽调度的CPU任务迁移方法,包括:
从计算机的所有CPU中选取N个CPU,其中,N为不小于2的正整数;
按照预设的迁移周期,定期对所述N个CPU进行一次整体的CPU任务迁移;其中,
所述对所述N个CPU进行一次整体的CPU任务迁移的过程,包括:
确定所述N个CPU中每个CPU的当前繁忙程度,并根据CPU当前繁忙程度的大小顺序,对所述N个CPU进行第一排序,得到N个排序后的CPU;并对所述N个CPU进行任务提取处理,以从每个CPU的所有CPU任务中提取出当前该CPU的最忙CPU任务,相应地得到N个CPU任务,并按照CPU任务的忙碌程度的大小顺序,对所述N个CPU任务进行第二排序,得到N个排序后的CPU任务;其中,所述第一排序的大小顺序和所述第二排序的大小顺序相反;按照排序后的对应位置,将所述N个排序后的CPU任务一对一地迁移至所述N个排序后的CPU。
优选的,所述N个CPU中,每个CPU当前的所有CPU任务的数量大于一个。
优选的,所述N个CPU为所述计算机的同一个NUMA架构中的N个CPU,并且每个CPU的CPU带宽均大于预设阈值。
优选的,所述迁移周期为100毫秒。
优选的,所述确定所述N个CPU中每个CPU的当前繁忙程度,并根据CPU当前繁忙程度的大小顺序,对所述N个CPU进行第一排序,得到N个排序后的CPU的过程,包括:
利用数组结构,分别记录每个CPU当前的所有CPU任务的总带宽以及相应的CPU编号,相应地得到包含N组CPU信息的第一数组,其中,一组CPU信息包括一个CPU编号以及与该CPU编号对应的总带宽;
根据所述N组CPU信息中记录的总带宽的大小顺序,对所述N个CPU进行所述第一排序,得到所述N个排序后的CPU。
优选的,所述对所述N个CPU进行任务提取处理,以从每个CPU的所有CPU任务中提取出当前该CPU的最忙CPU任务,相应地得到N个CPU任务,并按照CPU任务的忙碌程度的大小顺序,对所述N个CPU任务进行第二排序,得到N个排序后的CPU任务的过程,包括:
分别从每个CPU当前的所有CPU任务中查找出占用最大带宽的CPU任务,相应地得到N个CPU任务,并利用数组结构,记录所述N个CPU任务中每个CPU任务所对应的任务带宽以及任务ID,相应地得到包含N组任务信息的第二数组,其中,一组任务信息包括一个任务ID以及与该任务ID对应的任务带宽;
按照所述N组任务信息中记录的任务带宽的大小顺序,对所述N个CPU任务进行所述第二排序,得到所述N个排序后的CPU任务。
本发明还公开了一种基于带宽调度的CPU任务迁移系统,包括:
CPU选取模块,用于从计算机的所有CPU中选取N个CPU,其中,N为不小于2的正整数;
CPU任务迁移模块,用于按照预设的迁移周期,定期对所述N个CPU进行一次整体的CPU任务迁移;其中,所述CPU任务迁移模块包括:
第一排序器,用于在对所述N个CPU进行一次整体的CPU任务迁移的过程中,确定所述N个CPU中每个CPU的当前繁忙程度,并根据CPU当前繁忙程度的大小顺序,对所述N个CPU进行第一排序,得到N个排序后的CPU;
第二排序器,用于在对所述N个CPU进行一次整体的CPU任务迁移的过程中,对所述N个CPU进行任务提取处理,以从每个CPU的所有CPU任务中提取出当前该CPU的最忙CPU任务,相应地得到N个CPU任务,并按照CPU任务的忙碌程度的大小顺序,对所述N个CPU任务进行第二排序,得到N个排序后的CPU任务;其中,所述第一排序的大小顺序和所述第二排序的大小顺序相反;
任务迁移器,用于按照排序后的对应位置,将所述N个排序后的CPU任务一对一地迁移至所述N个排序后的CPU。
优选的,所述N个CPU为所述计算机的同一个NUMA架构中的N个CPU,并且每个CPU的CPU带宽均大于预设阈值。
优选的,所述第一排序器包括:
第一数组记录单元,用于利用数组结构,分别记录每个CPU当前的所有CPU任务的总带宽以及相应的CPU编号,相应地得到包含N组CPU信息的第一数组,其中,一组CPU信息包括一个CPU编号以及与该CPU编号对应的总带宽;
第一排序单元,用于根据所述N组CPU信息中记录的总带宽的大小顺序,对所述N个CPU进行所述第一排序,得到所述N个排序后的CPU。
优选的,所述第二排序器包括:
最忙任务查找单元,用于分别从每个CPU当前的所有CPU任务中查找出占用最大带宽的CPU任务,相应地得到N个CPU任务;
第二数组记录单元,用于利用数组结构,记录所述N个CPU任务中每个CPU任务所对应的任务带宽以及任务ID,相应地得到包含N组任务信息的第二数组,其中,一组任务信息包括一个任务ID以及与该任务ID对应的任务带宽;
第二排序单元,用于按照所述N组任务信息中记录的任务带宽的大小顺序,对所述N个CPU任务进行所述第二排序,得到所述N个排序后的CPU任务。
本发明中,CPU任务迁移方法包括:从计算机的所有CPU中选取N个CPU;按照预设的迁移周期,定期对上述N个CPU进行一次整体的CPU任务迁移;其中,对上述N个CPU进行一次整体的CPU任务迁移的过程,包括:确定上述N个CPU中每个CPU的当前繁忙程度,并根据CPU当前繁忙程度的大小顺序,对上述N个CPU进行第一排序,得到N个排序后的CPU;并对上述N个CPU进行任务提取处理,以从每个CPU的所有CPU任务中提取出当前该CPU的最忙CPU任务,相应地得到N个CPU任务,并按照CPU任务的忙碌程度的大小顺序,对上述N个CPU任务进行第二排序,得到N个排序后的CPU任务;其中,第一排序的大小顺序和第二排序的大小顺序相反;按照排序后的对应位置,将上述N个排序后的CPU任务一对一地迁移至上述N个排序后的CPU。可见,本发明是按照排序后的对应位置,将上述N个排序后的CPU任务一对一地迁移至上述N个排序后的CPU,实现了将较忙的CPU任务迁移至较闲的CPU上,以及将较闲的CPU任务迁移至较忙的CPU上的过程,从而保证了对操作系统调度过程的整体优化,并且,本发明是按照预设的迁移周期,定期进行整体的CPU任务迁移,从而避免了频繁切换CPU任务的现象,也即降低了CPU任务切换的频率,减少了系统开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种基于带宽调度的CPU任务迁移方法流程图;
图2为本发明实施例公开的一种基于带宽调度的CPU任务迁移方法的子流程图;
图3为本发明实施例公开的一种基于带宽调度的CPU任务迁移系统结构示意图;
图4为本发明实施例公开的一种具体的基于带宽调度的CPU任务迁移系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于带宽调度的CPU任务迁移方法,参见图1所示,该方法包括:
步骤S11:从计算机的所有CPU中选取N个CPU,其中,N为不小于2的正整数;
步骤S12:按照预设的迁移周期,定期对上述N个CPU进行一次整体的CPU任务迁移;
参见图2所示,在步骤S12中,对上述N个CPU进行一次整体的CPU任务迁移的过程,包括:
步骤S121:确定上述N个CPU中每个CPU的当前繁忙程度,并根据CPU当前繁忙程度的大小顺序,对上述N个CPU进行第一排序,得到N个排序后的CPU;
步骤S122:并对上述N个CPU进行任务提取处理,以从每个CPU的所有CPU任务中提取出当前该CPU的最忙CPU任务,相应地得到N个CPU任务,并按照CPU任务的忙碌程度的大小顺序,对上述N个CPU任务进行第二排序,得到N个排序后的CPU任务;其中,上述第一排序的大小顺序和上述第二排序的大小顺序相反;
步骤S123:按照排序后的对应位置,将上述N个排序后的CPU任务一对一地迁移至上述N个排序后的CPU。
需要指出的是,上述步骤S121和步骤S122之间并没有明确的先后顺序。
可以理解的是,经过上述步骤S123的处理,实现了将较忙的CPU任务迁移至较闲的CPU上,以及将较闲的CPU任务迁移至较忙的CPU上的过程,从而保证了对操作系统调度过程的整体优化。
另外,为了减少不必要的任务迁移,可在步骤S11选取CPU的过程中要求,上述N个CPU中每个CPU当前的所有CPU任务的数量大于一个,也即,当某个CPU中当前只有一个任务时,不对其进行任务迁移操作。
本发明实施例中,CPU任务迁移方法包括:从计算机的所有CPU中选取N个CPU;按照预设的迁移周期,定期对上述N个CPU进行一次整体的CPU任务迁移;其中,对上述N个CPU进行一次整体的CPU任务迁移的过程,包括:确定上述N个CPU中每个CPU的当前繁忙程度,并根据CPU当前繁忙程度的大小顺序,对上述N个CPU进行第一排序,得到N个排序后的CPU;并对上述N个CPU进行任务提取处理,以从每个CPU的所有CPU任务中提取出当前该CPU的最忙CPU任务,相应地得到N个CPU任务,并按照CPU任务的忙碌程度的大小顺序,对上述N个CPU任务进行第二排序,得到N个排序后的CPU任务;其中,第一排序的大小顺序和第二排序的大小顺序相反;按照排序后的对应位置,将上述N个排序后的CPU任务一对一地迁移至上述N个排序后的CPU。
可见,本发明实施例是按照排序后的对应位置,将上述N个排序后的CPU任务一对一地迁移至上述N个排序后的CPU,实现了将较忙的CPU任务迁移至较闲的CPU上,以及将较闲的CPU任务迁移至较忙的CPU上的过程,从而保证了对操作系统调度过程的整体优化,并且,本发明实施例是按照预设的迁移周期,定期进行整体的CPU任务迁移,从而避免了频繁切换CPU任务的现象,也即降低了CPU任务切换的频率,减少了系统开销。
本发明实施例公开了一种具体的基于带宽调度的CPU任务迁移方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
上一实施例步骤S11中选取的N个CPU为计算机的同一个NUMA(NUMA,即NonUniform Memory Access Architecture,非统一内存访问架构)架构中的N个CPU,并且每个CPU的CPU带宽均大于预设阈值。
进一步的,上一实施例步骤S12中的迁移周期可取为100毫秒,当然,也可以根据实际的需要,将其设定为其他数值。
另外,上一实施例步骤S121具体可包括:
步骤S1211:利用数组结构,分别记录每个CPU当前的所有CPU任务的总带宽以及相应的CPU编号,相应地得到包含N组CPU信息的第一数组,其中,一组CPU信息包括一个CPU编号以及与该CPU编号对应的总带宽;
步骤S1212:根据上述N组CPU信息中记录的总带宽的大小顺序,对上述N个CPU进行第一排序,相应地得到N个排序后的CPU。
进一步的,上一实施例步骤S122具体可包括:
步骤S1221:分别从每个CPU当前的所有CPU任务中查找出占用最大带宽的CPU任务,相应地得到N个CPU任务;
步骤S1222:并利用数组结构,记录上述N个CPU任务中每个CPU任务所对应的任务带宽以及任务ID,相应地得到包含N组任务信息的第二数组,其中,一组任务信息包括一个任务ID以及与该任务ID对应的任务带宽;
步骤S1223:按照上述N组任务信息中记录的任务带宽的大小顺序,对上述N个CPU任务进行第二排序,相应地得到N个排序后的CPU任务。
本实施例主要对进行一次整体的CPU任务迁移的过程进行了举例说明,当然,在实际的应用过程中,可以根据实际的需要,采取其他排序方式对CPU任务进行整体迁移。
本发明实施例还公开了一种基于带宽调度的CPU任务迁移系统,参见图3所示,该系统包括:
CPU选取模块31,用于从计算机的所有CPU中选取N个CPU,其中,N为不小于2的正整数;
CPU任务迁移模块32,用于按照预设的迁移周期,定期对上述N个CPU进行一次整体的CPU任务迁移;其中,CPU任务迁移模块32包括:
第一排序器321,用于在对上述N个CPU进行一次整体的CPU任务迁移的过程中,确定上述N个CPU中每个CPU的当前繁忙程度,并根据CPU当前繁忙程度的大小顺序,对上述N个CPU进行第一排序,得到N个排序后的CPU;
第二排序器322,用于在对上述N个CPU进行一次整体的CPU任务迁移的过程中,对上述N个CPU进行任务提取处理,以从每个CPU的所有CPU任务中提取出当前该CPU的最忙CPU任务,相应地得到N个CPU任务,并按照CPU任务的忙碌程度的大小顺序,对上述N个CPU任务进行第二排序,得到N个排序后的CPU任务;其中,上述第一排序的大小顺序和上述第二排序的大小顺序相反;
任务迁移器323,用于按照排序后的对应位置,将上述N个排序后的CPU任务一对一地迁移至上述N个排序后的CPU。
优选的,上述CPU选取模块31选取的N个CPU为计算机的同一个NUMA架构中的N个CPU,并且每个CPU的CPU带宽均大于预设阈值。
参见图4所示,上述第一排序器321具体包括第一数组记录单元3211和第一排序单元3212;其中,
第一数组记录单元3211用于利用数组结构,分别记录每个CPU当前的所有CPU任务的总带宽以及相应的CPU编号,相应地得到包含N组CPU信息的第一数组,其中,一组CPU信息包括一个CPU编号以及与该CPU编号对应的总带宽;
第一排序单元3212用于根据上述N组CPU信息中记录的总带宽的大小顺序,对上述N个CPU进行第一排序,相应地得到N个排序后的CPU。
另外,上述第二排序器322具体包括最忙任务查找单元3221、第二数组记录单元3222和第二排序单元3223;其中,
最忙任务查找单元3221用于分别从每个CPU当前的所有CPU任务中查找出占用最大带宽的CPU任务,相应地得到N个CPU任务;
第二数组记录单元3222用于利用数组结构,记录上述N个CPU任务中每个CPU任务所对应的任务带宽以及任务ID,相应地得到包含N组任务信息的第二数组,其中,一组任务信息包括一个任务ID以及与该任务ID对应的任务带宽;
第二排序单元3223用于按照上述N组任务信息中记录的任务带宽的大小顺序,对上述N个CPU任务进行第二排序,相应地得到N个排序后的CPU任务。
可见,本发明实施例是按照排序后的对应位置,将上述N个排序后的CPU任务一对一地迁移至上述N个排序后的CPU,实现了将较忙的CPU任务迁移至较闲的CPU上,以及将较闲的CPU任务迁移至较忙的CPU上的过程,从而保证了对操作系统调度过程的整体优化,并且,本发明实施例是按照预设的迁移周期,定期进行整体的CPU任务迁移,从而避免了频繁切换CPU任务的现象,也即降低了CPU任务切换的频率,减少了系统开销。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种基于带宽调度的CPU任务迁移方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于带宽调度的CPU任务迁移方法,其特征在于,包括:
从计算机的所有CPU中选取N个CPU,其中,N为不小于2的正整数;
按照预设的迁移周期,定期对所述N个CPU进行一次整体的CPU任务迁移;其中,
所述对所述N个CPU进行一次整体的CPU任务迁移的过程,包括:
确定所述N个CPU中每个CPU的当前繁忙程度,并根据CPU当前繁忙程度的大小顺序,对所述N个CPU进行第一排序,得到N个排序后的CPU;并对所述N个CPU进行任务提取处理,以从每个CPU的所有CPU任务中提取出当前该CPU的最忙CPU任务,相应地得到N个CPU任务,并按照CPU任务的忙碌程度的大小顺序,对所述N个CPU任务进行第二排序,得到N个排序后的CPU任务;其中,所述第一排序的大小顺序和所述第二排序的大小顺序相反;按照排序后的对应位置,将所述N个排序后的CPU任务一对一地迁移至所述N个排序后的CPU;
其中,任一CPU的最忙CPU任务具体为该CPU当前的所有CPU任务中占用最大带宽的CPU任务,所述CPU任务的忙碌程度具体为所述CPU任务的任务带宽。
2.根据权利要求1所述的基于带宽调度的CPU任务迁移方法,其特征在于,所述N个CPU中,每个CPU当前的所有CPU任务的数量大于一个。
3.根据权利要求2所述的基于带宽调度的CPU任务迁移方法,其特征在于,所述N个CPU为所述计算机的同一个NUMA架构中的N个CPU,并且每个CPU的CPU带宽均大于预设阈值。
4.根据权利要求3所述的基于带宽调度的CPU任务迁移方法,其特征在于,所述迁移周期为100毫秒。
5.根据权利要求1至4任一项所述的基于带宽调度的CPU任务迁移方法,其特征在于,所述确定所述N个CPU中每个CPU的当前繁忙程度,并根据CPU当前繁忙程度的大小顺序,对所述N个CPU进行第一排序,得到N个排序后的CPU的过程,包括:
利用数组结构,分别记录每个CPU当前的所有CPU任务的总带宽以及相应的CPU编号,相应地得到包含N组CPU信息的第一数组,其中,一组CPU信息包括一个CPU编号以及与该CPU编号对应的总带宽;
根据所述N组CPU信息中记录的总带宽的大小顺序,对所述N个CPU进行所述第一排序,得到所述N个排序后的CPU。
6.根据权利要求5所述的基于带宽调度的CPU任务迁移方法,其特征在于,所述对所述N个CPU进行任务提取处理,以从每个CPU的所有CPU任务中提取出当前该CPU的最忙CPU任务,相应地得到N个CPU任务,并按照CPU任务的忙碌程度的大小顺序,对所述N个CPU任务进行第二排序,得到N个排序后的CPU任务的过程,包括:
分别从每个CPU当前的所有CPU任务中查找出占用最大带宽的CPU任务,相应地得到N个CPU任务,并利用数组结构,记录所述N个CPU任务中每个CPU任务所对应的任务带宽以及任务ID,相应地得到包含N组任务信息的第二数组,其中,一组任务信息包括一个任务ID以及与该任务ID对应的任务带宽;
按照所述N组任务信息中记录的任务带宽的大小顺序,对所述N个CPU任务进行所述第二排序,得到所述N个排序后的CPU任务。
7.一种基于带宽调度的CPU任务迁移系统,其特征在于,包括:
CPU选取模块,用于从计算机的所有CPU中选取N个CPU,其中,N为不小于2的正整数;
CPU任务迁移模块,用于按照预设的迁移周期,定期对所述N个CPU进行一次整体的CPU任务迁移;其中,所述CPU任务迁移模块包括:
第一排序器,用于在对所述N个CPU进行一次整体的CPU任务迁移的过程中,确定所述N个CPU中每个CPU的当前繁忙程度,并根据CPU当前繁忙程度的大小顺序,对所述N个CPU进行第一排序,得到N个排序后的CPU;
第二排序器,用于在对所述N个CPU进行一次整体的CPU任务迁移的过程中,对所述N个CPU进行任务提取处理,以从每个CPU的所有CPU任务中提取出当前该CPU的最忙CPU任务,相应地得到N个CPU任务,并按照CPU任务的忙碌程度的大小顺序,对所述N个CPU任务进行第二排序,得到N个排序后的CPU任务;其中,所述第一排序的大小顺序和所述第二排序的大小顺序相反;
任务迁移器,用于按照排序后的对应位置,将所述N个排序后的CPU任务一对一地迁移至所述N个排序后的CPU;
其中,任一CPU的最忙CPU任务具体为该CPU当前的所有CPU任务中占用最大带宽的CPU任务,所述CPU任务的忙碌程度具体为所述CPU任务的任务带宽。
8.根据权利要求7所述的基于带宽调度的CPU任务迁移系统,其特征在于,所述N个CPU为所述计算机的同一个NUMA架构中的N个CPU,并且每个CPU的CPU带宽均大于预设阈值。
9.根据权利要求7或8所述的基于带宽调度的CPU任务迁移系统,其特征在于,所述第一排序器包括:
第一数组记录单元,用于利用数组结构,分别记录每个CPU当前的所有CPU任务的总带宽以及相应的CPU编号,相应地得到包含N组CPU信息的第一数组,其中,一组CPU信息包括一个CPU编号以及与该CPU编号对应的总带宽;
第一排序单元,用于根据所述N组CPU信息中记录的总带宽的大小顺序,对所述N个CPU进行所述第一排序,得到所述N个排序后的CPU。
10.根据权利要求9所述的基于带宽调度的CPU任务迁移系统,其特征在于,所述第二排序器包括:
最忙任务查找单元,用于分别从每个CPU当前的所有CPU任务中查找出占用最大带宽的CPU任务,相应地得到N个CPU任务;
第二数组记录单元,用于利用数组结构,记录所述N个CPU任务中每个CPU任务所对应的任务带宽以及任务ID,相应地得到包含N组任务信息的第二数组,其中,一组任务信息包括一个任务ID以及与该任务ID对应的任务带宽;
第二排序单元,用于按照所述N组任务信息中记录的任务带宽的大小顺序,对所述N个CPU任务进行所述第二排序,得到所述N个排序后的CPU任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510727439.9A CN105354084B (zh) | 2015-10-30 | 2015-10-30 | 一种基于带宽调度的cpu任务迁移方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510727439.9A CN105354084B (zh) | 2015-10-30 | 2015-10-30 | 一种基于带宽调度的cpu任务迁移方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105354084A CN105354084A (zh) | 2016-02-24 |
CN105354084B true CN105354084B (zh) | 2018-12-18 |
Family
ID=55330058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510727439.9A Active CN105354084B (zh) | 2015-10-30 | 2015-10-30 | 一种基于带宽调度的cpu任务迁移方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105354084B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201711B (zh) * | 2016-06-29 | 2019-07-26 | 联想(北京)有限公司 | 一种任务处理方法及服务器 |
CN106487784B (zh) * | 2016-09-28 | 2019-06-25 | 东软集团股份有限公司 | 一种会话迁移的方法、装置及防火墙 |
CN107193649B (zh) * | 2017-05-25 | 2021-02-19 | 深信服科技股份有限公司 | 一种基于numa系统的任务调度方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885826A (zh) * | 2014-03-11 | 2014-06-25 | 武汉科技大学 | 一种多核嵌入式系统实时任务调度实现方法 |
CN104572272A (zh) * | 2013-10-12 | 2015-04-29 | 杭州华为数字技术有限公司 | 一种任务调度方法、装置及系统 |
CN104636204A (zh) * | 2014-12-04 | 2015-05-20 | 中国联合网络通信集团有限公司 | 一种任务调度方法与装置 |
CN104657221A (zh) * | 2015-03-12 | 2015-05-27 | 广东石油化工学院 | 一种云计算中基于任务分类的多队列错峰调度模型及方法 |
CN104793990A (zh) * | 2015-04-21 | 2015-07-22 | 中国海洋大学 | 一种多时序任务调度方法和系统 |
-
2015
- 2015-10-30 CN CN201510727439.9A patent/CN105354084B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572272A (zh) * | 2013-10-12 | 2015-04-29 | 杭州华为数字技术有限公司 | 一种任务调度方法、装置及系统 |
CN103885826A (zh) * | 2014-03-11 | 2014-06-25 | 武汉科技大学 | 一种多核嵌入式系统实时任务调度实现方法 |
CN104636204A (zh) * | 2014-12-04 | 2015-05-20 | 中国联合网络通信集团有限公司 | 一种任务调度方法与装置 |
CN104657221A (zh) * | 2015-03-12 | 2015-05-27 | 广东石油化工学院 | 一种云计算中基于任务分类的多队列错峰调度模型及方法 |
CN104793990A (zh) * | 2015-04-21 | 2015-07-22 | 中国海洋大学 | 一种多时序任务调度方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105354084A (zh) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105354084B (zh) | 一种基于带宽调度的cpu任务迁移方法及系统 | |
CN107347182A (zh) | 短信分发方法和系统 | |
CN106055486A (zh) | 一种分布式文件系统的自动化运维方法及平台 | |
CN105491117B (zh) | 面向实时数据分析的流式图数据处理系统及方法 | |
CN103346902B (zh) | 数据采集调度的方法及系统 | |
CN103885825A (zh) | 基于动态时间片的速率单调实时调度方法 | |
CN105989006A (zh) | 数据迁移方法和装置 | |
CN108563557A (zh) | 一种多通道计算机的通道同步方法及装置 | |
CN108654092A (zh) | 一种同步云游戏档案的方法和装置 | |
CN110442564A (zh) | 增量数据校验方法、存储介质 | |
CN105763886A (zh) | 一种分布式转码方法和装置 | |
CN104572279A (zh) | 一种支持节点绑定的虚拟机动态调度方法 | |
TW200502953A (en) | Structure and method for managing available memory resources | |
EP1193591A3 (en) | Data storage array device and data access method | |
CN103716845A (zh) | 一种pci分配方法及装置 | |
CN102760073A (zh) | 一种任务调度方法、系统及装置 | |
CN102404826B (zh) | 一种信道扫描方法和设备 | |
CN107180051A (zh) | 一种日志管理方法、服务器 | |
CN107844275A (zh) | 一种数据的迁移方法、装置及介质 | |
CN106294477A (zh) | 一种数据处理方法和装置 | |
CN102479211A (zh) | 基于数据库的海量数据处理系统及方法 | |
CN101765130A (zh) | 多载波系统中的小区测量方法和装置 | |
CN104977978B (zh) | 一种用于系统时钟不同步信号的采集及处理方法 | |
CN107832461A (zh) | 一种数据迁移方法及系统 | |
CN106155594A (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 |