CN104657204A - 短任务处理方法、装置及操作系统 - Google Patents
短任务处理方法、装置及操作系统 Download PDFInfo
- Publication number
- CN104657204A CN104657204A CN201310598394.0A CN201310598394A CN104657204A CN 104657204 A CN104657204 A CN 104657204A CN 201310598394 A CN201310598394 A CN 201310598394A CN 104657204 A CN104657204 A CN 104657204A
- Authority
- CN
- China
- Prior art keywords
- hardware thread
- application program
- reserved hardware
- short task
- thread
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种短任务处理方法、装置及操作系统。本发明短任务处理方法,包括:根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务;所述应用程序运行时,将所述预留硬件线程分配给所述应用程序;将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。本发明实施例通过将应用程序中待执行的短任务直接装载在所述预留硬件线程上执行,实现不需要创建线程就能执行短任务,解决在大规模短任务系统环境中,操作系统将耗费大量资源用于线程的创建和释放过程的问题。
Description
技术领域
本发明实施例涉及操作系统技术,尤其涉及一种短任务处理方法、装置及操作系统。
背景技术
大规模并行计算逐渐代替串行计算已经成为必然趋势,现有的应用程序和操作系统只有最大程度挖掘其并行性,才能提高运行性能并高效利用硬件资源。为此,应用程序通过并行编程方法或编译器技术将任务分解为多个并行的短任务。
传统的操作系统(如Linux)中,应用程序在向操作系统发出运行一个任务的请求后,操作系统首先为该任务创建一个线程,再调度到硬件线程的可执行队列中,并在运行结束后释放该线程。
这种运行方式可以高效运行长任务,但是对于短任务则非常低效,因为不同于传统的串行任务,短任务的执行过程非常短,其开销主要在于系统创建和释放线程数据结构的过程。尤其是在大规模短任务系统环境中,操作系统将耗费大量资源用于线程的创建和释放过程,这将极大影响并行计算环境下短任务的运行效率。
发明内容
本发明实施例提供一种短任务处理方法、装置及操作系统,以解决在大规模短任务系统环境中,操作系统将耗费大量资源用于线程的创建和释放过程的问题,以实现提高并行计算环境下短任务的运行效率。
第一方面,本发明实施例提供一种短任务处理方法,包括:
根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务;
所述应用程序运行时,将所述预留硬件线程分配给所述应用程序;
将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
在第一方面第一种可能的实现方式中,在所述将所述预留硬件线程分配给所述应用程序之后,还包括:
创建空白的线程数据结构;
则所述将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上执行产生异常时,将执行中的短任务的运行时状态恢复到所述空白的线程数据结构中以使所述短任务参与正常的线程调度执行。
根据第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,还包括:
若所述将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上正常执行完毕后,则释放所述空白的线程数据结构。
在第一方面第三种可能的实现方式中,所述将所述预留硬件线程分配给所述应用程序之前,还包括:
判断是否存在空闲的所述预留硬件线程,若不存在,则向所述应用程序发送申请失败的消息以使所述应用程序创建正常的线程调度执行。
根据第一方面、第一方面第一种至第三种任意可能的实现方式,在第一方面第四种可能的实现方式中,所述将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上执行,包括:
若待执行的短任务数目超过所述应用程序所占有的预留硬件线程的处理能力时,则向所述应用程序发送提示信息。
根据第一方面、第一方面第一种至第四种任意可能的实现方式,在第一方面第五种可能的实现方式中,还包括:
在所述应用程序执行完毕之后,释放所述预留硬件线程以使所述预留硬件线程成为普通硬件线程。
第二方面,本发明实施例提供一种短任务处理方法,包括:
向操作系统发送请求设置预留硬件线程的申请消息;
向所述操作系统下发待执行的短任务,以使所述操作系统将所述待执行的短任务直接装载在所述预留硬件线程上执行。
在第二方面第一种可能的实现方式中,所述向操作系统发送请求设置预留硬件线程的申请消息包括:
在初始化时,向操作系统发送请求设置预留硬件线程的申请消息;或者,
当短任务的数目超过预设的阈值时,向操作系统发送请求设置预留硬件线程的申请消息。
根据第二方面或第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,还包括:
在接收所述操作系统发送的待执行的短任务的数目超过所占有的预留硬件线程的处理能力的提示消息时,向所述操作系统继续发送请求设置预留硬件线程的申请消息以使所述操作系统继续将普通硬件线程设置成预留硬件线程。
第三方面,本发明实施例提供一种短任务处理装置,包括:
设置模块,用于根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务;
分配模块,用于所述应用程序运行时,将所述预留硬件线程分配给所述应用程序;
执行模块,用于将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
在第三方面第一种可能的实现方式中,还包括:
创建模块,用于在所述分配模块将所述预留硬件线程分配给所述应用程序之后,创建空白的线程数据结构;
恢复模块,用于所述执行模块将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上执行产生异常时,将执行中的短任务的运行时状态恢复到所述空白的线程数据结构中以使所述短任务参与正常的线程调度执行。
根据第三方面第一种可能的实现方式,在第三方面第二种可能的实现方式中,还包括:
第一释放模块,用于若所述执行模块将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上正常执行完毕后,则释放所述空白的线程数据结构。
在第三方面第三种可能的实现方式中,还包括:
判断模块,用于所述分配模块将所述预留硬件线程分配给所述应用程序之前,判断是否存在空闲的所述预留硬件线程,若不存在,则向所述应用程序发送申请失败的消息以使所述应用程序创建正常的线程调度执行。
根据第三方面、第三方面第一种至第三种任意可能的实现方式,在第三方面第四种可能的实现方式中,所述执行模块,具体用于:
若待执行的短任务数目超过所述应用程序所占有的预留硬件线程的处理能力时,则向所述应用程序发送提示信息。
根据第三方面、第三方面第一种至第四种任意可能的实现方式,在第三方面第五种可能的实现方式中,还包括:
第二释放模块,用于在所述应用程序执行完毕之后,释放所述预留硬件线程以使所述预留硬件线程成为普通硬件线程。
第四方面,本发明实施例提供一种短任务处理装置,包括:
申请模块,用于向操作系统发送请求设置预留硬件线程的申请消息;
下发任务模块,用于向所述操作系统下发待执行的短任务,以使所述操作系统将所述待执行的短任务直接装载在所述预留硬件线程上执行。
在第四方面第一种可能的实现方式中,所述申请模块,具体用于:
在初始化时,向操作系统发送请求设置预留硬件线程的申请消息;或者,
当短任务的数目超过预设的阈值时,向操作系统发送请求设置预留硬件线程的申请消息。
根据第四方面或第四方面第一种可能的实现方式,在第四方面第二种可能的实现方式中,所述申请模块,还用于:
在接收所述操作系统发送的待执行的短任务的数目超过所占有的预留硬件线程的处理能力的提示消息时,向所述操作系统继续发送请求设置预留硬件线程的申请消息以使所述操作系统继续将普通硬件线程设置成预留硬件线程。
第五方面,本发明实施例提供一种操作系统,其中包括:
如第三方面、第三方面第一种至第五种任意可能的实现方式所述的短任务处理装置。
本发明实施例短任务处理方法、装置及操作系统,通过将应用程序中待执行的短任务直接装载在所述预留硬件线程上执行,实现不需要创建线程就能执行短任务,解决在大规模短任务系统环境中,操作系统将耗费大量资源用于线程的创建和释放过程的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明短任务处理方法实施例一的流程图;
图2为本发明短任务处理方法实施例二的流程图;
图3为本发明短任务处理方法实施例三的流程图;
图4为本发明短任务处理方法实施例四的流程图;
图5A-图5B为本发明短任务处理方法实施例五的流程图;
图6为本发明短任务处理装置实施例一的结构示意图;
图7为本发明短任务处理装置实施例二的结构示意图;
图8为本发明短任务处理装置实施例三的结构示意图;
图9为本发明操作系统实施例的架构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一所提供的短任务处理方法的流程图。本实施例的方法适用于存在在大规模短任务系统环境中。该方法由短任务处理装置执行,该装置通常以软件的方式来实现,集成在操作系统中。如图1所示,本实施例的方法包括如下步骤:
步骤101、根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务。
硬件线程是CPU内部的一个执行单位。该预留硬件线程是软件将某硬件线程设定为“预留”状态,处于“预留”状态的硬件线程只等待执行短小任务,并不执行操作系统的其它任务。
步骤102、所述应用程序运行时,将所述预留硬件线程分配给所述应用程序。
具体实施时,执行本步骤之前,操作系统通过查看当前各硬件线程的状态,确定是否存在空闲预留硬件线程。如果存在空闲预留硬件线程,则将该预留硬件线程分配给发起请求的应用程序,使其可以独占该硬件线程,并将申请成功的信息告知发起请求的应用程序。若不存在,则向所述应用程序发送申请失败的消息以使所述应用程序创建正常的线程调度执行
步骤103、将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
操作系统将应用程序的待执行的短任务的代码、数据等指针直接装载到预留硬件线程的相关寄存器中并直接运行。
相较于现有技术中执行短任务时,需要创建和释放线程从而导致耗费系统资源,本发明实施例通过将应用程序中待执行的短任务直接装载在所述预留硬件线程上执行,实现不需要创建线程就能执行短任务,解决在大规模短任务系统环境中,操作系统将耗费大量资源用于线程的创建和释放过程的问题。
实施例二
图2为本发明短任务处理方法实施例二的流程图。本实施例是在实施例一的基础上增加异常处理机制,如图2所示,该方法具体包括:
步骤201、根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务。
步骤202、所述应用程序运行时,将所述预留硬件线程分配给所述应用程序。
步骤203、创建空白的线程数据结构。
需要解释的是,空白的线程数据结构占用空间极少,不会造成资源浪费。
步骤204、将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
步骤205、判断在所述预留硬件线程上执行中是否产生异常。
若产生异常,例如短任务在执行过程中,如果所访问的数据不在内存中,则会发生缺页异常。此时,短任务不能继续执行,必须挂起,直至操作系统将相应数据调入内存。此时执行步骤206。若能正常执行,则执行步骤207。
步骤206、将执行中的短任务的运行时状态恢复到所述空白的线程数据结构中以使所述短任务参与正常的线程调度执行。
由于异常的短任务在执行之前,操作系统系统并没有为该短任务创建数据结构,所以该短任务无法直接挂起。该异常短任务需要将当前运行中的预留硬件线程的各寄存器状态恢复到分配阶段创建的空白的线程数据结构中。由此,该短任务具备了完整的线程数据结构,成为正常线程,可以正常挂起,进入等待队列,等待操作系统调度。
步骤207、释放所述空白的线程数据结构。
步骤208、释放所述预留硬件线程以使所述预留硬件线程成为普通硬件线程。
本实施例对于运行中产生异常的短任务,通过将该短任务恢复到创建的空白线程数据结构中,挂起并参与正常的操作系统调度,可以保证系统运行的正确性和可靠性。
实施例三
图3为本发明短任务处理方法实施例三的流程图。本实施例是在实施例一的基础上增加动态扩展机制,如图3所示,该方法具体包括:
步骤301、根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务。
步骤302、所述应用程序运行时,将所述预留硬件线程分配给所述应用程序。
步骤303、将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
步骤304、判断待执行的短任务数目是否超过所述应用程序所占有的预留硬件线程的处理能力。
若超过,则执行步骤305,否则执行步骤306-步骤307。
步骤305、向所述应用程序发送待执行的短任务数目已经超过所述应用程序所占有的预留硬件线程的处理能力提示信息。
步骤306、正常执行。
步骤307、释放所述预留硬件线程以使所述预留硬件线程成为普通硬件线程。
本实施例若判断待执行的短任务数目超过所述应用程序所占有的预留硬件线程的处理能力,则通过向所述应用程序发送提示信息以使所述应用程序继续向操作系统申请预留硬件线程,以解决短任务数目超过所述应用程序所占有的预留硬件线程的处理能力时产生的调度拥塞问题。
实施例四
图4为本发明实施例四所提供的短任务处理方法的流程图。本实施例的方法适用于存在在大规模短任务系统环境中。该方法由短任务处理装置执行,该装置通常以软件的方式来实现,集成在操作系统中。如图4所示,本实施例的方法包括如下步骤:
步骤401、向操作系统发送请求设置预留硬件线程的申请消息。
本步骤中,具体实施时,可选地,可以在应用程序初始化时,静态的向操作系统发送请求设置预留硬件线程的申请消息;或者,
也可以当短任务的数目超过预设的阈值时,动态的向操作系统发送请求设置预留硬件线程的申请消息。例如,应用程序可以维护一个计数器,该计数器记录当前应用程序的连续短任务的数量,当计数器到达阈值时,即应用程序的短任务数量和密集程度到达阈值时,才向操作系统申请预留硬件线程。作为静态方法的补充,该计数器可以保证应用程序内短小任务尚不多或尚不密集时,不会因为占用预留硬件线程而浪费硬件资源。
步骤402、向所述操作系统下发待执行的短任务,以使所述操作系统将所述待执行的短任务直接装载在所述预留硬件线程上执行。
本发明实施例通过应用程序中向所述操作系统下发待执行的短任务,以使所述操作系统将所述待执行的短任务直接装载在所述预留硬件线程上执行,实现不需要创建线程就能执行短任务,解决在大规模短任务系统环境中,操作系统将耗费大量资源用于线程的创建和释放过程的问题。
在上述方案中,进一步还可以:在接收所述操作系统发送的待执行的短任务的数目超过所占有的预留硬件线程的处理能力的提示消息时,向所述操作系统继续发送请求设置预留硬件线程的申请消息以使所述操作系统继续将普通硬件线程设置成预留硬件线程。从而可以解决短任务数目超过所述应用程序所占有的预留硬件线程的处理能力时产生的调度拥塞问题。
实施例五
图5A-图5B为本发明短任务处理方法实施例五的流程图,本实施例在上述实施例的基础上,提供一完全实施例,详细说明本发明短任务处理方法,图5A为短任务1-7的处理方法流程图,如图5A所示,具体包括:
(1)、短任务1、短任务2以及短任务3采用传统方式运行,由操作系统生成线程,并调度到普通硬件线程上运行,最终短线程1、短线程3被调度到普通硬件线程1的可运行队列中等待运行,短线程2被调度到普通硬件线程2的可运行队列中等待运行。
(2)、当应用程序维护的计数器超过阈值时,应用程序得知目前自身的短任务数量较多,应当向操作系统申请预留硬件线程。应用程序不具有使用预留硬件线程条件时,维护连续短任务个数计数器。应用程序已经拥有使用硬件线程条件时,维护短任务拥堵个数计数器。
(3)、应用程序的主线程向操作系统发起请求,请求操作系统分配预留硬件线程。操作系统通过查看各硬件线程的可运行队列,发现预留硬件线程3此时空闲。
(4)、操作系统将预留硬件线程3分配给应用程序,创建空白线程数据结构,并将栈指针装在到预留硬件线程3的栈指针寄存器。硬件线程3成为当前应用程序的预留硬件线程,预留硬件线程3只能运行当前应用程序直接装载的短任务。且预留硬件线程3不再具有可执行队列,操作系统不能将线程调度到预留硬件线程3上运行。
(5)、当前应用程序已经拥有了占用预留硬件线程的条件。短任务4和短任务5直接将代码及数据等指针装载到预留硬件线程3,运行结束后直接将结果返回给应用程序。
(6)、短任务6采用与短任务4和短任务5相同的方式在预留硬件线程3上运行,但是在运行过程中产生了异常。则操作系统将此时的预留硬件线程3的运行时状态恢复到空白线程数据结构中,并交由操作系统调度运行。短任务6成为线程6并被调度到普通硬件线程2的可执行队列中,等待运行。操作系统清空预留硬件线程3的各寄存器状态。
(7)、短任务7采用与短任务4和短任务5相同的方式在预留硬件线程3上运行。
应用程序最终会由于短任务规模减小,运行中异常次数过多,程序运行结束等原因释放预留硬件线程3。
图5B为短任务8-10的处理方法流程图,如图5B所示,具体包括:
(8)、短任务8、短任务9和短任务10仍旧采用与短任务4及短任务5相同的方式,直接将代码及数据等指针装载到预留硬件线程3中运行。此步骤与第(7)步相同。
(9)、当应用程序的计数器所记录的单位时间内的短任务数量低于阈值时,证明应用程序在一段时间内没有短任务出现或规模很小。此时,应用程序的主线程主动向操作系统申请释放预留硬件线程3。
(10)、当操作系统的计数器所记录的预留硬件线程3的连续异常次数超过阈值时,证明当前应用程序的短任务不适合直接装载到硬件线程上运行,采取传统方式性能更高。此时,操作系统主动回收预留硬件线程3。
(11)、操作系统释放预留硬件线程3时,首先释放空白的线程数据结构和栈结构,其后解除应用程序对预留硬件线程3的占用。释放成功后,操作系统将告知应用程序。
(12)、应用程序已经不具有使用预留硬件线程的条件,只能采用传统方式运行短任务。此时,整个过程结束,回到第(1)步循环执行。
由上述实施例可以看出,本发明通过将应用程序中待执行的短任务直接装载在所述预留硬件线程上执行,在大规模短任务系统环境中,减少操作系统耗费大量资源用于线程的创建和释放过程,提高了系统处理效率。
图6为本发明短任务处理装置实施例一的结构示意图,该装置通常集成在操作系统(如Linux)中。如图6所示,本实施例的装置可以包括:设置模块61、分配模块62和执行模块63,其中,设置模块61,用于根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务;分配模块62,用于所述应用程序运行时,将所述预留硬件线程分配给所述应用程序;执行模块63,用于将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
本实施例的装置,可以用于执行本发明所提供的短任务处理方法实施例一的技术方案,具备相应于各步骤的功能模块,其实现原理和技术效果类似,此处不再赘述。
图7为本发明短任务处理装置实施例二的结构示意图,如图7所示,本实施例的装置在图6所示装置结构的基础上,进一步地,还可以包括:创建模块71,用于在所述分配模块将所述预留硬件线程分配给所述应用程序之后,创建空白的线程数据结构;
恢复模块72,用于所述执行模块将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上执行产生异常时,将执行中的短任务的运行时状态恢复到所述空白的线程数据结构中以使所述短任务参与正常的线程调度执行。
第一释放模块73,用于若所述执行模块将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上正常执行完毕后,则释放所述空白的线程数据结构。
判断模块74,用于所述分配模块将所述预留硬件线程分配给所述应用程序之前,判断是否存在空闲的所述预留硬件线程,若不存在,则向所述应用程序发送申请失败的消息以使所述应用程序创建正常的线程调度执行。
所述执行模块63,具体用于:若待执行的短任务数目超过所述应用程序所占有的预留硬件线程的处理能力时,则向所述应用程序发送提示信息。
还包括:第二释放模块75,用于在所述应用程序执行完毕之后,释放所述预留硬件线程以使所述预留硬件线程成为普通硬件线程。
本实施例的装置,可以用于执行图2或图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本发明短任务处理装置实施例三的结构示意图,该装置通常集成在应用程序中。如图8所示,本实施例的装置可以包括:申请模块81和下发任务模块82,其中,申请模块81,用于向操作系统发送请求设置预留硬件线程的申请消息;下发任务模块82,用于向所述操作系统下发待执行的短任务,以使所述操作系统将所述待执行的短任务直接装载在所述预留硬件线程上执行。
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例中,进一步地,所述申请模块81,可以具体用于:在初始化时,向操作系统发送请求设置预留硬件线程的申请消息;或者,当短任务的数目超过预设的阈值时,向操作系统发送请求设置预留硬件线程的申请消息。
在上述实施例中,优选地,所述申请模块81,还用于:在接收所述操作系统发送的待执行的短任务的数目超过所占有的预留硬件线程的处理能力的提示消息时,向所述操作系统继续发送请求设置预留硬件线程的申请消息以使所述操作系统继续将普通硬件线程设置成预留硬件线程。
图9为本发明操作系统实施例的架构示意图,如图9所示,操作系统中包括如图6或图7所示的短任务处理装置900,应用程序通过操作系统的短任务处理装置900调用需要访问的硬件资源。
其中该短任务处理装置900可以用于执行图1-图3任意所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (19)
1.一种短任务处理方法,其特征在于,包括:
根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务;
所述应用程序运行时,将所述预留硬件线程分配给所述应用程序;
将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
2.根据权利要求1所述的方法,其特征在于,在所述将所述预留硬件线程分配给所述应用程序之后,还包括:
创建空白的线程数据结构;
则所述将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上执行产生异常时,将执行中的短任务的运行时状态恢复到所述空白的线程数据结构中以使所述短任务参与正常的线程调度执行。
3.根据权利要求2所述的方法,其特征在于,还包括:
若所述将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上正常执行完毕后,则释放所述空白的线程数据结构。
4.根据权利要求1所述的方法,其特征在于,所述将所述预留硬件线程分配给所述应用程序之前,还包括:
判断是否存在空闲的所述预留硬件线程,若不存在,则向所述应用程序发送申请失败的消息以使所述应用程序创建正常的线程调度执行。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上执行,包括:
若待执行的短任务数目超过所述应用程序所占有的预留硬件线程的处理能力时,则向所述应用程序发送提示信息。
6.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
在所述应用程序执行完毕之后,释放所述预留硬件线程以使所述预留硬件线程成为普通硬件线程。
7.一种短任务处理方法,其特征在于,包括:
向操作系统发送请求设置预留硬件线程的申请消息;
向所述操作系统下发待执行的短任务,以使所述操作系统将所述待执行的短任务直接装载在所述预留硬件线程上执行。
8.根据权利要求7所述的方法,其特征在于,所述向操作系统发送请求设置预留硬件线程的申请消息包括:
在初始化时,向操作系统发送请求设置预留硬件线程的申请消息;或者,
当短任务的数目超过预设的阈值时,向操作系统发送请求设置预留硬件线程的申请消息。
9.根据权利要求7或8所述的方法,其特征在于,还包括:
在接收所述操作系统发送的待执行的短任务的数目超过所占有的预留硬件线程的处理能力的提示消息时,向所述操作系统继续发送请求设置预留硬件线程的申请消息以使所述操作系统继续将普通硬件线程设置成预留硬件线程。
10.一种短任务处理装置,其特征在于,包括:
设置模块,用于根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务;
分配模块,用于所述应用程序运行时,将所述预留硬件线程分配给所述应用程序;
执行模块,用于将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
11.根据权利要求10所述的装置,其特征在于,还包括:
创建模块,用于在所述分配模块将所述预留硬件线程分配给所述应用程序之后,创建空白的线程数据结构;
恢复模块,用于所述执行模块将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上执行产生异常时,将执行中的短任务的运行时状态恢复到所述空白的线程数据结构中以使所述短任务参与正常的线程调度执行。
12.根据权利要求11所述的装置,其特征在于,还包括:
第一释放模块,用于若所述执行模块将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上正常执行完毕后,则释放所述空白的线程数据结构。
13.根据权利要求10所述的装置,其特征在于,还包括:
判断模块,用于所述分配模块将所述预留硬件线程分配给所述应用程序之前,判断是否存在空闲的所述预留硬件线程,若不存在,则向所述应用程序发送申请失败的消息以使所述应用程序创建正常的线程调度执行。
14.根据权利要求10-13任一项所述的装置,其特征在于,所述执行模块,具体用于:
若待执行的短任务数目超过所述应用程序所占有的预留硬件线程的处理能力时,则向所述应用程序发送提示信息。
15.根据权利要求10-14任一项所述的装置,其特征在于,还包括:
第二释放模块,用于在所述应用程序执行完毕之后,释放所述预留硬件线程以使所述预留硬件线程成为普通硬件线程。
16.一种短任务处理装置,其特征在于,包括:
申请模块,用于向操作系统发送请求设置预留硬件线程的申请消息;
下发任务模块,用于向所述操作系统下发待执行的短任务,以使所述操作系统将所述待执行的短任务直接装载在所述预留硬件线程上执行。
17.根据权利要求16所述的装置,其特征在于,所述申请模块,具体用于:
在初始化时,向操作系统发送请求设置预留硬件线程的申请消息;或者,
当短任务的数目超过预设的阈值时,向操作系统发送请求设置预留硬件线程的申请消息。
18.根据权利要求16或17所述的装置,其特征在于,所述申请模块,还用于:
在接收所述操作系统发送的待执行的短任务的数目超过所占有的预留硬件线程的处理能力的提示消息时,向所述操作系统继续发送请求设置预留硬件线程的申请消息以使所述操作系统继续将普通硬件线程设置成预留硬件线程。
19.一种操作系统,其特征在于,包括:
如权利要求10-15任一项所述的短任务处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310598394.0A CN104657204B (zh) | 2013-11-22 | 2013-11-22 | 短任务处理方法、装置及操作系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310598394.0A CN104657204B (zh) | 2013-11-22 | 2013-11-22 | 短任务处理方法、装置及操作系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657204A true CN104657204A (zh) | 2015-05-27 |
CN104657204B CN104657204B (zh) | 2018-05-04 |
Family
ID=53248378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310598394.0A Active CN104657204B (zh) | 2013-11-22 | 2013-11-22 | 短任务处理方法、装置及操作系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657204B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808334A (zh) * | 2016-03-04 | 2016-07-27 | 山东大学 | 一种基于资源重用的MapReduce短作业优化系统及方法 |
WO2017063374A1 (zh) * | 2015-10-13 | 2017-04-20 | 惠州Tcl移动通信有限公司 | 一种动态分配编译机的系统及其方法 |
CN116382879A (zh) * | 2023-06-06 | 2023-07-04 | 北京理工大学出版社有限责任公司 | 一种具备通用性的耦合数据交换技术架构 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6507862B1 (en) * | 1999-05-11 | 2003-01-14 | Sun Microsystems, Inc. | Switching method in a multi-threaded processor |
CN1975677A (zh) * | 2005-12-01 | 2007-06-06 | 国际商业机器公司 | 用于提供无上下文切换属性的方法和系统 |
US20080184240A1 (en) * | 2007-01-31 | 2008-07-31 | Franaszek Peter A | System and method for processor thread allocation using delay-costs |
CN102027447A (zh) * | 2008-05-16 | 2011-04-20 | 微软公司 | 调度器中的局部任务集合 |
CN102073543A (zh) * | 2011-01-14 | 2011-05-25 | 上海交通大学 | 通用处理器与图形处理器融合系统及其融合方法 |
CN102378961A (zh) * | 2009-04-03 | 2012-03-14 | 微软公司 | 并行编程和执行系统与技术 |
US20120284720A1 (en) * | 2011-05-06 | 2012-11-08 | International Business Machines Corporation | Hardware assisted scheduling in computer system |
-
2013
- 2013-11-22 CN CN201310598394.0A patent/CN104657204B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6507862B1 (en) * | 1999-05-11 | 2003-01-14 | Sun Microsystems, Inc. | Switching method in a multi-threaded processor |
CN1975677A (zh) * | 2005-12-01 | 2007-06-06 | 国际商业机器公司 | 用于提供无上下文切换属性的方法和系统 |
US20080184240A1 (en) * | 2007-01-31 | 2008-07-31 | Franaszek Peter A | System and method for processor thread allocation using delay-costs |
CN102027447A (zh) * | 2008-05-16 | 2011-04-20 | 微软公司 | 调度器中的局部任务集合 |
CN102378961A (zh) * | 2009-04-03 | 2012-03-14 | 微软公司 | 并行编程和执行系统与技术 |
CN102073543A (zh) * | 2011-01-14 | 2011-05-25 | 上海交通大学 | 通用处理器与图形处理器融合系统及其融合方法 |
US20120284720A1 (en) * | 2011-05-06 | 2012-11-08 | International Business Machines Corporation | Hardware assisted scheduling in computer system |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017063374A1 (zh) * | 2015-10-13 | 2017-04-20 | 惠州Tcl移动通信有限公司 | 一种动态分配编译机的系统及其方法 |
US10810048B2 (en) | 2015-10-13 | 2020-10-20 | Huizhou Tcl Mobile Communication Co., Ltd | Systems and methods for dynamic allocation of compilation machines |
CN105808334A (zh) * | 2016-03-04 | 2016-07-27 | 山东大学 | 一种基于资源重用的MapReduce短作业优化系统及方法 |
CN116382879A (zh) * | 2023-06-06 | 2023-07-04 | 北京理工大学出版社有限责任公司 | 一种具备通用性的耦合数据交换技术架构 |
CN116382879B (zh) * | 2023-06-06 | 2023-08-29 | 北京理工大学出版社有限责任公司 | 一种具备通用性的耦合数据交换技术架构 |
Also Published As
Publication number | Publication date |
---|---|
CN104657204B (zh) | 2018-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647104B (zh) | 请求处理方法、服务器及计算机可读存储介质 | |
EP2454666B1 (en) | Fault tolerant batch processing | |
CN102355369B (zh) | 虚拟化集群系统及其处理方法和设备 | |
CN111796908B (zh) | 一种资源自动弹性伸缩的系统、方法及云平台 | |
US20160378570A1 (en) | Techniques for Offloading Computational Tasks between Nodes | |
CN106528893B (zh) | 数据同步方法及装置 | |
US20100082848A1 (en) | Increasing available fifo space to prevent messaging queue deadlocks in a dma environment | |
CN103297456A (zh) | 一种分布式系统下共享资源的访问方法及分布式系统 | |
CN110888743A (zh) | 一种gpu资源使用方法、装置及存储介质 | |
CN103210379A (zh) | 服务器系统、管理方法及设备 | |
CN104102548A (zh) | 任务资源调度处理方法和系统 | |
CN102279766A (zh) | 并行模拟多个处理器的方法及系统、调度器 | |
WO2021103646A1 (zh) | 一种部署pod的方法及装置 | |
US8631086B2 (en) | Preventing messaging queue deadlocks in a DMA environment | |
CN113886089A (zh) | 一种任务处理方法、装置、系统、设备及介质 | |
CN109062681A (zh) | 一种周期性循环任务的执行方法、系统、装置及存储介质 | |
EP2908465A1 (en) | High availability method and system for improving the utility of physical servers in cloud computing resource pool | |
CN104657204A (zh) | 短任务处理方法、装置及操作系统 | |
CN106385330A (zh) | 一种网络功能虚拟化编排器的实现方法及装置 | |
US8977752B2 (en) | Event-based dynamic resource provisioning | |
JP2017162522A (ja) | マルチコアシステムのインターラプト割り当て方法及び装置 | |
CN105208111A (zh) | 一种信息处理的方法及物理机 | |
CN112099728B (zh) | 一种执行写操作、读操作的方法及装置 | |
CN111459871A (zh) | 一种基于fpga异构计算的区块链加速系统及方法 | |
CN104281587A (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 |