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

文档序号:8339451阅读:来源:国知局
述的短任务处理装置。
[0054]本发明实施例短任务处理方法、装置及操作系统,通过将应用程序中待执行的短任务直接装载在所述预留硬件线程上执行,实现不需要创建线程就能执行短任务,解决在大规模短任务系统环境中,操作系统将耗费大量资源用于线程的创建和释放过程的问题。
【附图说明】
[0055]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0056]图1为本发明短任务处理方法实施例一的流程图;
[0057]图2为本发明短任务处理方法实施例二的流程图;
[0058]图3为本发明短任务处理方法实施例三的流程图;
[0059]图4为本发明短任务处理方法实施例四的流程图;
[0060]图5A-图5B为本发明短任务处理方法实施例五的流程图;
[0061]图6为本发明短任务处理装置实施例一的结构示意图;
[0062]图7为本发明短任务处理装置实施例二的结构示意图;
[0063]图8为本发明短任务处理装置实施例三的结构示意图;
[0064]图9为本发明操作系统实施例的架构示意图。
【具体实施方式】
[0065]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0066]实施例一
[0067]图1为本发明实施例一所提供的短任务处理方法的流程图。本实施例的方法适用于存在在大规模短任务系统环境中。该方法由短任务处理装置执行,该装置通常以软件的方式来实现,集成在操作系统中。如图1所示,本实施例的方法包括如下步骤:
[0068]步骤101、根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务。
[0069]硬件线程是CPU内部的一个执行单位。该预留硬件线程是软件将某硬件线程设定为“预留”状态,处于“预留”状态的硬件线程只等待执行短小任务,并不执行操作系统的其它任务。
[0070]步骤102、所述应用程序运行时,将所述预留硬件线程分配给所述应用程序。
[0071]具体实施时,执行本步骤之前,操作系统通过查看当前各硬件线程的状态,确定是否存在空闲预留硬件线程。如果存在空闲预留硬件线程,则将该预留硬件线程分配给发起请求的应用程序,使其可以独占该硬件线程,并将申请成功的信息告知发起请求的应用程序。若不存在,则向所述应用程序发送申请失败的消息以使所述应用程序创建正常的线程调度执行
[0072]步骤103、将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
[0073]操作系统将应用程序的待执行的短任务的代码、数据等指针直接装载到预留硬件线程的相关寄存器中并直接运行。
[0074]相较于现有技术中执行短任务时,需要创建和释放线程从而导致耗费系统资源,本发明实施例通过将应用程序中待执行的短任务直接装载在所述预留硬件线程上执行,实现不需要创建线程就能执行短任务,解决在大规模短任务系统环境中,操作系统将耗费大量资源用于线程的创建和释放过程的问题。
[0075]实施例二
[0076]图2为本发明短任务处理方法实施例二的流程图。本实施例是在实施例一的基础上增加异常处理机制,如图2所示,该方法具体包括:
[0077]步骤201、根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务。
[0078]步骤202、所述应用程序运行时,将所述预留硬件线程分配给所述应用程序。
[0079]步骤203、创建空白的线程数据结构。
[0080]需要解释的是,空白的线程数据结构占用空间极少,不会造成资源浪费。
[0081]步骤204、将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
[0082]步骤205、判断在所述预留硬件线程上执行中是否产生异常。
[0083]若产生异常,例如短任务在执行过程中,如果所访问的数据不在内存中,则会发生缺页异常。此时,短任务不能继续执行,必须挂起,直至操作系统将相应数据调入内存。此时执行步骤206。若能正常执行,则执行步骤207。
[0084]步骤206、将执行中的短任务的运行时状态恢复到所述空白的线程数据结构中以使所述短任务参与正常的线程调度执行。
[0085]由于异常的短任务在执行之前,操作系统系统并没有为该短任务创建数据结构,所以该短任务无法直接挂起。该异常短任务需要将当前运行中的预留硬件线程的各寄存器状态恢复到分配阶段创建的空白的线程数据结构中。由此,该短任务具备了完整的线程数据结构,成为正常线程,可以正常挂起,进入等待队列,等待操作系统调度。
[0086]步骤207、释放所述空白的线程数据结构。
[0087]步骤208、释放所述预留硬件线程以使所述预留硬件线程成为普通硬件线程。
[0088]本实施例对于运行中产生异常的短任务,通过将该短任务恢复到创建的空白线程数据结构中,挂起并参与正常的操作系统调度,可以保证系统运行的正确性和可靠性。
[0089]实施例三
[0090]图3为本发明短任务处理方法实施例二的流程图。本实施例是在实施例一的基础上增加动态扩展机制,如图3所示,该方法具体包括:
[0091]步骤301、根据接收应用程序发送的请求设置预留硬件线程的申请消息,将普通硬件线程设置成预留硬件线程,所述预留硬件线程只用于执行短任务。
[0092]步骤302、所述应用程序运行时,将所述预留硬件线程分配给所述应用程序。
[0093]步骤303、将所述应用程序下发的待执行的短任务直接装载在所述预留硬件线程上执行。
[0094]步骤304、判断待执行的短任务数目是否超过所述应用程序所占有的预留硬件线程的处理能力。
[0095]若超过,则执行步骤305,否则执行步骤306-步骤307。
[0096]步骤305、向所述应用程序发送待执行的短任务数目已经超过所述应用程序所占有的预留硬件线程的处理能力提示信息。
[0097]步骤306、正常执行。
[0098]步骤307、释放所述预留硬件线程以使所述预留硬件线程成为普通硬件线程。
[0099]本实施例若判断待执行的短任务数目超过所述应用程序所占有的预留硬件线程的处理能力,则通过向所述应用程序发送提示信息以使所述应用程序继续向操作系统申请预留硬件线程,以解决短任务数目超过所述应用程序所占有的预留硬件线程的处理能力时产生的调度拥塞问题。
[0100]实施例四
[0101]图4为本发明实施例四所提供的短任务处理方法的流程图。本实施例的方法适用于存在在大规模短任务系统环境中。该方法由短任务处理装置执行,该装置通常以软件的方式来实现,集成在操作系统中。如图4所示,本实施例的方法包括如下步骤:
[0102]步骤401、向操作系统发送请求设置预留硬件线程的申请消息。
[0103]本步骤中,具体实施时,可选地,可以在应用程序初始化时,静态的向操作系统发送请求设置预留硬件线程的申请消息;或者,
[0104]也可以当短任务的数目超过预设的阈值时,动态的向操作系统发送请求设置预留硬件线程的申请消息。例如,应用程序可以维护一个计数器,该计数器记录当前应用程
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1