短任务处理方法、装置及操作系统的制作方法

文档序号:8339451阅读:231来源:国知局
短任务处理方法、装置及操作系统的制作方法
【技术领域】
[0001]本发明实施例涉及操作系统技术,尤其涉及一种短任务处理方法、装置及操作系统。
【背景技术】
[0002]大规模并行计算逐渐代替串行计算已经成为必然趋势,现有的应用程序和操作系统只有最大程度挖掘其并行性,才能提高运行性能并高效利用硬件资源。为此,应用程序通过并行编程方法或编译器技术将任务分解为多个并行的短任务。
[0003]传统的操作系统(如Linux)中,应用程序在向操作系统发出运行一个任务的请求后,操作系统首先为该任务创建一个线程,再调度到硬件线程的可执行队列中,并在运行结束后释放该线程。
[0004]这种运行方式可以高效运行长任务,但是对于短任务则非常低效,因为不同于传统的串行任务,短任务的执行过程非常短,其开销主要在于系统创建和释放线程数据结构的过程。尤其是在大规模短任务系统环境中,操作系统将耗费大量资源用于线程的创建和释放过程,这将极大影响并行计算环境下短任务的运行效率。

【发明内容】

[0005]本发明实施例提供一种短任务处理方法、装置及操作系统,以解决在大规模短任务系统环境中,操作系统将耗费大量资源用于线程的创建和释放过程的问题,以实现提高并行计算环境下短任务的运行效率。
[0006]第一方面,本发明实施例提供一种短任务处理方法,包括:
[0007]根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务;
[0008]所述应用程序运行时,将所述预留硬件线程分配给所述应用程序;
[0009]将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
[0010]在第一方面第一种可能的实现方式中,在所述将所述预留硬件线程分配给所述应用程序之后,还包括:
[0011]创建空白的线程数据结构;
[0012]则所述将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上执行产生异常时,将执行中的短任务的运行时状态恢复到所述空白的线程数据结构中以使所述短任务参与正常的线程调度执行。
[0013]根据第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,还包括:
[0014]若所述将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上正常执行完毕后,则释放所述空白的线程数据结构。
[0015]在第一方面第三种可能的实现方式中,所述将所述预留硬件线程分配给所述应用程序之前,还包括:
[0016]判断是否存在空闲的所述预留硬件线程,若不存在,则向所述应用程序发送申请失败的消息以使所述应用程序创建正常的线程调度执行。
[0017]根据第一方面、第一方面第一种至第三种任意可能的实现方式,在第一方面第四种可能的实现方式中,所述将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上执行,包括:
[0018]若待执行的短任务数目超过所述应用程序所占有的预留硬件线程的处理能力时,则向所述应用程序发送提示信息。
[0019]根据第一方面、第一方面第一种至第四种任意可能的实现方式,在第一方面第五种可能的实现方式中,还包括:
[0020]在所述应用程序执行完毕之后,释放所述预留硬件线程以使所述预留硬件线程成为普通硬件线程。
[0021]第二方面,本发明实施例提供一种短任务处理方法,包括:
[0022]向操作系统发送请求设置预留硬件线程的申请消息;
[0023]向所述操作系统下发待执行的短任务,以使所述操作系统将所述待执行的短任务直接装载在所述预留硬件线程上执行。
[0024]在第二方面第一种可能的实现方式中,所述向操作系统发送请求设置预留硬件线程的申请消息包括:
[0025]在初始化时,向操作系统发送请求设置预留硬件线程的申请消息;或者,
[0026]当短任务的数目超过预设的阈值时,向操作系统发送请求设置预留硬件线程的申请消息。
[0027]根据第二方面或第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,还包括:
[0028]在接收所述操作系统发送的待执行的短任务的数目超过所占有的预留硬件线程的处理能力的提示消息时,向所述操作系统继续发送请求设置预留硬件线程的申请消息以使所述操作系统继续将普通硬件线程设置成预留硬件线程。
[0029]第三方面,本发明实施例提供一种短任务处理装置,包括:
[0030]设置模块,用于根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务;
[0031]分配模块,用于所述应用程序运行时,将所述预留硬件线程分配给所述应用程序;
[0032]执行模块,用于将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
[0033]在第三方面第一种可能的实现方式中,还包括:
[0034]创建模块,用于在所述分配模块将所述预留硬件线程分配给所述应用程序之后,创建空白的线程数据结构;
[0035]恢复模块,用于所述执行模块将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上执行产生异常时,将执行中的短任务的运行时状态恢复到所述空白的线程数据结构中以使所述短任务参与正常的线程调度执行。
[0036]根据第三方面第一种可能的实现方式,在第三方面第二种可能的实现方式中,还包括:
[0037]第一释放模块,用于若所述执行模块将所述应用程序中待执行的短任务直接装载在所述预留硬件线程上正常执行完毕后,则释放所述空白的线程数据结构。
[0038]在第三方面第三种可能的实现方式中,还包括:
[0039]判断模块,用于所述分配模块将所述预留硬件线程分配给所述应用程序之前,判断是否存在空闲的所述预留硬件线程,若不存在,则向所述应用程序发送申请失败的消息以使所述应用程序创建正常的线程调度执行。
[0040]根据第三方面、第三方面第一种至第三种任意可能的实现方式,在第三方面第四种可能的实现方式中,所述执行模块,具体用于:
[0041]若待执行的短任务数目超过所述应用程序所占有的预留硬件线程的处理能力时,则向所述应用程序发送提示信息。
[0042]根据第三方面、第三方面第一种至第四种任意可能的实现方式,在第三方面第五种可能的实现方式中,还包括:
[0043]第二释放模块,用于在所述应用程序执行完毕之后,释放所述预留硬件线程以使所述预留硬件线程成为普通硬件线程。
[0044]第四方面,本发明实施例提供一种短任务处理装置,包括:
[0045]申请模块,用于向操作系统发送请求设置预留硬件线程的申请消息;
[0046]下发任务模块,用于向所述操作系统下发待执行的短任务,以使所述操作系统将所述待执行的短任务直接装载在所述预留硬件线程上执行。
[0047]在第四方面第一种可能的实现方式中,所述申请模块,具体用于:
[0048]在初始化时,向操作系统发送请求设置预留硬件线程的申请消息;或者,
[0049]当短任务的数目超过预设的阈值时,向操作系统发送请求设置预留硬件线程的申请消息。
[0050]根据第四方面或第四方面第一种可能的实现方式,在第四方面第二种可能的实现方式中,所述申请模块,还用于:
[0051]在接收所述操作系统发送的待执行的短任务的数目超过所占有的预留硬件线程的处理能力的提示消息时,向所述操作系统继续发送请求设置预留硬件线程的申请消息以使所述操作系统继续将普通硬件线程设置成预留硬件线程。
[0052]第五方面,本发明实施例提供一种操作系统,其中包括:
[0053]如第三方面、第三方面第一种至第五种任意可能的实现方式所
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1