CN103019850B - 一种任务绑定的方法和装置 - Google Patents
一种任务绑定的方法和装置 Download PDFInfo
- Publication number
- CN103019850B CN103019850B CN201110300189.2A CN201110300189A CN103019850B CN 103019850 B CN103019850 B CN 103019850B CN 201110300189 A CN201110300189 A CN 201110300189A CN 103019850 B CN103019850 B CN 103019850B
- Authority
- CN
- China
- Prior art keywords
- cpu
- task
- exclusive disjunction
- tied
- logic
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及计算机软件技术领域,尤其涉及一种任务绑定的方法和装置;用于提高逻辑CPU执行任务的工作效率,该方法包括:接收绑定命令;将特定任务绑定到排它性逻辑CPU上;所述排它性逻辑CPU仅用于执行预先指定的一个或多个特定任务,除特定任务以外的其他任务都不能够绑定在排他性逻辑CPU上,并且也不能在在排他性逻辑CPU上运行。可见,该方法能够提高逻辑CPU执行任务的工作效率,提高了系统的响应能力。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种任务绑定的方法和装置。
背景技术
随着用户需求的不断提升以及计算机硬件的飞速发展,多核系统已经随处可见,产品复杂度也越来越高,这就必然对产品的性能以及实时性提出了更高的要求。多核系统是指,将1个CPU按照功能在逻辑上分为多个逻辑CPU,使该CPU能够同时处理多个任务。例如Intel双核系统中有2个逻辑CPU,在此基础上开启超线程后,系统中就变成了4个逻辑CPU。
在一些系统中,尤其是嵌入式系统中,将某些特殊任务与逻辑CPU进行绑定,可以很好的提高系统性能和实时性。现有技术中将任务与逻辑CPU绑定的方法如下:
系统遍历所有任务,当遇到需要进行绑定的任务时,调用逻辑CPU的绑定接口,将任务与逻辑CPU进行绑定。
本发明人发现,现有技术中将任务与逻辑CPU进行绑定时,存在如下缺陷:
第一,由于现有技术中逻辑CPU绑定某一任务后,该任务还可能会被优先级高于该任务的其他任务打断,因此,现有的绑定操作不能保证某个不可被打断的任务的一直处于任务执行状态;
第二,在某种特定场合中,逻辑CPU处理任务的实时性较低;例如,当通讯设备中存在网络中断情况较多的情况时,由于逻辑CPU可随时被其他任务打断,因此,对网络收发包的实时响应能力较差,执行任务的效率较低,因此,降低了系统的响应能力;
第三、现有技术中,在执行任务绑定操作时,需要遍历所有任务,并分别对每一个任务进行绑定,这将会使得用户的可操作性很差。
发明内容
本发明实施例提供一种任务绑定的方法和装置,用于提高逻辑CPU执行任务的工作效率。
一种任务绑定的方法,所述方法包括:
接收绑定命令;
将特定任务绑定到排它性逻辑CPU上;所述排它性逻辑CPU仅用于执行预先指定的一个或多个特定任务。
一种任务绑定的装置,所述装置包括:
接收单元,用于接收绑定命令;
绑定单元,用于将特定任务绑定到预先设置的排它性逻辑CPU上;所述排它性逻辑CPU仅用于执行预先指定的一个或多个特定任务;
可见,采用本发明实施例提供的方法,可根据设备的实际运行情况,将某些任务作为特定任务,并为这些特定任务分配指定的排它性逻辑CPU,该排它性逻辑CPU仅可用于执行指定的特定任务,对于其他任务不予以响应,因此,该方法能够提高逻辑CPU执行任务的效率,提高了系统的响应能力。
附图说明
图1为本发明实施例提供的任务绑定的方法的流程示意图;
图2为本发明实施例一提供的任务绑定的方法的流程示意图;
图3为本发明实施例二提供的任务绑定的方法的流程示意图;
图4为本发明实施例提供的任务绑定装置的结构示意图。
具体实施方式
本发明实施例提供一种任务绑定的方法及装置,可根据设备的实际运行情况,将某些任务作为特定任务,并为这些特定任务分配指定的排它性逻辑CPU,该排它性逻辑CPU仅可用于执行指定的特定任务,对于其他任务不予以响应,因此,该方法能够提高逻辑CPU执行任务的效率,提高了系统的响应能力。如图1所示,包括如下步骤:
步骤11,接收绑定命令;
步骤12,将特定任务绑定到排它性逻辑CPU上;排它性逻辑CPU仅用于执行预先指定的一个或多个特定任务;
具体的,本方法包括以下两种实施方式:
第一种:较佳的,该方法具体包括:
接收绑定命令,将当前状态为未绑定状态的各任务,绑定到设置的非排它性逻辑CPU上;非排它性逻辑CPU用于执行任意任务;将所述特定任务绑定到排它性逻辑CPU上;
较佳的,为了保证可实施性,在将当前状态为未绑定状态的各任务绑定到设置的非排它性逻辑CPU之前,本方法还进一步包括:
判断用户设置的排它性逻辑CPU的个数是否大于系统中的逻辑CPU的总个数;此时,将当前状态为未绑定状态的各任务,绑定到设置的非排它性逻辑CPU上的方法包括:
仅当排它性逻辑CPU的个数不大于系统中的逻辑CPU的总个数时,将当前状态为未绑定状态的各任务,绑定到非排它性逻辑CPU上上。
第二种:具体的,在将特定任务绑定到排它性逻辑CPU之后,本方法进一步包括:
将状态为未绑定状态的非特定任务绑定到非排它性逻辑CPU上;非排它性逻辑CPU用于执行任意任务;
较佳的,为了保证可实施性,在将特定任务绑定到预先设置的排它性逻辑CPU之前,还包括:
判断用户设置的排它性逻辑CPU的个数是否大于系统中的逻辑CPU的总个数;此时,将特定任务绑定到预先设置的排它性逻辑CPU上的方法为:
仅当排它性逻辑CPU的个数不大于系统中的逻辑CPU的总个数时,将特定任务绑定到预先设置的排它性逻辑CPU上;
较佳的,本方法还包括,当接收到的命令为取消绑定命令时,将绑定在设置的非排它性逻辑CPU上的任务的状态设置为未绑定状态
以下以具体实施例进行介绍:
实施例一:
本发明实施例一提供第一种任务绑定方法,本方法以设备所带系统为Linux系统,且该设备主要用于处理网络中断为例,因此,该设备需要1个或多个逻辑CPU专门处理网络收发包的任务,即特定任务;如图2所示,该方法包括:
步骤21,将该系统的逻辑CPU分为排它性逻辑CPU和非排它性逻辑CPU,排它性逻辑CPU仅用于执行预先指定的一个或多个特定任务;非排它性逻辑CPU用于执行任意任务;
步骤22,判断预先设置的排它性逻辑CPU的个数是否大于系统中的逻辑CPU的总个数;若不大于,执行步骤23;否则结束操作;
步骤23,将所有状态为未绑定状态的任务绑定到非排它性逻辑CPU上;并设置任务的状态为特殊绑定状态;
步骤24,将特定任务绑定到排它性逻辑CPU上;特定任务为系统中所执行的所有任务中的部分任务;
步骤25,非排它性逻辑CPU与排它性逻辑CPU分别执行各自的绑定任务。
实施例二:
本发明实施例二提供第二种任务绑定方法,本方法以设备所带系统为Linux系统,且该设备主要用于处理网络中断,因此,需要1个或多个CPU专门处理网络收发包的任务,即特定任务;如图3所示,该方法包括:
步骤31,将该系统的逻辑CPU分为排它性逻辑CPU和非排它性逻辑CPU,排它性逻辑CPU仅用于执行预先指定的一个或多个特定任务;非排它性逻辑CPU用于执行任意任务;
步骤32,判断预先设置的排它性逻辑CPU的个数是否大于系统中的逻辑CPU的总个数;若不大于,执行步骤33;否则结束操作;
步骤33,将特定任务绑定到排它性逻辑CPU上,将特定任务的状态设置为绑定状态;
较佳的,本步骤可在接收到绑定命令后执行;
步骤34,将状态为未绑定状态的非特定任务绑定到非排它性逻辑CPU上,并设置任务的状态为特殊绑定状态;
步骤35,非排它性逻辑CPU与排它性逻辑CPU分别执行各自的绑定任务。
较佳的,在上述实施例中,在设置好排它性逻辑CPU后,系统可自动将其他状态为未绑定状态的任务绑定到非排它性逻辑CPU上,此过程称为反向绑定,即上述实施例中的特殊绑定状态;
较佳的,上述实施例中,可设置排它性逻辑CPU集合和非排它性逻辑CPU集合,集合中逻辑CPU的个数可根据实际需要设置;并将特定任务绑定到排它性逻辑CPU集合上,将其他状态为未绑定状态的任务绑定到非排它性逻辑CPU集合上;
较佳的,上述实施例中,当设置好排它性逻辑CPU后,系统可根据绑定情况自动设置每一个任务的反向绑定状态信息,在接收到取消绑定命令后,可根据该反向绑定状态信息将将绑定在非排它性逻辑CPU上的任务还原为排它绑定操作前的状态,即将绑定在非排它性逻辑CPU上的任务的状态设置为未绑定状态;排它绑定操作是指设置排它性逻辑CPU或排它性逻辑CPU集合,并将任务绑定到排它性逻辑CPU或排它性逻辑CPU集合上,且将状态为未绑定状态的任务绑定到非排它性逻辑CPU或非排它性逻辑CPU集合上的操作。
具体的,上述实施例中,在基于Linux系统的情况下,用户可通过“/proc/exclusive_cpus”接口设置和查看排它性逻辑CPU;可通过“echo 0x3>/proc/exclusive_cpus”命令执行排它性操作;通过“echo 0x0>/proc/exclusive_cpus”取消排它性操作。
如图4所示,一种任务绑定的装置,装置包括:
接收单元42,用于接收绑定命令;
绑定单元43,用于在接收到绑定命令后,将特定任务绑定到预先设置的排它性逻辑CPU上;排它性逻辑CPU仅用于执行预先指定的一个或多个特定任务。
装置还包括:
解除绑定单元44,用于解除特定任务与设置的非排它性逻辑CPU的绑定;非排它性逻辑CPU用于执行任意任务;
绑定单元43还用于:
将状态为未绑定状态的各任务绑定到设置的非排它性逻辑CPU上;将特定任务绑定到排它性逻辑CPU上。
装置还包括:
判断单元41,用于判断用户设置的排它性逻辑CPU的个数是否大于系统中的逻辑CPU的总个数;
所述绑定单元43具体用于,当所述排它性逻辑CPU的个数不大于系统中的逻辑CPU的总个数时,将状态为未绑定状态的任务绑定到设置的非排它性逻辑CPU上;以及将特定任务绑定到排它性逻辑CPU上。
所述接收单元41还用于:
接收取消绑定命令;
所述解除绑定单元44还用于,当接收到的命令为取消绑定命令时,将绑定在所述非排它性逻辑CPU上的任务的状态还原为未绑定状态;
状态设置单元45,用于设置任务的状态。
综上所述,有益效果:
可见,采用本发明实施例提供的方法,可根据设备的实际运行情况,将某些任务作为特定任务,并为这些特定任务分配指定的排它性逻辑CPU,该排它性逻辑CPU仅可用于执行指定的特定任务,对于其他任务不予以响应,因此,该方法可提高逻辑CPU的工作效率;同时,该方法能够解决当逻辑CPU在执行某一任务时,可随时被其他任务打断的问题;当使用本发明提供的方法时,在将特定任务绑定到排它性逻辑CPU上之后,将其他任务自动绑定到非排它性逻辑CPU上,因此,可大大提高设备的响应效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种任务绑定方法,其特征在于,所述方法包括:
接收绑定命令;
将特定任务绑定到预先设置的排它性逻辑CPU上;所述排它性逻辑CPU仅用于执行预先指定的一个或多个特定任务;
其中,所述方法具体包括:
接收绑定命令,将当前状态为未绑定状态的各任务,绑定到设置的非排它性逻辑CPU上;所述非排它性逻辑CPU用于执行任意任务;
将所述特定任务绑定到排它性逻辑CPU上。
2.如权利要求1所述的方法,其特征在于,在将当前状态为未绑定状态的各任务绑定到设置的非排它性逻辑CPU之前,进一步包括:
判断用户设置的所述排它性逻辑CPU的个数是否大于系统中的逻辑CPU的总个数;
所述将当前状态为未绑定状态的各任务,绑定到设置的非排它性逻辑CPU上,包括:
仅当排它性逻辑CPU的个数不大于系统中的逻辑CPU的总个数时,将当前状态为未绑定状态的各任务,绑定到非排它性逻辑CPU上。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到的命令为取消绑定命令时,将绑定在设置的非排它性逻辑CPU上的任务的状态还原为未绑定状态。
4.如权利要求1所述的方法,其特征在于,在将特定任务绑定到预先设置的排它性逻辑CPU之后,进一步包括:
将状态为未绑定状态的非特定任务绑定到预先设置的非排它性逻辑CPU上;所述非排它性逻辑CPU用于执行任意任务。
5.如权利要求4所述的方法,其特征在于,在将特定任务绑定到预先设置的排它性逻辑CPU之前,进一步包括:
判断用户设置的所述排它性逻辑CPU的个数是否大于系统中的逻辑CPU的总个数;
所述将特定任务绑定到预先设置的排它性逻辑CPU上,包括:
仅当排它性逻辑CPU的个数不大于系统中的逻辑CPU的总个数时,将特定任务绑定到预先设置的排它性逻辑CPU上。
6.一种任务绑定的装置,其特征在于,所述装置包括:
接收单元,用于接收绑定命令;
绑定单元,用于将特定任务绑定到预先设置的排它性逻辑CPU上;所述排它性逻辑CPU仅用于执行预先指定的一个或多个特定任务;
其中,所述绑定单元还用于:
将状态为未绑定状态的各任务绑定到设置的非排它性逻辑CPU上;将所述特定任务绑定到排它性逻辑CPU上。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
判断单元,用于判断用户设置的所述排它性逻辑CPU的个数是否大于系统中的逻辑CPU的总个数;
所述绑定单元具体用于,当所述排它性逻辑CPU的个数不大于系统中的逻辑CPU的总个数时,将状态为未绑定状态的任务绑定到设置的非排它性逻辑CPU上;以及将特定任务绑定到排它性逻辑CPU上。
8.如权利要求6所述的装置,其特征在于,所述装置还包括解除绑定单元,其中,
所述接收单元还用于:接收取消绑定命令;
所述解除绑定单元用于,当接收到的命令为取消绑定命令时,将绑定在所述非排它性逻辑CPU上的任务的状态还原为未绑定状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110300189.2A CN103019850B (zh) | 2011-09-28 | 2011-09-28 | 一种任务绑定的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110300189.2A CN103019850B (zh) | 2011-09-28 | 2011-09-28 | 一种任务绑定的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019850A CN103019850A (zh) | 2013-04-03 |
CN103019850B true CN103019850B (zh) | 2019-02-12 |
Family
ID=47968481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110300189.2A Active CN103019850B (zh) | 2011-09-28 | 2011-09-28 | 一种任务绑定的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019850B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10248459B2 (en) * | 2016-03-15 | 2019-04-02 | Microsoft Technology Licensing, Llc | Operating system support for game mode |
CN111488210B (zh) * | 2020-04-02 | 2023-04-07 | 腾讯科技(深圳)有限公司 | 基于云计算的任务调度方法、装置和计算机设备 |
CN112667380A (zh) * | 2020-12-30 | 2021-04-16 | 珠海亿智电子科技有限公司 | 多处理器任务调度方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246438A (zh) * | 2008-03-07 | 2008-08-20 | 中兴通讯股份有限公司 | 一种对称多处理系统中进程与中断的处理方法及装置 |
CN101788920A (zh) * | 2010-02-05 | 2010-07-28 | 北京航空航天大学 | 一种基于处理器分区技术的cpu虚拟化方法 |
CN101901167A (zh) * | 2010-07-22 | 2010-12-01 | 网御神州科技(北京)有限公司 | 一种多cpu架构下的多网络安全审计方法和系统 |
CN101976201A (zh) * | 2010-10-22 | 2011-02-16 | 北京航空航天大学 | 基于cpu亲和力的虚拟cpu动态绑定方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050246461A1 (en) * | 2004-04-29 | 2005-11-03 | International Business Machines Corporation | Scheduling threads in a multi-processor computer |
CN101477477B (zh) * | 2009-01-12 | 2012-01-11 | 华为技术有限公司 | 内核空间隔离方法、空间管理实体及系统 |
-
2011
- 2011-09-28 CN CN201110300189.2A patent/CN103019850B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246438A (zh) * | 2008-03-07 | 2008-08-20 | 中兴通讯股份有限公司 | 一种对称多处理系统中进程与中断的处理方法及装置 |
CN101788920A (zh) * | 2010-02-05 | 2010-07-28 | 北京航空航天大学 | 一种基于处理器分区技术的cpu虚拟化方法 |
CN101901167A (zh) * | 2010-07-22 | 2010-12-01 | 网御神州科技(北京)有限公司 | 一种多cpu架构下的多网络安全审计方法和系统 |
CN101976201A (zh) * | 2010-10-22 | 2011-02-16 | 北京航空航天大学 | 基于cpu亲和力的虚拟cpu动态绑定方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103019850A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102779075A (zh) | 一种在多处理器核系统中进行调度的方法、装置及系统 | |
CN103309738B (zh) | 用户作业调度方法及装置 | |
CN102541640B (zh) | 一种集群gpu资源调度系统和方法 | |
CN103885831B (zh) | 虚拟机宿主机的选择方法与装置 | |
CN108345502A (zh) | 基于dpdk的资源调度方法、装置、终端设备及可读存储介质 | |
CN111210136B (zh) | 一种机器人任务调度的方法及服务器 | |
JP2014516192A5 (zh) | ||
CN101751289A (zh) | 一种嵌入式实时操作系统的混合调度方法 | |
CN107046508A (zh) | 报文接收方法及网络设备 | |
CN105653401B (zh) | 应用系统灾备、运维、监控和应急启停调度方法及装置 | |
CN103365726A (zh) | 一种面向gpu集群的资源管理方法和系统 | |
CN103365718A (zh) | 一种线程调度方法、线程调度装置及多核处理器系统 | |
CN103019850B (zh) | 一种任务绑定的方法和装置 | |
CN103294558B (zh) | 一种支持动态信任评估的MapReduce调度方法 | |
CN104536804A (zh) | 面向关联任务请求的虚拟资源调度系统及调度和分配方法 | |
CN107577539A (zh) | 用于内核态和用户态通讯的共享内存结构及其应用 | |
CN109379303A (zh) | 基于提升万兆以太网性能的并行化处理框架系统和方法 | |
CN105808346B (zh) | 一种任务调度方法与装置 | |
CN109445921A (zh) | 一种分布式数据任务处理方法及装置 | |
CN103823706A (zh) | 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 | |
CN101976204B (zh) | 面向服务的异构多核计算平台及其使用的任务调度方法 | |
CN103548324A (zh) | 虚拟机分配方法和虚拟机分配装置 | |
CN113626173B (zh) | 调度方法、装置及存储介质 | |
CN105975346B (zh) | 调度线程资源的方法、装置及系统 | |
CN110837415B (zh) | 一种基于risc-v多核处理器的线程调度方法和装置 |
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 |