CN105874426B - 一种系统调用命令的批处理方法及装置 - Google Patents
一种系统调用命令的批处理方法及装置 Download PDFInfo
- Publication number
- CN105874426B CN105874426B CN201480045111.2A CN201480045111A CN105874426B CN 105874426 B CN105874426 B CN 105874426B CN 201480045111 A CN201480045111 A CN 201480045111A CN 105874426 B CN105874426 B CN 105874426B
- Authority
- CN
- China
- Prior art keywords
- system call
- cpu core
- task
- call command
- command
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000012163 sequencing technique Methods 0.000 claims abstract description 35
- 238000000034 method Methods 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 22
- 238000010586 diagram Methods 0.000 description 9
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000000926 separation 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/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
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/44—Arrangements for executing specific programs
-
- 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
-
- 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
-
- 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
- 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/5033—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 data affinity
-
- 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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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
-
- 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/466—Transaction processing
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种系统调用命令的批处理方法及装置,涉及计算机领域,能够将相同类型的系统调用命令按照进入内核的先后顺序在同一个CPU核上处理,从而保证系统调用命令的返回结果有序。该系统调用命令的批处理方法包括:获得多个系统调用命令,多个系统调用命令为需要调用内核函数的命令;根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识;按照获得多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种系统调用命令的批处理方法及装置。
背景技术
为了保证操作系统内核的安全性,用户程序可以通过系统调用命令获得操作系统内核提供的服务,如用户程序可以通过与文件系统相关的系统调用命令打开文件、关闭文件或读写文件等。其中,用户程序的请求通过系统调用命令在内核中完成,并将处理结果返回给用户程序。内核指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。
由于传统的Linux系统存在频繁的上下文切换,导致系统调用上下文切换开销较大,系统工作效率低,为了解决传统Linux系统调用的问题,现有技术提出对系统调用命令采用批处理的方法,其中,系统调用上下文切换开销包括保存当前任务的运行环境和恢复将要运行的任务的运行环境,一个系统调用任务包括多个系统调用命令。具体的,在内核中设置系统调用命令的批处理缓存表,将多个系统调用命令按照进入内核的顺序分发到不同的CPU核并发执行,然后将处理结果返回给用户程序,从而可以节省传统系统调用带来的上下文切换开销。
然而,现有技术中提出的系统调用命令的批处理方法将多个系统调用命令分发到不同的CPU核处理时,由于一个系统调用任务的各个系统调用命令可能被分发到不同的CPU核进行处理,导致系统调用任务的返回结果乱序,比如:一个系统调用任务的多个系统调用命令进入内核的先后顺序为系统调用命令1、系统调用命令2和系统调用命令3,操作系统将这3个系统调用命令随机调度给3个CPU核进行处理,由于上述三个系统调用命令分别在3个CPU核中进行处理的速度不同,该系统调用任务的返回结果可能不是按照系统调用命令进入内核的先后顺序返回的,导致该系统调用任务的返回结果乱序。
发明内容
本发明的实施例提供一种系统调用命令的批处理方法及装置,能够对多个系统调用命令进行分类,并按照系统调用命令进入内核的顺序将相同类型的各个系统调用命令分发给同一个CPU核进行处理,从而使得相同类型的系统调用命令在同一个CPU核上处理,保证系统调用任务的返回结果有序。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种系统调用命令的批处理方法,所述方法应用于包括多个中央处理单元CPU核的多核系统中,所述方法包括:
获得多个系统调用命令,所述多个系统调用命令为需要调用内核函数的命令;
根据所述多个系统调用命令的任务标识,对所述多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识;
按照获得所述多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
结合第一方面,在第一方面的第一种可能的实现方式中,在根据所述多个系统调用命令的任务标识,对所述多个系统调用命令进行分类之后,所述方法还包括:
获取由第一CPU核处理的每一个系统调用命令的调用次数,其中,第一CPU核为所述多个CPU核中的任意一个CPU核,所述每一个系统调用命令的调用次数为所述每一个系统调用命令在所述多核系统中的执行次数;
根据所述第一CPU核处理的每一个系统调用命令的调用次数,确定每一个系统调用任务的优先级,其中,所述第一CPU核至少处理两个不同类型的系统调用任务,不同类型的系统调用任务具有不同的任务标识,每一个所述系统调用任务由多个具有相同任务标识的系统调用命令组成;
所述按照获得所述多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理包括:
按照确定的所述每一个系统调用任务的优先级,将不同类型的系统调用任务按照优先级顺序分别发送给所述第一CPU核进行处理,其中,组成每一个系统调用任务的多个系统调用命令按照获得的先后顺序分别被发送给所述第一CPU核。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述多核系统内存储有系统调用知识库,所述系统调用知识库包括所述多核系统处理过的每一个系统调用命令的调用次数;
所述获取由第一CPU核处理的每一个系统调用命令的调用次数包括:
根据所述系统调用知识库中记录的由第一CPU核处理的每一个系统调用命令的调用次数与1的和获得上述第一CPU核处理的每一个系统调用命令的当前调用次数。
结合第一方面或者第一方面的第一种可能的实现方式中,在第一方面的第三种可能的实现方式中,所述对所述多个系统调用命令进行分类之后,所述方法还包括:
为每一类型的系统调用命令分配CPU核;
所述将同一类型的系统调用命令发送给同一个CPU核进行处理具体包括:
获取第一类型的系统调用命令的第一CPU核标识,其中,所述第一类型为对所述多个系统调用命令进行分类后确定的任意一个类型;
按照所述第一CPU核标识,将所述第一类型的系统调用命令发送给所述第一CPU核进行处理。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述为每一类型的系统调用命令分配CPU核包括:
获取所述第一类型的系统调用命令的第一任务标识;
确定第二系统调用命令的任务标识与所述第一任务标识相同,其中,所述第二系统调用命令为已发送给所述第一CPU核处理的系统调用任务中的任意一个命令;
为所述第一类型的系统调用命令分配所述第一CPU核。
第二方面,本发明实施例提供一种系统调用命令的批处理装置,所述装置包括多个中央处理单元CPU核,所述装置包括:
获取模块,用于获得多个系统调用命令,所述多个系统调用命令为需要调用内核函数的命令;
分类模块,用于根据所述多个系统调用命令的任务标识,对所述多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识;
发送模块,用于按照获得所述多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
结合第二方面,在第二方面的第一种可能的实现方式中,
所述获取模块,还用于获取由第一CPU核处理的每一个系统调用命令的调用次数,其中,第一CPU核为所述多个CPU核中的任意一个CPU核,所述每一个系统调用命令的调用次数为所述每一个系统调用命令在所述多核系统中的执行次数;
所述装置还包括:确定模块,用于根据所述第一CPU核处理的每一个系统调用命令的调用次数,确定每一个系统调用任务的优先级,其中,所述第一CPU核至少处理两个不同类型的系统调用任务,不同类型的系统调用任务具有不同的任务标识,每一个所述系统调用任务由多个具有相同任务标识的系统调用命令组成;
所述发送模块,具体用于按照确定的所述每一个系统调用任务的优先级,将不同类型的系统调用任务按照优先级顺序分别发送给所述第一CPU核进行处理,其中,组成每一个系统调用任务的多个系统调用命令按照获得的先后顺序分别被发送给所述第一CPU核。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述装置还包括:
存储模块,用于存储所述系统调用知识库,所述系统调用知识库包括所述多核系统处理过的每一个系统调用命令的调用次数;
所述获取模块,具体用于根据所述系统调用知识库中记录的由第一CPU核处理的每一个系统调用命令的调用次数与1的和获得所述第一CPU核处理的每一个系统调用命令的当前调用次数。
结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置还包括:
分配模块,用于为每一类型的系统调用命令分配CPU核;
所述发送模块,具体用于获取第一类型的系统调用命令的第一CPU核标识,其中,所述第一类型为对所述多个系统调用命令进行分类后确定的任意一个类型;按照所述第一CPU核标识,将所述第一类型的系统调用命令发送给所述第一CPU核进行处理。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,
所述分配模块,具体用于获取所述第一类型的系统调用命令的第一任务标识;确定第二系统调用命令的任务标识与所述第一任务标识相同,其中,所述第二系统调用命令为已发送给所述第一CPU核处理的系统调用任务中的任意一个命令;为所述第一类型的系统调用命令分配所述第一CPU核。
本发明实施例提供一种系统调用命令的批处理方法及装置,所述方法应用于包括多个CPU核的多核系统中,该方法包括:获得多个系统调用命令,多个系统调用命令为需要调用内核函数的命令;根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识;按照获得多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
基于上述实施例的描述,根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,并且将同一类型的系统调用命令发送给同一个CPU核进行处理,保证了具有相同任务标识的一类系统调用命令在同一个CPU核上处理。并且由于组成一个系统调用任务的多个系统调用命令的任务标识是相同的,且多个系统调用命令是按照获得系统调用命令的先后顺序发送至同一个CPU核进行处理的,因此使得同一类型系统调用命令的返回结果有序。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例的附图。
图1为本发明实施例提供的一种系统调用命令的批处理方法的流程示意图一;
图2为本发明实施例提供的一种系统调用命令的批处理方法的流程示意图二;
图3为本发明实施例提供的一种系统调用命令的批处理装置的结构示意图一;
图4为本发明实施例提供的一种系统调用命令的批处理装置的结构示意图二;
图5为本发明实施例提供的一种系统调用命令的批处理装置的结构示意图三;
图6为本发明实施例提供的一种系统调用命令的批处理装置的结构示意图四。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
实施例一
本发明实施例提供一种系统调用命令的批处理方法,应用于包括多个CPU核的多核系统中,多个CPU核并行处理各个系统调用命令。如图1所示,为该系统调用命令的批处理方法的流程示意图,该方法可以由多核系统中的系统调用命令的批处理装置来执行,其中,系统调用命令的批处理装置可以是多核系统中的控制器。该方法可以包括:
S101、获得多个系统调用命令,多个系统调用命令为需要调用内核函数的命令。
内核函数是指位于操作系统内部且只能在内核态下使用的函数,内核函数的存在是为了对操作系统进行保护,使用户空间和内核空间分离开。
具体的,当系统调用命令进入内核时,系统调用命令的批处理装置按照系统调用命令进入内核的顺序将系统调用命令缓存在系统调用缓存表中,同时,将与该系统调用命令相关的各个参数也缓存在系统调用缓存表中,其中,与系统调用命令相关的参数包括:系统调用命令的任务标识、系统调用命令所调用的内核函数的系统调用号、完成该系统调用命令所需的变量参数等。
可选的,系统调用命令的批处理装置可以周期性的对系统调用缓存表中的多个系统调用命令进行批处理。系统调用命令的批处理装置将系统调用缓存表中的系统调用命令处理完后,会对系统调用缓存表进行清空,然后缓存下一轮需要批处理的系统调用命令。该系统调用缓存表存放在内核地址空间内。
当系统调用缓存表为空时,系统调用线程空转,即系统调用线程执行一个空语句。系统调用线程是用来将系统调用缓存表中的系统调用命令调度到CPU核进行处理的控制程序。
S102、根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识。
在对系统调用命令进行批处理之前,系统调用命令的批处理装置会对系统调用缓存表中的多个系统调用命令根据系统调用命令的任务标识进行分类。其中,同一任务类型的系统调用命令具有相同的任务标识。
需要说明的是,一个系统调用任务包括多个系统调用命令,一个系统调用任务包括的多个系统调用命令具有相同的任务标识。
还需要说明的是,每一个系统调用命令都有唯一的编号,即系统调用号,系统调用号是操作系统为每个系统调用命令定义的唯一的编号,内核中存储有系统调用表,该表中保存了操作系统提供的所有系统调用命令的系统调用号和其对应的内核函数的入口地址。
S103、按照获得多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
具体的,以用户程序要完成读取内存中的某个文件的任务为例进行说明:在执行该任务时,用户程序调用了两个系统调用命令:打开命令和读取命令,这两个系统调用命令具有相同的任务标识,并且打开命令先进入内核,读取命令再进入内核,则系统调用命令的批处理装置按照系统调用命令进入内核的顺序,将其发送给同一个CPU核进行处理,从而使得具有相同任务标识的系统调用命令按照进入内核的先后顺序,在同一个CPU核中执行,保证具有相同任务标识的各个系统调用命令的返回结果有序。
一般情况下,不同任务类型的系统调用命令的个数总是多于CPU核的个数,因此,多个不同任务类型的系统调用命令可能在同一个CPU核上处理,则CPU核处理完一个任务类型的各个系统调用命令后,才会处理下一个任务类型的各个系统调用命令。
本发明实施例提供了一种系统调用命令的批处理方法,该方法应用于包括多个CPU核的多核系统中,包括:系统调用命令的批处理装置获得多个系统调用命令,多个系统调用命令为需要调用内核函数的命令;根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识;按照获得多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
基于上述实施例的描述,系统调用命令的批处理装置根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,并且将同一类型的系统调用命令发送给同一个CPU核进行处理,保证了具有相同任务标识的一类系统调用命令在同一个CPU核上处理。并且由于组成一个系统调用任务的多个系统调用命令的任务标识是相同的,且多个系统调用命令是按照获得系统调用命令的先后顺序发送至同一个CPU核进行处理的,因此使得同一类型系统调用命令的返回结果有序。
实施例二
本发明实施例提供一种系统调用命令的批处理方法,应用于包括多个CPU核的多核系统中,多个CPU核并行处理各个系统调用命令。如图2所示为该系统调用命令的批处理方法的流程示意图,包括:
S201、获得多个系统调用命令,多个系统调用命令为需要调用内核函数的命令。
具体的,系统调用命令进入内核后,系统调用命令的批处理装置按照系统调用命令进入内核的先后顺序将系统调用命令缓存在系统调用缓存表中,经过预设时间后对多个系统调用命令进行批处理。
S202、根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识。
在现有技术中,同一类型的系统调用命令可能会被分到不同的CPU核进行处理,从而导致同一类型的系统调用命令的返回结果乱序,甚至出现错误。
本发明技术方案中,系统调用命令的批处理装置通过对缓存在系统调用缓存表中的多个系统调用命令按照任务标识进行分类,并将同一类型的系统调用命令按照进入内核的先后顺序,分给相同的CPU核进行处理,从而保证具有相同任务标识的多个系统调用命令在同一个CPU核上处理,使得同一类型的多个系统调命令的返回结果有序。
S203、为每一类型的系统调用命令分配CPU核。
具体的,系统调用命令的批处理装置按照多个系统调用命令的任务标识对多个系统调用命令进行分类之后,还会为每一类型的系统调用命令分配一个相同的CPU核。
将同一类型的系统调用命令分给相同的CPU核进行处理是指为同一类型的系统调用命令分配一个相同的CPU核标识,其中,CPU核标识用于唯一指示一个CPU核,存在于多核系统中的多个CPU核具有不同的CPU核标识。
示例性的,系统调用缓存表中有两种任务类型的系统调用命令,则对其分类后的结果如表1所示:
表1
… | task_ID1 | command1 | … | core1 |
… | task_ID1 | command2 | … | core1 |
… | task_ID2 | command3 | … | core2 |
… | task_ID2 | command4 | … | core2 |
… | task_ID2 | command5 | … | core2 |
其中,task_ID1和task_ID2为系统调用命令的任务标识,command1、command2…command5为不同的系统调用命令的标识,core1和core2表示CPU核的核标识。
由表1可知,具有任务标识task_ID1的两个系统调用命令command1和command2被分配给CPU核core1处理,具有任务标识task_ID2的三个系统调用命令command3、command4和command5被分配给CPU核core2进行处理。
具体的S203包括S203a-S203c。
S203a、获取第一类型的系统调用命令的第一任务标识。
第一类型的系统调用命令为多个系统调用命令进行分类后确定的任意一个类型。
S203b、确定第二系统调用命令的任务标识与第一任务标识相同。
其中,第二系统调用命令为已发送给第一CPU核处理的系统调用任务中的任意一个命令。第一CPU核为多个CPU核中的任意一个CPU核。
如果第二系统调用命令的任务标识与第一任务标识相同,则说明第一类型的系统调用命令与第二系统调用命令具有相同的任务标识,为同一类型的系统调用命令。因此,它们应分配给同一个CPU核进行处理。
S203c、为第一类型的系统调用命令分配第一CPU核。
以表1中的系统调用命令分类过程为例,第一个进入内核的系统调用命令是command1,它的任务标识是task_ID1,为其随机分配第一CPU核的核标识core1,第二个进入内核的系统调用命令是command2,获取command2的任务标识task_ID1,确定command2和command1的任务标识task_ID1相同,则为系统调用命令command2也分配第一CPU核的核标识core1。
需要说明的是,S203a-S203c可以保证将具有相同任务标识的系统调用命令分配给同一个CPU核处理。在实际情况中,系统调用命令的类型往往大于内核中CPU核的个数,所以,在为每一类型的系统调用命令分配CPU核时,可能将不同类型的系统调用命令分配给同一个CPU核进行处理,在这种情况下,CPU核是在执行完一个类型的所有系统调用命令后,才会开始执行下一个类型的系统调用命令。
S204、根据系统调用知识库中记录的由第一CPU核处理的每一个系统调用命令的调用次数与1的和获得第一CPU核处理的每一个系统调用命令的当前调用次数。
其中,第一CPU核为多个CPU核中的任意一个CPU核。
需要说明的是,系统调用知识库存储在内核中,保存了多核系统处理过的所有系统调用命令的调用次数,并且同一类任务下的多个系统调用命令具有相同的调用次数,该调用次数可以作为此类多个系统调用命令所属的系统调用任务优先级的依据。
其中,系统调用知识库中保存的系统调用命令的调用次数是指该系统调用命令在多核系统中的执行次数。
在获取由第一CPU核处理的每一个系统调用命令的调用次数时,若在系统调用知识库中存在对应的系统调用命令,则对相应的系统调用命令的调用次数进行更新;若在系统调用知识库中不存在对应的系统调用命令,则说明该系统调用命令从未在该多核系统中调用过,对系统调用知识库添加一项对应的系统调用命令,并根据本次该系统调用命令的调用次数对其进行更新。
具体的,系统调用命令的批处理装置在对系统调用知识库中对应的系统调用命令进行更新时,如果有完全相同的两个系统调用命令,则对系统调用知识库中该系统调用命令进行两次加一操作。
系统调用命令的批处理装置获取由第一CPU核处理的每一个系统调用命令的调用次数,用其指示系统调用命令所属的系统调用任务的优先级。
需要补充的是,同一类型的各个系统调用命令的调用次数是相同的,可以理解的是,相同类型的所有系统调用命令的依次全部执行,才能完成用户的一次系统调用任务。例如,用户程序要完成读磁盘文件的任务,则该系统调用任务包括两个具有相同任务标识的系统调用命令,打开命令和读取命令,则依次执行这两个命令才能完成用户程序的系统调用任务,所以,同一类型的多个系统调用命令的调用次数是相同的。
S205、根据第一CPU核处理的每一个系统调用命令的调用次数,确定每一个系统调用任务的优先级。
其中,第一CPU核至少处理两个不同类型的系统调用任务,不同类型的系统调用任务具有不同的任务标识,每一个系统调用任务由多个具有相同任务标识的系统调用命令组成。每一个系统调用命令的调用次数为每一个系统调用命令在多核系统中的执行次数。可以理解的是,系统调用命令的调用次数越多,则其所对应的系统调用任务的优先级越高。
S206、按照确定的每一个系统调用任务的优先级,将不同类型的系统调用任务按照优先级顺序分别发送给第一CPU核进行处理。
其中,组成每一个系统调用任务的多个系统调用命令按照获得系统调用命令的先后顺序分别被发送给第一CPU核。
具体的S206包括:S206a和S206b。
S206a、获取第一类型的系统调用命令的第一CPU核标识,其中,第一类型为对多个系统调用命令进行分类后确定的任意一个类型。
S206b、按照第一CPU核标识,将第一类型的系统调用命令发送给第一CPU核进行处理。
当系统调用命令的批处理装置为第一CPU分配了两种或者两种以上不同类型的系统调用任务时,可以按照每个系统调用任务的调用次数为每个系统调用任务确定优先级。同一类型的多个系统调用命令的调用次数用于指示该类系统调用任务的调用次数,调用次数越多的系统调用命令所属的系统调用任务的调用次数也越多,则为该类系统调用任务分配较高的优先级,在第一CPU核中优先处理该类系统调用任务的各个系统调用命令。
S204-S206为系统调用命令的批处理装置对各个类型的系统调用任务按照优先级顺序进行处理时需要的步骤,如果不用按照优先级顺序处理各个系统调用任务,则系统调用命令的批处理装置将各个类型的系统调用任务按照进入内核的先后顺序依次调度给分配的CPU核进行处理。
本发明实施例提供的确定优先级的方案仅仅是一种可选的方案,对各个不同类型的系统调用任务的优先级的确定还可以采用现有技术中的方法进行。例如,现有技术可以预先设置默认的优先级,将其作为处理各个系统调用任务先后顺序的指示。
下面以本发明实施例所提供的确定优先级的方案对本方案的完整执行进行说明:
示例性的,系统调用缓存表的形式可以如表2所示。
表2
system call | task_ID | command | argument | status | coreid | … |
… | … | … | … | … | … | … |
一般的,系统调用缓存表中的各个系统调用命令可以有如表2所示的各个标识位,其中,系统调用号(syscall number)表示不同系统调用命令对应的系统调用号,每个系统调用命令具有唯一的系统调用号,命令类型(command)表示系统调用命令的命令类型,该命令类型与系统调用命令的命令行相关,变量(argument)表示完成系统调用命令所需的各个参数,状态位(status)表示当前系统调用命令处理的状态,可以表示当前系统调用是否已处理,CPU核标识(coreid)表示系统调用命令被分配到某个CPU核进行处理的标识。
当系统调用命令进入内核时,系统调用命令的批处理装置将各个系统调用命令按照进入内核的先后顺序缓存在系统调用缓存表中,假设系统调用缓存表中缓存了12个系统调用命令,且该多核系统中有两个CPU核可用,系统调用缓存表如表3所示,则按照系统调用命令的任务标识对12个系统调用命令进行分类后的结果如表3所示。
表3
具体的,系统调用命令进入内核的顺序为系统调用缓存表中的缓存顺序,由表3可以看出,系统调用命令的批处理装置对系统调用缓存表中的12个系统调用命令按照任务标识task_ID进行分类,并为相同类型的系统调用命令分配同一个CPU核标识。
首先,系统调用命令command1、command2和command3具有相同的任务标识task_ID1,因此,这三个系统调用命令为相同的任务类型(称为任务一),为它们分配第一CPU核标识coreid1;系统调用命令command4、command5、command6和command7具有相同的任务标识task_ID2,因此,这四个系统调用命令为相同的任务类型(称为任务二),为它们分配第二CPU核标识coreid2,再对接下来的系统调用命令command1、command2和command3进行分类,因为它们的任务标识与任务一的任务标识相同,则为它们分配与任务一相同的CPU核,即coreid1;最后的两个系统调用命令command8和command9具有相同的任务标识task_ID3,因此,这两个系统调用命令为相同的任务类型(称为任务三)与之前的各个系统调用命令的任务都不同,理论上应为任务三分配一个空闲的CPU核,但是由于CPU核个数的限制,将任务三与任务二分配在同一个CPU核中处理,因此为该任务分配与任务二相同的CPU核标识coreid2。
在系统调用命令的批处理装置将系统调用命令调度到CPU核上进行处理之前,系统调用命令的批处理装置需要对系统调用知识库中的相应的系统调用命令的调用次数进行更新。
示例性的,假设系统调用知识库更新前如表4所示:
表4
对系统调用知识库进行更新的过程:系统调用命令的批处理装置获取由第一CPU核处理的每一个系统调用命令的调用次数,分别对由第一CPU核处理的每一个系统调用命令的调用次数加一,结合表3中由第一CPU核处理的各个系统调用命令对系统调用知识库中的调用次数count进行更新后的结果如表5所示:
表5
system call | task_ID | command | count | … |
1 | task_ID1 | command1 | 202 | … |
2 | task_ID1 | command2 | 202 | … |
3 | task_ID1 | command3 | 202 | … |
4 | task_ID2 | command4 | 100 | … |
5 | task_ID2 | command5 | 100 | … |
6 | task_ID2 | command6 | 100 | … |
7 | task_ID2 | command7 | 100 | … |
需要说明的是,第一CPU核和第二CPU核是同时处理各个系统调用命令的,上述对系统调用知识库的更新过程只是以第一CPU核为例进行说明。对系统调用知识库中的调用次数count进行更新后,再获更新后的系统调用命令的调用次数。
具体的,第一CPU核和第二CPU核同时处理各个系统调用命令,并对系统调用知识库进行更新后的结果如表6所示:
表6
在本实施例中,系统调用命令的批处理装置分配给第一CPU核处理的两个系统调用任务是完全相同的两个系统调用任务,它们记录在系统调用知识库中的调用次数是相同的,则系统调用命令的批处理装置按照进入内核的先后顺序,将这两个系统调用任务依次调度给第一CPU核进行处理。
在本实施例中,系统调用命令的批处理装置分配给第二CPU和核处理的两个系统调用任务是不同类型的任务,结合表3以及表4可知,任务二记录在系统调用知识库中的调用次数大于任务三记录在系统调用知识库中的调用次数,因此,在本实施例中,可以认为任务二的优先级高于任务三的优先级。因此,系统调用命令的批处理装置先将任务二的各个系统调用命令依次调度给第二CPU核处理,等待第二CPU核将任务二中的各个系统调用命令依次处理完之后,再将任务三的各个系统调用命令依次调度给第二CPU核进行处理,从而保证具有高优先级的系统调用任务优先处理,同时将具有相同任务类型的系统调用命令调度给同一个CPU处理,使得同一个系统调用任务的返回结果有序。
本发明实施例提供了一种系统调用命令的批处理方法,该方法应用于包括多个CPU核的多核系统中,包括:系统调用命令的批处理装置获得多个系统调用命令,多个系统调用命令为需要调用内核函数的命令;根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识;按照获得多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
基于上述实施例的描述,系统调用命令的批处理装置根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,并且将同一类型的系统调用命令发送给同一个CPU核进行处理,保证了具有相同任务标识的一类系统调用命令在同一个CPU核上处理。并且由于组成一个系统调用任务的多个系统调用命令的任务标识是相同的,且多个系统调用命令是按照获得系统调用命令的先后顺序发送至同一个CPU核进行处理的,因此使得同一类型系统调用命令的返回结果有序。
实施例三
本发明实施例提供一种系统调用的批处理装置,装置包括多个CPU核,该装置的结构示意图如图3所示,包括获取模块10,分类模块11以及发送模块12。
获取模块10,用于获得多个系统调用命令,多个系统调用命令为需要调用内核函数的命令。
分类模块11,用于根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识。
发送模块12,用于按照获得多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
获取模块10,还用于获取由第一CPU核处理的每一个系统调用命令的调用次数,其中,第一CPU核为多个CPU核中的任意一个CPU核,每一个系统调用命令的调用次数为每一个系统调用命令在多核系统中的执行次数。
如图4所示,该装置还包括:
确定模块13,用于根据第一CPU核处理的每一个系统调用命令的调用次数,确定每一个系统调用任务的优先级,其中,第一CPU核至少处理两个不同类型的系统调用任务,不同类型的系统调用任务具有不同的任务标识,每一个系统调用任务由多个具有相同任务标识的系统调用命令组成。
发送模块12,具体用于按照确定的每一个系统调用任务的优先级,将不同类型的系统调用任务按照优先级顺序分别发送给第一CPU核进行处理,其中,组成每一个系统调用任务的多个系统调用命令按照获得的先后顺序分别被发送给第一CPU核。
存储模块14,用于存储系统调用知识库,系统调用知识库包括多核系统处理过的每一个系统调用命令的调用次数。
获取模块10,具体用于根据系统调用知识库中记录的由第一CPU核处理的每一个系统调用命令的调用次数与1的和获得第一CPU核处理的每一个系统调用命令的当前调用次数。
分配模块15,用于为每一类型的系统调用命令分配CPU核。
发送模块12,具体用于获取第一类型的系统调用命令的第一CPU核标识,其中,第一类型为对多个系统调用命令进行分类后确定的任意一个类型;按照第一CPU核标识,将第一类型的系统调用命令发送给第一CPU核进行处理。
分配模块15,具体用于获取第一类型的系统调用命令的第一任务标识;确定第二系统调用命令的任务标识与第一任务标识相同,其中,第二系统调用命令为已发送给第一CPU核处理的系统调用任务中的任意一个命令;为第一类型的系统调用命令分配第一CPU核。
本发明实施例提供了一种系统调用命令的批处理装置,该装置包括多个CPU核,获取模块能够获得多个系统调用命令,多个系统调用命令为需要调用内核函数的命令;分类模块根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识;按照获得多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
基于上述实施例的描述,本发明提供的系统调用命令的批处理装置,根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,并且将同一类型的系统调用命令发送给同一个CPU核进行处理,保证了具有相同任务标识的一类系统调用命令在同一个CPU核上处理。并且由于组成一个系统调用任务的多个系统调用命令的任务标识是相同的,且多个系统调用命令是按照获得系统调用命令的先后顺序发送至同一个CPU核进行处理的,因此使得同一类型系统调用命令的返回结果有序。
实施例四
本发明实施例提供一种系统调用命令的批处理装置,该装置包括多个CPU核。
如图5所示,该装置包括:
处理器20,用于获得多个系统调用命令,多个系统调用命令为需要调用内核函数的命令;根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识。
调度器21,用于按照获得多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
处理器20,还用于获取由第一CPU核处理的每一个系统调用命令的调用次数,其中,第一CPU核为多个CPU核中的任意一个CPU核,每一个系统调用命令的调用次数为每一个系统调用命令在多核系统中的执行次数;根据第一CPU核处理的每一个系统调用命令的调用次数,确定每一个系统调用任务的优先级,其中,第一CPU核至少处理两个不同类型的系统调用任务,不同类型的系统调用任务具有不同的任务标识,每一个系统调用任务由多个具有相同任务标识的系统调用命令组成。
调度器21,具体用于按照确定的每一个系统调用任务的优先级,将不同类型的系统调用任务按照优先级顺序分别发送给第一CPU核进行处理,其中,组成每一个系统调用任务的多个系统调用命令按照获得的先后顺序分别被发送给第一CPU核。
如图6所示,该装置还包括:
存储器22,用于存储系统调用知识库,系统调用知识库包括多核系统处理过的每一个系统调用命令的调用次数。
处理器20,具体用于根据系统调用知识库中记录的由第一CPU核处理的每一个系统调用命令的调用次数与1的和获得第一CPU核处理的每一个系统调用命令的当前调用次数。
处理器20,还用于为每一类型的系统调用命令分配CPU核。
调度器21,具体用于获取第一类型的系统调用命令的第一CPU核标识,其中,第一类型为对多个系统调用命令进行分类后确定的任意一个类型;按照第一CPU核标识,将第一类型的系统调用命令发送给第一CPU核进行处理。
处理器,具体用于获取第一类型的系统调用命令的第一任务标识;确定第二系统调用命令的任务标识与第一任务标识相同,其中,第二系统调用命令为已发送给第一CPU核处理的系统调用任务中的任意一个命令;为第一类型的系统调用命令分配第一CPU核。
本发明实施例提供了一种系统调用命令的批处理装置,该装置包括多个CPU核,处理器能够获得多个系统调用命令,多个系统调用命令为需要调用内核函数的命令;根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识;调度器按照获得多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
基于上述实施例的描述,本发明提供的系统调用命令的批处理装置,根据多个系统调用命令的任务标识,对多个系统调用命令进行分类,并且将同一类型的系统调用命令发送给同一个CPU核进行处理,保证了具有相同任务标识的一类系统调用命令在同一个CPU核上处理。并且由于组成一个系统调用任务的多个系统调用命令的任务标识是相同的,且多个系统调用命令是按照获得系统调用命令的先后顺序发送至同一个CPU核进行处理的,因此使得同一类型系统调用命令的返回结果有序。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理包括,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此。
Claims (10)
1.一种系统调用命令的批处理方法,所述方法应用于包括多个中央处理单元CPU核的多核系统中,其特征在于,所述方法包括:
获得多个系统调用命令,所述多个系统调用命令为需要调用内核函数的命令;
根据所述多个系统调用命令的任务标识,对所述多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识;
按照获得所述多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
2.根据权利要求1所述的方法,其特征在于,在根据所述多个系统调用命令的任务标识,对所述多个系统调用命令进行分类之后,所述方法还包括:
获取由第一CPU核处理的每一个系统调用命令的调用次数,其中,第一CPU核为所述多个CPU核中的任意一个CPU核,所述每一个系统调用命令的调用次数为所述每一个系统调用命令在所述多核系统中的执行次数;
根据所述第一CPU核处理的每一个系统调用命令的调用次数,确定每一个系统调用任务的优先级,其中,所述第一CPU核至少处理两个不同类型的系统调用任务,不同类型的系统调用任务具有不同的任务标识,每一个所述系统调用任务由多个具有相同任务标识的系统调用命令组成;
所述按照获得所述多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理包括:
按照确定的所述每一个系统调用任务的优先级,将不同类型的系统调用任务按照优先级顺序分别发送给所述第一CPU核进行处理,其中,组成每一个系统调用任务的多个系统调用命令按照获得的先后顺序分别被发送给所述第一CPU核。
3.根据权利要求2所述的方法,其特征在于,所述多核系统内存储有系统调用知识库,所述系统调用知识库包括所述多核系统处理过的每一个系统调用命令的调用次数;
所述获取由第一CPU核处理的每一个系统调用命令的调用次数包括:
根据所述系统调用知识库中记录的由第一CPU核处理的每一个系统调用命令的调用次数与1的和获得所述第一CPU核处理的每一个系统调用命令的当前调用次数。
4.根据权利要求1或2所述的方法,其特征在于,所述对所述多个系统调用命令进行分类之后,所述方法还包括:
为每一类型的系统调用命令分配CPU核;
所述将同一类型的系统调用命令发送给同一个CPU核进行处理具体包括:
获取第一类型的系统调用命令的第一CPU核标识,其中,所述第一类型为对所述多个系统调用命令进行分类后确定的任意一个类型;
按照所述第一CPU核标识,将所述第一类型的系统调用命令发送给所述第一CPU核进行处理。
5.根据权利要求4所述的方法,其特征在于,所述为每一类型的系统调用命令分配CPU核包括:
获取所述第一类型的系统调用命令的第一任务标识;
确定第二系统调用命令的任务标识与所述第一任务标识相同,其中,所述第二系统调用命令为已发送给所述第一CPU核处理的系统调用任务中的任意一个命令;
为所述第一类型的系统调用命令分配所述第一CPU核。
6.一种系统调用命令的批处理装置,所述装置包括多个中央处理单元CPU核,其特征在于,所述装置包括:
获取模块,用于获得多个系统调用命令,所述多个系统调用命令为需要调用内核函数的命令;
分类模块,用于根据所述多个系统调用命令的任务标识,对所述多个系统调用命令进行分类,其中,同一类型的系统调用命令具有相同的任务标识;
发送模块,用于按照获得所述多个系统调用命令的先后顺序,将同一类型的系统调用命令发送给同一个CPU核进行处理。
7.根据权利要求6所述的装置,其特征在于,
所述获取模块,还用于获取由第一CPU核处理的每一个系统调用命令的调用次数,其中,第一CPU核为所述多个CPU核中的任意一个CPU核,所述每一个系统调用命令的调用次数为所述每一个系统调用命令在多核系统中的执行次数;
所述装置还包括:
确定模块,用于根据所述第一CPU核处理的每一个系统调用命令的调用次数,确定每一个系统调用任务的优先级,其中,所述第一CPU核至少处理两个不同类型的系统调用任务,不同类型的系统调用任务具有不同的任务标识,每一个所述系统调用任务由多个具有相同任务标识的系统调用命令组成;
所述发送模块,具体用于按照确定的所述每一个系统调用任务的优先级,将不同类型的系统调用任务按照优先级顺序分别发送给所述第一CPU核进行处理,其中,组成每一个系统调用任务的多个系统调用命令按照获得的先后顺序分别被发送给所述第一CPU核。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
存储模块,用于存储所述系统调用知识库,所述系统调用知识库包括所述多核系统处理过的每一个系统调用命令的调用次数;
所述获取模块,具体用于根据所述系统调用知识库中记录的由第一CPU核处理的每一个系统调用命令的调用次数与1的和获得所述第一CPU核处理的每一个系统调用命令的当前调用次数。
9.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
分配模块,用于为每一类型的系统调用命令分配CPU核;
所述发送模块,具体用于获取第一类型的系统调用命令的第一CPU核标识,其中,所述第一类型为对所述多个系统调用命令进行分类后确定的任意一个类型;按照所述第一CPU核标识,将所述第一类型的系统调用命令发送给所述第一CPU核进行处理。
10.根据权利要求9所述的装置,其特征在于,
所述分配模块,具体用于获取所述第一类型的系统调用命令的第一任务标识;确定第二系统调用命令的任务标识与所述第一任务标识相同,其中,所述第二系统调用命令为已发送给所述第一CPU核处理的系统调用任务中的任意一个命令;为所述第一类型的系统调用命令分配所述第一CPU核。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/090727 WO2016074130A1 (zh) | 2014-11-10 | 2014-11-10 | 一种系统调用命令的批处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105874426A CN105874426A (zh) | 2016-08-17 |
CN105874426B true CN105874426B (zh) | 2019-09-03 |
Family
ID=55953538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480045111.2A Active CN105874426B (zh) | 2014-11-10 | 2014-11-10 | 一种系统调用命令的批处理方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10379906B2 (zh) |
EP (1) | EP3208709B1 (zh) |
CN (1) | CN105874426B (zh) |
WO (1) | WO2016074130A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ITUA20161426A1 (it) * | 2016-03-07 | 2017-09-07 | Ibm | Dispaccio di lavori per esecuzione in parallelo da processori multipli |
US10387198B2 (en) | 2016-08-11 | 2019-08-20 | Rescale, Inc. | Integrated multi-provider compute platform |
CN110750356B (zh) * | 2019-09-09 | 2022-03-29 | 华南师范大学 | 适用于非易失性内存的多核交互方法、系统及存储介质 |
CN111736904B (zh) * | 2020-08-03 | 2020-12-08 | 北京灵汐科技有限公司 | 多任务并行处理方法、装置、计算机设备及存储介质 |
CN112748883B (zh) * | 2021-01-15 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种io请求流水线处理设备、方法、系统及存储介质 |
CN114879962B (zh) * | 2021-02-05 | 2024-06-04 | 华为技术有限公司 | 一种实现批量系统调用的方法及装置 |
US20220276901A1 (en) * | 2021-02-26 | 2022-09-01 | Capital One Services, Llc | Batch processing management |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196816A (zh) * | 2007-12-29 | 2008-06-11 | 中国科学院计算技术研究所 | 一种操作系统及操作系统管理方法 |
CN102609306A (zh) * | 2012-02-15 | 2012-07-25 | 杭州海康威视数字技术股份有限公司 | 多核处理芯片对视频处理任务的处理方法及其系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511220A (en) | 1994-09-01 | 1996-04-23 | Perlman; Noah | Multi-user computer system with a clock driven batch dispatching mechanism |
US9342350B2 (en) | 2006-08-24 | 2016-05-17 | Renesas Electronics Corporation | System for selecting a task to be executed according to an output from a task control circuit |
US8886917B1 (en) * | 2007-04-25 | 2014-11-11 | Hewlett-Packard Development Company, L.P. | Switching to core executing OS like codes upon system call reading greater than predetermined amount of data |
US8136153B2 (en) * | 2007-11-08 | 2012-03-13 | Samsung Electronics Co., Ltd. | Securing CPU affinity in multiprocessor architectures |
US8103785B2 (en) | 2007-12-03 | 2012-01-24 | Seafire Micros, Inc. | Network acceleration techniques |
US8621207B2 (en) | 2008-12-23 | 2013-12-31 | International Business Machines Corporation | System and method for handling cross-platform system call with shared page cache in hybrid system |
US9535757B2 (en) * | 2011-12-19 | 2017-01-03 | Nec Corporation | Task allocation optimizing system, task allocation optimizing method and task allocation optimizing program |
CN102902657A (zh) * | 2012-09-07 | 2013-01-30 | 浪潮电子信息产业股份有限公司 | 一种利用gpu加速fft的方法 |
CN104063303B (zh) * | 2014-06-30 | 2019-07-16 | 上海斐讯数据通信技术有限公司 | 一种获取和释放root权限的方法 |
-
2014
- 2014-11-10 CN CN201480045111.2A patent/CN105874426B/zh active Active
- 2014-11-10 EP EP14905888.5A patent/EP3208709B1/en active Active
- 2014-11-10 WO PCT/CN2014/090727 patent/WO2016074130A1/zh active Application Filing
-
2017
- 2017-05-09 US US15/590,542 patent/US10379906B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196816A (zh) * | 2007-12-29 | 2008-06-11 | 中国科学院计算技术研究所 | 一种操作系统及操作系统管理方法 |
CN102609306A (zh) * | 2012-02-15 | 2012-07-25 | 杭州海康威视数字技术股份有限公司 | 多核处理芯片对视频处理任务的处理方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105874426A (zh) | 2016-08-17 |
WO2016074130A1 (zh) | 2016-05-19 |
US10379906B2 (en) | 2019-08-13 |
EP3208709A1 (en) | 2017-08-23 |
EP3208709A4 (en) | 2017-11-29 |
US20170242733A1 (en) | 2017-08-24 |
EP3208709B1 (en) | 2019-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105874426B (zh) | 一种系统调用命令的批处理方法及装置 | |
CN104317650B (zh) | 一种面向Map/Reduce型海量数据处理平台的作业调度方法 | |
CN109684065B (zh) | 一种资源调度方法、装置及系统 | |
CN102387173B (zh) | 一种MapReduce系统及其调度任务的方法和装置 | |
JP5408442B2 (ja) | 並列分散処理方法、及び、計算機システム | |
CN109783229A (zh) | 线程资源分配的方法及装置 | |
CN107864211B (zh) | 集群资源调度方法及系统 | |
CN109710400A (zh) | 线程资源分组的方法及装置 | |
KR20220037415A (ko) | 오더 처리 방법, 장치, 기기, 시스템 및 저장매체 | |
CN107430549A (zh) | 基于联合的存储器管理 | |
CN106547612A (zh) | 一种多任务处理方法及装置 | |
CN105046443A (zh) | 一种业务工单分配方法及系统 | |
CN105980988A (zh) | Smp环境中在数据库工作代理间动态分配资源和任务的方法和系统 | |
WO2023198061A1 (zh) | 一种容器调度方法、电子设备和存储介质 | |
CN101458635A (zh) | 服务器虚拟环境的磁盘输入/输出调度器及其调度方法 | |
CN106557366B (zh) | 任务分发方法、装置及系统 | |
CN103136047B (zh) | 一种多线程管理方法及架构 | |
CN103593229A (zh) | 异构云操作系统的集成与统一调度框架及调度方法 | |
CN105592110A (zh) | 一种资源调度方法及装置 | |
CN110231986A (zh) | 基于多fpga的动态可重配置的多任务调度和放置方法 | |
US20130138686A1 (en) | Device and method for arranging query | |
CN111796937B (zh) | 基于内存的资源分配方法、计算机设备及存储介质 | |
CN106502918A (zh) | 一种内存调度方法及装置 | |
CN107168777A (zh) | 分布式系统中资源的调度方法以及装置 | |
CN105701128B (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 |