CN109819674B - 计算机存储介质、嵌入式调度方法及*** - Google Patents

计算机存储介质、嵌入式调度方法及*** Download PDF

Info

Publication number
CN109819674B
CN109819674B CN201780001291.8A CN201780001291A CN109819674B CN 109819674 B CN109819674 B CN 109819674B CN 201780001291 A CN201780001291 A CN 201780001291A CN 109819674 B CN109819674 B CN 109819674B
Authority
CN
China
Prior art keywords
message
event
processed
task
target
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
Application number
CN201780001291.8A
Other languages
English (en)
Other versions
CN109819674A (zh
Inventor
杨显旭
许江成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Goodix Technology Co Ltd
Original Assignee
Shenzhen Goodix Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Goodix Technology Co Ltd filed Critical Shenzhen Goodix Technology Co Ltd
Publication of CN109819674A publication Critical patent/CN109819674A/zh
Application granted granted Critical
Publication of CN109819674B publication Critical patent/CN109819674B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种计算机存储介质、嵌入式调度方法及***,方法包括:遍历各任务对应的第一整数中比特位的当前值,任务与第一整数一一对应,任务对应的第一整数中的比特位与任务支持的事件一一对应;将各任务对应的第一整数中,当前值为第一值的比特位对应的事件确定为当前的待处理事件;调用支持待处理事件的任务,对待处理事件进行处理。本申请提供的技术方案,在实现良好的使用效果的同时,实现轻量级、低资源消耗的调度方案,能够有效适用于硬件资源匮乏的设备,并且该方案易于实现、资源消耗低、启动快。实际应用中,上述方案既可用于普通任务的调度,也可用于调用层级深的***,并且能够降低***的耦合性。

Description

计算机存储介质、嵌入式调度方法及***
技术领域
本发明涉及计算机软件领域,尤其涉及一种计算机存储介质、嵌入式调度方法及***。
背景技术
嵌入式***(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机***”,是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用***对功能、可靠性、成本、体积、功耗等严格要求的专用计算机***。相应的,嵌入式操作***(Embedded Operating System,简称:EOS)是指用于嵌入式***的操作***,通常包括与硬件相关的底层驱动软件、***内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。目前在嵌入式领域广泛使用的操作***有:嵌入式linux、windows Embedded、VxWorks,以及应用在智能手机和平板电脑的Android、iOS等。
嵌入式操作***负责嵌入式***的全部软、硬件资源的分配、任务调度,控制、协调并发活动。在这些嵌入式操作***中都内嵌有多任务调度***,例如,嵌入式调度***,以完成***复杂的调度任务。这种嵌入式调度***具备设计合理、优化得当、功能强大且无需应用开发者进行设计和开发的优点,使用效果好。
然而这种嵌入式***通常需要进行复杂的设计,容易导致嵌入式调度***的内存资源消耗大、启动时间长,进而产生一系列问题。例如,当嵌入式***应用于不同领域,尤其是物联网领域时,这种缺点变得尤其明显。由于成本限制,例如物联网设备等的硬件***的硬件资源都相当有限,现有的嵌入式***无法应用于这些设备进行任务调度,而目前适用于这些设备的嵌入式调度方案往往存在使用效果差,且资源浪费严重的问题。
发明内容
本申请提供了一种计算机存储介质、嵌入式调度方法及***,用于解决现有的嵌入式调度方案无法兼顾使用效果和内存资源消耗以及启动耗时的问题。
本申请的第一方面是为了提供一种嵌入式调度方法,包括:遍历各任务对应的第一整数中比特位的当前值,所述任务与所述第一整数一一对应,所述任务对应的第一整数中的比特位与所述任务支持的事件一一对应;将所述各任务对应的第一整数中,当前值为第一值的比特位对应的事件确定为当前的待处理事件;调用支持所述待处理事件的任务,对所述待处理事件进行处理。
本申请的第二方面是为了提供一种嵌入式调度***,包括:查询模块,用于遍历各任务对应的第一整数中比特位的当前值,所述任务与所述第一整数一一对应,所述任务对应的第一整数中的比特位与所述任务支持的事件一一对应;所述查询模块,还用于将所述各任务对应的第一整数中,当前值为第一值的比特位对应的事件确定为当前的待处理事件;处理模块,用于调用支持所述待处理事件的任务,对所述待处理事件进行处理。
本申请的第三方面是为了提供一种嵌入式调度***,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,以执行如前所述的方法。
本申请的第四方面是为了提供一种计算机存储介质,该计算机存储介质中存储有程序指令,所述程序指令被处理器执行时实现如前所述的方法。
本申请提供的计算机存储介质、嵌入式调度方法及***,通过为任务分配相应的整数,为事件分配相应的比特位,将事件对应的比特位的值设计成互不干预的单比特值,该比特位的值用于表征当前是否存在与该比特位对应的事件需要处理,后续在任务调度的过程中,通过遍历个任务对应的整数中比特位的值,即可快速准确地确定当前的待处理事件,进而调用相应的任务对该待处理事件进行处理。本方案采用事件驱动任务调度的方式,使得任务的所有事件可以用整数来缓存,在实现良好的使用效果的同时,实现轻量级、低资源消耗的调度方案,能够有效适用于硬件资源匮乏的设备,并且该方案易于实现、资源消耗低、启动快。实际应用中,上述方案既可用于普通任务的调度,也可用于调用层级深的***,并且能够降低***的耦合性。
附图说明
下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
图1A~图1E为本申请实施例一提供的嵌入式调度方法的流程示意图;
图1F为任务注册的举例示意图;
图1G为本发明实施例一中调度流程的示例图;
图2A~图2B,2D~图2G,以及图2I为本申请实施例二提供的嵌入式调度方法的流程示意图;
图2C为本发明实施例二中调度流程的示例图;
图2H为本发明实施例二中消息缓存的流程示例图;
图3A~图3D为本申请实施例三提供的嵌入式调度***的结构示意图;
图4A~图4D为本申请实施例四提供的嵌入式调度***的结构示意图;
图5为本发明实施例五提供的一种嵌入式调度***的结构示例图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图1A为本申请实施例一提供的一种嵌入式调度方法的流程示意图;参考附图1A可知,本实施例提供了一种嵌入式调度方法,该嵌入式调度方法用于实现轻量级、低资源消耗的调度方案,具体的,该嵌入式调度方法包括:
101:遍历各任务对应的第一整数中比特位的当前值,所述任务与所述第一整数一一对应,所述任务对应的第一整数中的比特位与所述任务支持的事件一一对应;
102:将所述各任务对应的第一整数中,当前值为第一值的比特位对应的事件确定为当前的待处理事件;
103:调用支持所述待处理事件的任务,对所述待处理事件进行处理。
具体的,该嵌入式调度方法的执行主体可以为嵌入式调度***。在实际应用中,该嵌入式调度***可以为存储有相关执行代码的介质,例如,U盘等;或者,该嵌入式调度***还可以为集成或安装有相关执行代码的实体装置,例如,芯片、智能终端、计算机等。
实际应用中,不同任务支持的事件不同,即不同的任务能够处理的事件不同。本实施例中,预先为各任务分配对应的整数,并为各任务支持的事件分配相应的比特位。具体的,所述方法还包括:为每个任务分配相应的整数,并将该任务对应的整数下,该整数的比特位分别分配给该任务支持的事件。举例来说:假设当前支持调用的有任务A,任务B和任务C,其中,任务A支持处理的事件有事件A1,A2;任务B支持处理的事件有事件B1,B2和B3;任务C支持处理的事件有C1。则相应的,为任务A分配整数a,为任务B分配整数b,为任务C分配整数c,整数a,b,c都可以包括多个比特位,将整数a的比特位a1分配给事件A1,将整数a的比特位a2分配给事件A2,将整数b的比特位b1分配给事件B1,将整数b的比特位b2分配给事件B2,将整数b的比特位b3分配给事件B3,以此类推,针对每个任务,将其对应的整数的比特位分配给该任务支持的事件,具体的,任务和整数之间一一对应,任务对应的整数的比特位和该任务支持的事件之间一一对应。
具体的,某事件对应的比特位的不同取值可以表征当前是否存在该事件需要处理。例如,当前接收到一事件需要进行处理,则将该事件对应的比特值设置为相应的值,以表征当前存在需要处理的该项事件。相应的,当该事件对应的比特位的值为另一值时,表征当前没有需要处理的该项事件。
基于上述场景,可选的,所述方法还包括:若检测到新事件,则将该新事件对应的比特位的值设置为所述第一值。再可选的,当待处理事件处理完成后,则可以对其对应的比特位的值进行更新,以提高后续调度的准确性和可靠性。相应的,所述嵌入式调度方法还可以包括:若完成对所述待处理事件的处理,则将所述待处理事件对应的比特位设置为第二值。其中,所述第一值和第二值中的“第一”“第二”用于表示两者的取值不同,其具体的取值可以自定义设定,例如,可以设定第一值可以为1,第二值可以为0。
其中,这里所说的新事件为新产生的需要处理的事件,举例来说,所述新事件可以是从调度***外部接收的事件,也可以是调度***内部在处理之前的某个事件时触发产生的事件,总之,只要当前有新产生的需要处理的事件,则将该需要处理的事件对应的比特位设置为相应的值。具体的,事件对应的比特位的值可以包括1和0。可选的,可以将1用于表征当前存在需要处理的该事件,将0用于表征当前没有需要处理的该事件。相应的,仍结合前述举例,初始时可以将各事件对应的比特位的值设置为0。假设当前检测到有新事件A1和B2,则将事件A1对应的比特位a1和事件B1对应的比特位b2设置为1,后续进行调度时,检测到比特位a1和b2的值为1,则可确定比特位a1和b2对应的事件A1和B2为待处理事件。
可选的,为了进一步节省调度所需的资源和空间,可以根据任务支持的事件数量为其分配比特位数量一致的整数。相应的,如图1B所示,图1B为本申请实施例一提供的另一种嵌入式调度方法的流程示意图,在实施例一的基础上,所述方法还包括:
104:为每个任务分配第一整数,所述任务对应的第一整数的比特位数量与所述任务支持的事件的数量一致;
105:将所述任务对应的第一整数的比特位一一对应地分配给所述任务支持的事件。
以实际场景举例来说:针对当前可调用的所有任务,为每个任务分配整数,每个任务对应的整数的比特位数量与该任务支持的事件数量一致,仍结合前述举例来说,对于任务A,其支持的事件数量为2个,则为其分配比特位为2位的整数a(整数a包括比特位[a1][a2]),对于任务B,其支持的事件数量为3个,则为其分配比特位为3位的整数b(整数b包括比特位[b1][b2][b3]),对于任务C,其支持的事件数量为1个,则为其分配比特位为1位的整数c(例如,整数c包括比特位[c1])。分配对应的整数后,针对每个任务,将该任务对应的整数的比特位一一对应地分配给该任务支持的事件,仍结合前述举例来说,对于任务A,将比特位a1和a2分别分配给事件A1和A2(例如,将a1分配给事件A2,将a2分配给事件A1),对于任务B,将比特位b1,b2和b3分别分配给事件B1,B2和B3(例如,将b1分配给事件B2,将b2分配给事件B1,将b3分配给事件B3),对于任务C,将比特位c1分配给事件C1。相应的,在调度过程中,一旦产生新的事件,例如,新事件为C1,则将该新事件C1对应的比特位c1的值设置为第一值,例如,设置为1,后续通过遍历各任务对应的整数中比特位的当前值,可以快速准确地将其值为1的事件,即事件C1确定为待处理事件,从而调用支持事件C1的任务,即任务C,对该事件C1进行处理。
实际应用中,各任务对应的整数的分布方式可以有多种,例如,可以离散分布或者也可以相邻分布。其中,离散分布的方式可以随意设置整数的位置,因此灵活性更高。或者,也可以采用相邻分布的方式,来提高整数分布的集成性,以便在遍历各任务对应的整数时,进一步减少处理资源的消耗。相应的,在一种可实施的方式中,对于各任务对应的整数,可以通过建立整数数组的方式来生成这些整数,具体的,如图1C所示,图1C为本申请实施例一提供的又一种嵌入式调度方法的流程示意图,在实施例一的基础上,104具体包括:
1041:根据所述各任务的数量,建立包括多个第一整数的一维整数数组,所述多个第一整数的数量与所述各任务的数量一致;
1042:将所述一维整数数组中的第一整数一一对应地分配给所述各任务。
具体的,根据当前可调用的各任务的数量,建立相应的一维数组,按照一一对应的分配原则,将该数组中的整数分配给各任务,后续,再针对每个任务将其对应的整数的比特位一一对应地分配给该任务支持的事件。可选的,各整数的比特位数量可以与其对应的任务支持的事件数量一致,具体方案可以参照前述实施方式中的步骤,在此不再赘述。具体的,结合前述举例来说,本实施方式中:对于任务A,B和C,建立包括3个整数a,b和c的一维整数数组,将整数a,b和c一一对应地分配给任务A,B和C,具体的,可以将整数a分配至任务A,将整数b分配至任务B,将整数c分配至任务C。具体的,通过本实施方式,用一维整数数组来缓存所有的事件,每一个任务可以分配到该数组中的一个整数作为其支持的事件的事件缓存,可选的,该缓存可以默认为0,即各比特位的初始值可以设置为0,即表征当前没有需要处理的事件。其中,每个事件对应于整数的一个比特位,如果收到了某一事件需要被处理,则该事件对应的比特位的值将会被置1,后续该事件被处理后该比特位会被再次置0。
本实施方式,通过建立一维数组的方式,生成各任务对应的整数,从而在后续遍历各整数时,减小处理资源的消耗和耗时,提高调度的效率,以使本调度方案更好地适用于硬件资源有限的设备。
基于本实施例在进行调度时需要先查找其比特位的值不为0的事件,然后对这些事件进行处理,在此过程中,可选的,在确定需要处理的待处理事件后,可以将比特顺序的特性引入事件间的优先级控制,在处理的过程中,通过按照比特顺序对整数中的比特位依次进行轮询,实现事件处理的优先级控制。相应的,如图1D所示,图1D为本申请实施例一提供的又一种嵌入式调度方法的流程示意图,在实施例一的基础上,在105之前,还包括:
106:确定各事件的优先级;相应的,105具体包括:
1051:按照比特顺序和事件的优先级一致的分配原则,将所述任务对应的第一整数的比特位一一对应地分配给所述任务支持的事件。
在实际调度过程中,为了提高调度效果和用户体验,各事件的处理优先级可能不同,有些事件需要被优先处理,有些事件可以暂缓处理。在本方案中,基于事件对应至比特位,且比特位之间存在比特顺序的特性,引入事件处理的优先级,无需专门配置用于进行优先级调度的资源,简单方便地实现事件处理的优先级控制。具体的,在本实施方式中,可以根据需要先确定各事件的优先级,确定优先级之后,结合前述实施方式,在为各事件分配比特位的同时,考虑比特顺序和各事件的优先级,按照比特顺序和时间的优先级一致非分配原则,为每个事件分配相应的比特位。这里的一致包括相同或者相反,即只要使得比特顺序和事件的优先级之间存在规律的映射关系即可,例如,可以按照比特顺序与事件优先级相同的原则进行分配,或者也可以按照比特顺序与事件优先级相反的原则进行分配,在此不对其进行限制。
可选的,基于上述事件分配方案,假设按照比特顺序和事件的优先级相同的原则进行分配,则后续在进行事件处理时,如图1E所示,在图1D所示实施方式的基础上,103具体包括:
1031:按照所述待处理事件对应的比特位的比特顺序,依次针对每个待处理事件,调用支持所述待处理事件的任务,对所述待处理事件进行处理。
具体的,为各任务分配对应的整数后,针对每个任务,在将其对应的整数的比特位分配给其支持的事件的过程中,可以先确定各事件的优先级,然后按照比特顺序与事件的优先级一致的原则进行分配,以使后续通过遍历各整数的比特位,确定出待处理事件并对待处理事件进行处理的过程中,可以按照比特顺序对待处理事件进行处理。由于在之前为事件分配比特位的过程中,引入了比特顺序和事件优先级的对应关系,因此,后续基于比特顺序进行事件处理的同时,实际上也在按照事件的优先级进行事件处理。
上述实施方式,通过在为事件分配比特位的过程中,结合考虑比特顺序的特性和事件的优先级,后续按照比特顺序进行事件处理的方案,简单巧妙地利用比特顺序的特性,实现事件处理的优先级控制,从而进一步节省调度所需的资源。
具体的,在本方案中的各任务包括当前调度***可调用的任务。实际应用中,如果需要实现对任务的调用,需要该任务预先在调度***中进行注册。相应的,在实施例一的基础上,所述方法还包括:接收注册请求,所述注册请求包括任务的任务处理函数;根据所述任务处理函数,对所述任务进行函数注册。具体的,函数注册的具体方案可以结合现有的任务注册的方案实施,在此不再阐述。举例来说,对于调度***来说,其可调用的任务可能有多个,如图1F所示,图1F为任务注册的举例示意图。通过任务与调度器之间的数据交互,完成任务注册。
可以理解,本实施例中的各步骤可以用于表示单次执行的过程,实际应用中,调度***可能需要循环执行上述过程,以完成任务调度和事件处理。举例来说,如图1G所示,图1G为本发明实施例一中调度流程的示例图,在实际应用中,在***启动后,检测当前是否存在待处理事件,如果存在则调用相应的任务对待处理事件进行处理,处理完成后,再次返回执行检测当前是否存在待处理事件的步骤。以此类推,在循环往复的过程中实现调度。其中,检测和处理待处理事件的具体方案可以参照本方案中的相关执行步骤,在此不再进行重复说明。可选的,在上述过程中,如果不存在待处理事件,则可进入休眠状态,以节省设备的电量或消耗的资源,后续可以基于现有的唤醒机制唤醒后,再次检测是否存在待处理事件。通过本方案,能够提供简洁可靠的访问方式以便于调度器进行访问。
本实施例提供的嵌入式调度方法,通过为任务分配相应的整数,为事件分配相应的比特位,将事件对应的比特位的值设计成互不干预的单比特值,该比特位的值用于表征当前是否存在与该比特位对应的事件需要处理,后续在任务调度的过程中,通过遍历个任务对应的整数中比特位的值,即可快速准确地确定当前的待处理事件,进而调用相应的任务对该待处理事件进行处理。本方案采用事件驱动任务调度的方式,使得任务的所有事件可以用整数来缓存,在实现良好的使用效果的同时,实现轻量级、低资源消耗的调度方案,能够有效适用于硬件资源匮乏的设备,并且该方案易于实现、资源消耗低、启动快。实际应用中,上述方案既可用于普通任务的调度,也可用于调用层级深的***,并且能够降低***的耦合性。
实际应用中,对于一个事件来说,可能伴随有与其关联的消息,对这种事件的处理需要涉及到对这些消息进行处理,因此,在调度过程中,还可能需要涉及消息的缓存和处理机制。
实际应用中,消息池可用于缓存各种消息。相应的,如图2A所示,图2A为本申请实施例二提供的一种嵌入式调度方法的流程示意图,在实施例一的基础上,该嵌入式调度方法还包括:
201:若检测到新事件且新事件包括消息,则将所述消息缓存至消息池。
具体的,若检测到的新事件包括消息,则将该消息缓存至消息池中,后续对该事件进行处理时,从消息池中获取该消息,通过对该消息进行处理,完成对事件的处理。相应的,如图2B所示,图2B为本申请实施例二提供的另一种嵌入式调度方法的流程示意图,在图2A所示实施方式的基础上,103具体可以包括:
1032:获取与所述待处理事件关联的目标消息;
1033:调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息。本实施方式,对于包括消息的事件,通过对其消息进行处理完成对该事件的处理,并且清除经过处理的消息,从而在实现事件处理的基础上,有效节约消息缓存所占用的内存。
举例来说,如图2C所示,图2C为本发明实施例二中调度流程的示例图,参照附图所示,参照附图,图2C与图1G的区别在于,当检测到存在待处理事件后,需要调用相应的任务,并检测是否存在该事件对应的消息。如果存在对应的消息,则需要生成用于处理该消息的新事件,并且将该消息进行缓存。之后,再次检测当前需要处理的待处理事件。其中,各步骤的具体实现方法可以参照方法实施例中的相关内容。
可选的,在消息缓存的过程中,可以采用内存动态分配机制来进行消息的缓存,即实时根据当前的消息大小,动态为其分配相应大小的内存来实现消息缓存,这种方案的灵活性高但资源消耗较大,并且实现的复杂程度也较大。再可选的,还可以采用定长的内存块来存储消息,即预先设定静态的固定大小的内存用于缓存消息,这种方案资源耗费小,但由于其预先设定的内存大小是固定的,因此为了保证有足够的消息缓存空间,往往会设定较大的内存,而对于当前消息较少的场景,会导致很大的内存资源浪费。
对此,为了可靠有效地实现消息缓存,如图2D所示,图2D为本申请实施例二提供的又一种嵌入式调度方法的流程示意图,在实施例二的基础上,该嵌入式调度方法还包括:
202:按照预设的划分粒度,对消息池中的内存进行划分,获得多个内存块;
相应的,201具体可以包括:
2011:若检测到新事件且所述新事件包括消息,则从所述多个内存块中查找出空闲的目标内存块,并将所述消息缓存至所述目标内存块。
其中,所述划分粒度可以根据需要或者经验设定,例如,10个内存单元为一个粒度。可选的,所述划分粒度可以为单一的,即根据一个划分粒度将消息池平均划分为大小相等的多个内存块;或者,所述划分粒度还可以为多个,即将消息池划分为大小不等的多个内存块,本实施例在此不对其进行限制。可选的,为了提高消息缓存的效率,可以对消息池中的内存进行平均划分。通过将消息池划分为多个内存块,实现对消息池的内存进行分布式管理,无需动态分配内存,也无需限定过大的固定内存,提高消息缓存的效率,节省资源消耗。具体的,在进行消息缓存时,从所述多个内存块中查找出空闲的目标内存块,并将所述消息缓存至所述目标内存块。
本实施方式中,将消息池划分为多个内存块,实现分布式管理,若检测到的新事件包括消息,需要对该消息进行缓存时,从多个内存块中查找出空闲的内存块,并将该新事件的消息缓存至查找出的内存块中,提高消息缓存的效率,节省资源消耗。
可选的,为了更快更准确的查找出空闲的内存块,如图2E所示,图2E为本申请实施例二提供的另一种嵌入式调度方法的流程示意图,在图2D所示实施方式的基础上,所述方法还可以包括:
203:为每个内存块设置状态标识,所述内存块的状态标识用于表征所述内存块是否空闲。
具体的,将消息池划分为多个内存块后,为每个内存块设置状态标识,后续当需要查找空闲的内存块时,只需要遍历各内存块的状态标识即可快速准确地确定出空闲的内存块,提高消息缓存的效率。
其中,状态标识的形式可以有多种。可选的,为了进一步减少资源消耗,如图2F所示,图2F为本申请实施例二提供的又一种嵌入式调度方法的流程示意图,在图2E所示实施方式的基础上,203具体可以包括:
2031:创建第二整数,所述第二整数的比特位数量与所述多个内存块的数量一致;
2032:将所述第二整数的比特位一一对应地分配给所述内存块。其中,内存块的状态标识为所述内存块对应的比特位,所述内存块对应的比特位的不同值分别表征所述内存块处于空闲或非空闲。
具体的,将消息池划分为多个内存块后,根据内存块的数量,创建比特位数量与内存块数量一致的第二整数,按照一一对应的分配原则,将第二整数的比特位分配给内存块,也就是说,每个比特位表征一个内存块。由于比特位自身有可赋值的特性,因此可以用比特位的不同值表征内存块的不同状态。例如,对于某内存块对应的比特位来说,当该比特位的值为1时,表征该内存块非空闲,当该比特位的值为0时,表征该内存块空闲。这里的空闲或者非空闲用于表征内存块是否被占用,即是否缓存有数据。可选的,可以设定未被占用的内存块为空闲的内存块,设定全部或部分被占用的内存块为非空闲的内存块。
本实施方式,为每个内存块分配对应的比特位,用比特位的不同取值表征内存块是否空闲,从而简单有效地实现对内存块状态的表征,进一步节省资源消耗,提高消息缓存的效率。
基于上述状态标识,当需要为事件的消息进行缓存时,可以快速查找出空闲的内存块。具体的,如图2G所示,图2G为本申请实施例二提供的又一种嵌入式调度方法的流程示意图,在前述实施方式的基础上,2011具体可以包括:
2012:若检测到新事件且所述新事件包括消息,则遍历所述多个内存块的状态标识,查找出其状态标识为空闲的目标内存块;
2013:将所述消息缓存至所述目标内存块,并将所述目标内存块的状态标识设置为非空闲。
具体的,将消息池划分为多个内存块,并为多个内存块设置状态标识,其中,所述状态标识可以是为内存块分配的比特位,后续,若检测到的新事件包括消息,则可以遍历各内存块的状态标识,快速查找出空闲的内存块,并将消息缓存至查找出的内存块中,相应的,将该内存块的状态标识更新为非空闲,以提高后续查找空闲内存块的准确性和可靠性。
本实施方式,若检测到新事件包括消息,则基于各内存块的状态标识,快速确定空闲的内存块进行消息缓存,并对内存块的状态标识进行更新,从而提高消息缓存的效率和准确性。
具体的,查找出空闲内存块进行消息缓存的过程中,基于消息的数据大小,其占用的内存块数量也可能不同,相应的,在实施例二的基础上,2011中所述将所述消息缓存至所述目标内存块,具体可以包括:若所述消息的数据量不大于单个目标内存块的存储容量,则将所述消息缓存至所述目标内存块;若所述消息的数据量大于单个目标内存块的存储容量,则将所述消息拆分为多个消息块,并将所述多个消息块分别缓存至多个目标内存块。
举例来说,如图2H所示,图2H为本发明实施例二中消息缓存的流程示例图,参照附图所示,对于某个消息,先检测当前是否存在空闲的内存块,如果存在,则判断消息与内存块之间的大小关系,具体的,可以计算内存块容量与消息长度之差获得结果LEN,如果LEN不小于0,则该内存块的容量足够缓存该消息,结束本次消息缓存,如果LEN小于0,则需要查找另一空闲的内存块,将这两个内存块作为用于缓存该消息的内存块,并再次计算当前内存块容量(此时为用于缓存该消息的所有内存块容量之和)与消息长度之差获得当前的结果LEN,以此类推循环执行,直至LEN不小于0,则结束本次消息缓存的流程。
可以理解,在技术特征不冲突的情形下,本实施方式可以与前述其它实施方式结合实施,例如,基于状态标识查找出目标内存块的基础上,根据消息的数据量选择一个或多个目标内存块进行缓存。通过本方式,可以保证对不同大小的消息进行缓存,提高消息缓存的可靠性。
实际应用中,通过查找空闲的内存块来对事件的消息进行缓存的方案中,不同事件的消息所在的内存块不同,并且存储同一消息的内存块可能不连续,因此为了后续在进行事件处理时能够获取到相应的消息,如图2I所示,图2I为本申请实施例二提供的又一种嵌入式调度方法的流程示意图,在实施例二的基础上,所述方法还可以包括:
205:生成消息的消息头,所述消息头包括所述消息所在内存块的信息;
相应的,1032具体可以包括:
1034:确定与所述待处理事件关联的目标消息;
1035:从所述目标消息的消息头中获取所述目标消息所在内存块的信息,提取所述目标消息所在内存块中缓存的消息作为所述目标消息。
具体的,若检测到新事件包括消息,则可以将消息缓存至空闲的内存块,具体的缓存方法可以参照前述方案,在缓存消息的过程中或者缓存后,还可以生成该消息的消息头,该消息头包括消息所在内存块的信息,例如,可以包括存储有所述消息的内存块的标识。后续,对待处理事件进行处理时,可以基于各消息的消息头,确定该待处理事件对应的消息所在的内存块,并从这些内存块中提取出待处理事件对应的消息。可以理解,基于消息的数据量和内存块大小之间的匹配,消息所在的内存块信息可以有一个或多个。此外,基于前述的实施方式,内存块会有对应的比特位,相应的,在一种实施方式中这里所说的内存块的标识,还可以为其对应的比特位的标识。
本实施方式,通过生成消息的消息头,准确简单地表征消息所在的内存块,从而准确快速地确定消息的缓存位置,提高后续消息处理的效率。
进一步的,为了能够确定待处理事件对应的消息,在一种可实施方式中,在图2I所示实施方式的基础上,所述消息的消息头还包括所述消息所属事件的信息;相应的,1034具体可以包括:
1036:确定第一消息为所述目标消息,所述第一消息的消息头包括所述待处理事件的信息。
具体的,若检测到新事件包括消息,则可以将消息缓存至空闲的内存块,具体的缓存方法可以参照前述方案,在缓存消息的过程中或者缓存后,还可以生成该消息的消息头,该消息头包括消息所在内存块的信息和该消息所属事件的信息,即该新事件的信息。后续,对待处理事件进行处理时,可以基于各消息的消息头中的事件信息,确定该待处理事件对应的目标消息,并根据目标消息的消息头中的内存块信息,提取出目标消息,并对目标消息进行处理。此外,基于前述的实施方式,事件可以有对应的比特位,相应的,在一种实施方式中这里所说的事件的标识,可以为其对应的比特位的标识。本实施方式,通过生成消息的消息头,准确简单地表征事件与消息的对应的关系,并且能够准确快速地确定消息的缓存位置,从而提高后续消息处理的效率。
可选的,在另一种可实施方式中,在上述任一实施方式的基础上,所述消息的消息头还包括支持所述消息所属事件的任务的信息;相应的,1034具体可以包括:
1037:确定第二消息为所述目标消息,所述第二消息的消息头包括支持所述待处理事件的任务的信息。
具体的,若检测到新事件包括消息,则可以将消息缓存至空闲的内存块,具体的缓存方法可以参照前述方案,在缓存消息的过程中或者缓存后,还可以生成该消息的消息头,该消息头包括消息所在内存块的信息和支持所述消息所属事件的任务的信息,即支持该新事件的任务的信息。后续,对待处理事件进行处理时,可以基于各消息的消息头中的任务信息,确定待处理事件对应的目标消息,并根据目标消息的消息头中的内存块信息,提取出目标消息,并对目标消息进行处理。此外,基于前述的实施方式,事件可以有对应的比特位,相应的,在一种实施方式中这里所说的事件的标识,可以为其对应的比特位的标识。本实施方式,通过生成消息的消息头,准确简单地表征事件与消息的对应的关系,并且能够准确快速地确定消息的缓存位置,从而提高后续消息处理的效率。
进一步的,如果某事件包括的消息为多个,则可以引入消息的优先级处理机制。可选的,在上述任一实施方式的基础上,所述消息的消息头还包括消息计数信息;相应的,1033具体可以包括:
1038:按照所述目标消息对应的计数信息的顺序,依次针对每个目标信息,调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息。
具体的,当检测到的新事件包括多个消息时,在缓存这多个消息并为其生成消息头的同时,其消息头中还可以包括消息计数信息。这里所说的消息计数信息的形式可以有多种,只要能够反映顺序即可,例如,数字1,2,3…等。具体的,消息的优先级也可以根据需要设定,例如,根据接收消息的先后顺序确定优先级,越早接收的消息优先级越高。后续,对待处理事件的消息进行处理时,可以按照各消息中的消息计数信息,对各消息进行排序,并按照消息计数信息的顺序依次对每个消息进行处理,具体的处理过程中可以调用相应的任务。并且已经处理的消息可以被清除,以节省内存空间。
本实施方式,通过在消息的消息头中加入消息计数信息,地引入消息处理的优先级,简单有效地实现消息处理的优先级机制。
进一步的,在前述任一实施方式的基础上,在清除经处理的目标消息后,还可以包括:将经处理的目标消息所在的内存块的状态标识设置为空闲。通过本实施方式,可以根据消息的处理进度,对内存块的状态标识进行更新,使状态标识真实可靠地反映内存块的状态,从而提高消息缓存的准确性和可靠性。
实际应用中,上述关于消息头的各实施方式可以单独实施,也可以结合实施,本实施例在此不对其进行限制。其中,第一消息和第二消息仅用于区分基于不同的实施方式获得的消息,所述“第一”“第二”并不对消息的内容做具体限定。可以理解,第一消息和第二消息可以为相同的消息。
可以理解,只有当事件对应的消息均被处理完成后,才可认定该事件被处理完成,进而可以对该事件对应的比特位的值进行更新。可选的,在前述任一实施方式的基础上,1033具体可以包括:若所述目标消息的数量为多个,则针对任一目标消息,调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息;返回执行所述获取与所述待处理事件关联的目标消息的步骤,直至所述目标消息的数量为1,则调用支持所述待处理事件的任务,对所述目标消息进行处理,清除经处理的目标消息,并将所述待处理事件对应的比特位设置为第二值。具体的,本实施方式中在对某事件的处理过程中,如果该事件包括消息,则依次对该事件的每个消息进行处理,当处理至该事件的最后一个消息时,除了对该消息进行处理之外,还对该事件对应的比特位的值进行更新设置。通过本实施方式,在对事件进行处理的过程中,实现对事件对应的比特位值进行更新设置,保证事件状态的及时更新,提高调度的准确性和可靠性。
本实施例提供的嵌入式调度方法,将消息池划分为多个内存块,对于包括消息的事件,可以查找空闲的内存块对事件的消息进行缓存,后续对事件进行处理时,从内存块中提取相应的消息进行处理,能够实现对事件消息进行高效可靠地管理,并且有效节省内存资源。
实际应用中,为了避免调度锁死的情形,还可以采用轮询的处理方式对待处理事件进行处理。相应的,在前述任一实施方式的基础上,103具体可以包括:若存在多个待处理事件,且所述多个待处理事件中存在包括多个消息的事件,则采用轮询的处理方式,依次将每个待处理事件作为当前的处理对象,调用支持所述处理对象的任务,对所述处理对象进行单次处理,直至完成对所有待处理事件的处理。
其中,所述单次处理可以表示对单个目标的处理。举例来说,所述调用支持所述处理对象的任务,对所述处理对象进行单次处理具体可以包括:若所述处理对象包括消息,则调用支持所述处理对象的任务对所述处理对象的单个消息进行处理;若所述处理对象不包括消息,则调用支持所述处理对象的任务,对所述处理对象进行处理。
具体的,本实施方式在消息处理策略上,如果某事件对应多个消息,则在处理完该事件的一个消息后跳过剩余的消息,进入下一事件的调度,剩余的消息等待后续的调度轮询,这样能够有效的防止调度使用不当,并且避免调度锁死,例如,任务给自己发送消息导致的锁死。
需要说明的是,附图只是一种举例的实施方式,上述方法实施例中只要在逻辑不冲突的前提下,上述各步骤之间的执行顺序可以不限于图中所示的情形。以步骤一和步骤二举例来讲,可以先执行步骤一再执行步骤二,或者先执行步骤二再执行步骤一,或者步骤一和步骤二同时执行,本实施例不对其进行限制。
图3A为本申请实施例三提供的一种嵌入式调度***的结构示意图;参考附图3A可知,本实施例提供了一种嵌入式调度***,该嵌入式调度***用于实现轻量级、低资源消耗的调度方案,具体的,该嵌入式调度***包括:
查询模块31,用于遍历各任务对应的第一整数中比特位的当前值,所述任务与所述第一整数一一对应,所述任务对应的第一整数中的比特位与所述任务支持的事件一一对应;
查询模块31,还用于将所述各任务对应的第一整数中,当前值为第一值的比特位对应的事件确定为当前的待处理事件;
处理模块32,用于调用支持所述待处理事件的任务,对所述待处理事件进行处理。
在实际应用中,该嵌入式调度***可以为存储有相关执行代码的介质,例如,U盘等;或者,该嵌入式调度***还可以为集成或安装有相关执行代码的实体装置,例如,芯片、智能终端、计算机等。
实际应用中,不同任务支持的事件不同,即不同的任务能够处理的事件不同。本实施例中,预先为各任务分配对应的整数,并为各任务支持的事件分配相应的比特位。具体的,某事件对应的比特位的不同取值可以表征当前是否存在该事件需要处理。
基于上述场景,所述***还可以包括:第一更新模块,用于若完成对所述待处理事件的处理,则将所述待处理事件对应的比特位设置为第二值。当待处理事件处理完成后,第一更新模块可以对其对应的比特位的值进行更新,以提高后续调度的准确性和可靠性。
再可选的,所述***还包括:第二更新模块,用于若检测到新事件,则将所述新事件对应的比特位的值设置为所述第一值。其中,这里所说的新事件为新产生的需要处理的事件,当前有新产生的需要处理的事件时,第二更新模块将该需要处理的事件对应的比特位设置为相应的值。
为了进一步节省调度所需的资源和空间,可以根据任务支持的事件数量为其分配比特位数量一致的整数。相应的,如图3B所示,在实施例三的基础上,所述***还包括:分配模块33,用于为每个任务分配第一整数,所述任务对应的第一整数的比特位数量与所述任务支持的事件的数量一致;分配模块33,还用于将所述任务对应的第一整数的比特位一一对应地分配给所述任务支持的事件。
以实际场景举例来说:针对当前可调用的所有任务,分配模块33为每个任务分配整数,每个任务对应的整数的比特位数量与该任务支持的事件数量一致。分配模块33分配对应的整数后,针对每个任务,分配模块33将该任务对应的整数的比特位一一对应地分配给该任务支持的事件。
在一种可实施的方式中,对于各任务对应的整数,可以通过建立整数数组的方式来生成这些整数,具体的,如图3C所示,在实施例三的基础上,分配模块33包括:第一创建单元331,用于根据所述各任务的数量,建立包括多个第一整数的一维整数数组,所述多个第一整数的数量与所述各任务的数量一致;第一分配单元332,用于将所述一维整数数组中的第一整数一一对应地分配给所述各任务。
具体的,第一创建单元331根据当前可调用的各任务的数量,建立相应的一维数组,第一分配单元332按照一一对应的分配原则,将该数组中的整数分配给各任务,后续,分配模块33再针对每个任务将其对应的整数的比特位一一对应地分配给该任务支持的事件。本实施方式,通过建立一维数组的方式,生成各任务对应的整数,从而在后续遍历各整数时,减小处理资源的消耗和耗时,提高调度的效率,以使本调度方案更好地适用于硬件资源有限的设备。
可选的,在确定需要处理的待处理事件后,可以将比特顺序的特性引入事件间的优先级控制。相应的,如图3D所示,在实施例三的基础上,所述***还包括:事件优先级模块34,用于确定各事件的优先级;分配模块33,具体用于按照比特顺序和事件的优先级一致的分配原则,将所述任务对应的第一整数的比特位一一对应地分配给所述任务支持的事件。
在实际调度过程中,为了提高调度效果和用户体验,各事件的处理优先级可能不同。在本实施方式中,事件优先级模块34先确定各事件的优先级,确定优先级之后,结合前述实施方式,分配模块33在为各事件分配比特位的同时,考虑比特顺序和各事件的优先级,按照比特顺序和时间的优先级一致非分配原则,为每个事件分配相应的比特位。这里的一致包括相同或者相反。
可选的,基于上述事件分配方案,假设按照比特顺序和事件的优先级相同的原则进行分配,则后续在进行事件处理时,在图3D所示实施方式的基础上,处理模块32,具体用于按照所述待处理事件对应的比特位的比特顺序,依次针对每个待处理事件,调用支持所述待处理事件的任务,对所述待处理事件进行处理。本实施方式,通过在为事件分配比特位的过程中,结合考虑比特顺序的特性和事件的优先级,后续按照比特顺序进行事件处理的方案,简单巧妙地利用比特顺序的特性,实现事件处理的优先级控制,从而进一步节省调度所需的资源。
具体的,在本方案中的各任务包括当前调度***可调用的任务。实际应用中,如果需要实现对任务的调用,需要该任务预先在调度***中进行注册。相应的,在实施例三的基础上,所述***还包括:接收模块,用于接收注册请求,所述注册请求包括任务的任务处理函数;注册模块,用于根据所述任务处理函数,对所述任务进行函数注册。
本实施例提供的嵌入式调度***,通过为任务分配相应的整数,为事件分配相应的比特位,将事件对应的比特位的值设计成互不干预的单比特值,该比特位的值用于表征当前是否存在与该比特位对应的事件需要处理,后续在任务调度的过程中,通过遍历个任务对应的整数中比特位的值,即可快速准确地确定当前的待处理事件,进而调用相应的任务对该待处理事件进行处理。本方案采用事件驱动任务调度的方式,使得任务的所有事件可以用整数来缓存,在实现良好的使用效果的同时,实现轻量级、低资源消耗的调度方案,能够有效适用于硬件资源匮乏的设备,并且该方案易于实现、资源消耗低、启动快。实际应用中,上述方案既可用于普通任务的调度,也可用于调用层级深的***,并且能够降低***的耦合性。
实际应用中,对于一个事件来说,可能伴随有与其关联的消息,对这种事件的处理需要涉及到对这些消息进行处理,因此,在调度过程中,还可能需要涉及消息的缓存和处理机制。
实际应用中,消息池可用于缓存各种消息。相应的,如图4A所示,图4A为本申请实施例四提供的一种嵌入式调度***的结构示意图,在实施例三的基础上,该嵌入式调度***还包括:缓存模块41,用于若检测到新事件且所述新事件包括消息,则将所述消息缓存至消息池。
具体的,若检测到的新事件包括消息,则将该消息缓存至消息池中,后续对该事件进行处理时,从消息池中获取该消息,通过对该消息进行处理,完成对事件的处理。相应的,如图4B所示,在图4A所示实施方式的基础上,处理模块32包括:消息获取单元321,用于获取与所述待处理事件关联的目标消息;消息处理单元322,用于调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息。本实施方式,对于包括消息的事件,通过对其消息进行处理完成对该事件的处理,并且清除经过处理的消息,从而在实现事件处理的基础上,有效节约消息缓存所占用的内存。
为了可靠有效地实现消息缓存,如图4C所示,在实施例四的基础上,所述***还包括:划分模块42,用于按照预设的划分粒度,对消息池中的内存进行划分,获得多个内存块;缓存模块41,具体用于若检测到新事件且所述新事件包括消息,则从所述多个内存块中查找出空闲的目标内存块,并将所述消息缓存至所述目标内存块。
其中,所述划分粒度可以根据需要或者经验设定。划分模块42将消息池划分为多个内存块,实现对消息池的内存进行分布式管理。缓存模块41在进行消息缓存时,从所述多个内存块中查找出空闲的目标内存块,并将所述消息缓存至所述目标内存块。本实施方式中,将消息池划分为多个内存块,实现分布式管理,若检测到的新事件包括消息,需要对该消息进行缓存时,从多个内存块中查找出空闲的内存块,并将该新事件的消息缓存至查找出的内存块中,提高消息缓存的效率,节省资源消耗。
可选的,为了更快更准确的查找出空闲的内存块,如图4D所示,在图4C所示实施方式的基础上,所述***还包括:标识模块43,用于为每个内存块设置状态标识,所述内存块的状态标识用于表征所述内存块是否空闲。具体的,划分模块42将消息池划分为多个内存块后,标识模块43为每个内存块设置状态标识,后续当缓存模块41需要查找空闲的内存块时,只需要遍历各内存块的状态标识即可快速准确地确定出空闲的内存块,提高消息缓存的效率。
其中,状态标识的形式可以有多种。可选的,为了进一步减少资源消耗,在图4D所示实施方式的基础上,标识模块43包括:
第二创建单元,用于创建第二整数,所述第二整数的比特位数量与所述多个内存块的数量一致;
第二分配单元,用于将所述第二整数的比特位一一对应地分配给所述内存块,其中,内存块的状态标识为所述内存块对应的比特位,所述内存块对应的比特位的不同值分别表征所述内存块处于空闲或非空闲。
具体的,划分模块42将消息池划分为多个内存块后,第二创建单元根据内存块的数量,创建比特位数量与内存块数量一致的第二整数,第二分配单元按照一一对应的分配原则,将第二整数的比特位分配给内存块。
本实施方式,为每个内存块分配对应的比特位,用比特位的不同取值表征内存块是否空闲,从而简单有效地实现对内存块状态的表征,进一步节省资源消耗,提高消息缓存的效率。
基于上述状态标识,当需要为事件的消息进行缓存时,可以快速查找出空闲的内存块。具体的,在前述实施方式的基础上,缓存模块具体可以包括:查找单元,用于若检测到新事件且所述新事件包括消息,则遍历所述多个内存块的状态标识,查找出其状态标识为空闲的目标内存块;存储单元,用于将所述消息缓存至所述目标内存块,并将所述目标内存块的状态标识设置为非空闲。本实施方式,若检测到新事件包括消息,则基于各内存块的状态标识,快速确定空闲的内存块进行消息缓存,并对内存块的状态标识进行更新,从而提高消息缓存的效率和准确性。
具体的,查找出空闲内存块进行消息缓存的过程中,基于消息的数据大小,其占用的内存块数量也可能不同,相应的,在实施例四的基础上,所述存储单元,具体用于若所述消息的数据量不大于单个目标内存块的存储容量,则将所述消息缓存至所述目标内存块;所述存储单元,还具体用于若所述消息的数据量大于单个目标内存块的存储容量,则将所述消息拆分为多个消息块,并将所述多个消息块分别缓存至多个目标内存块。通过本方式,可以保证对不同大小的消息进行缓存,提高消息缓存的可靠性。
实际应用中,为了在进行事件处理时能够获取到相应的消息,在实施例四的基础上,所述***还包括:生成模块,用于生成消息的消息头,所述消息头包括所述消息所在内存块的信息;消息获取单元321包括:处理子单元,用于确定与所述待处理事件关联的目标消息;提取子单元,用于从所述目标消息的消息头中获取所述目标消息所在内存块的信息,提取所述目标消息所在内存块中缓存的消息作为所述目标消息。本实施方式,通过生成消息的消息头,准确简单地表征消息所在的内存块,从而准确快速地确定消息的缓存位置,提高后续消息处理的效率。
进一步的,为了能够确定待处理事件对应的消息,在一种可实施方式中,在上述实施方式的基础上,所述消息的消息头还包括所述消息所属事件的信息;所述处理子单元,具体用于确定第一消息为所述目标消息,所述第一消息的消息头包括所述待处理事件的信息。本实施方式,通过生成消息的消息头,准确简单地表征事件与消息的对应的关系,并且能够准确快速地确定消息的缓存位置,从而提高后续消息处理的效率。
可选的,在另一种可实施方式中,在上述任一实施方式的基础上,所述消息的消息头还包括支持所述消息所属事件的任务的信息;所述处理子单元,具体用于确定第二消息为所述目标消息,所述第二消息的消息头包括支持所述待处理事件的任务的信息。本实施方式,通过生成消息的消息头,准确简单地表征事件与消息的对应的关系,并且能够准确快速地确定消息的缓存位置,从而提高后续消息处理的效率。
进一步的,如果某事件包括的消息为多个,则可以引入消息的优先级处理机制。可选的,在前述任一实施方式的基础上,所述消息的消息头还包括消息计数信息;消息处理单元322,具体用于按照所述目标消息对应的计数信息的顺序,依次针对每个目标信息,调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息。本实施方式,通过在消息的消息头中加入消息计数信息,地引入消息处理的优先级,简单有效地实现消息处理的优先级机制。
进一步的,在前述任一实施方式的基础上,在清除经处理的目标消息后,还可以将经处理的目标消息所在的内存块的状态标识设置为空闲。相应的,所述***还包括:第三更新模块,用于将经处理的目标消息所在的内存块的状态标识设置为空闲。通过本实施方式,可以根据消息的处理进度,对内存块的状态标识进行更新,使状态标识真实可靠地反映内存块的状态,从而提高消息缓存的准确性和可靠性。
可以理解,只有当事件对应的消息均被处理完成后,才可认定该事件被处理完成,进而可以对该事件对应的比特位的值进行更新。可选的,在前述任一实施方式的基础上,消息处理单元322,具体用于若所述目标消息的数量为多个,则针对任一目标消息,调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息;消息处理单元322,还具体用于再次执行所述获取与所述待处理事件关联的目标消息的步骤,直至所述目标消息的数量为1,则调用支持所述待处理事件的任务,对所述目标消息进行处理,清除经处理的目标消息,并将所述待处理事件对应的比特位设置为第二值。通过本实施方式,在对事件进行处理的过程中,实现对事件对应的比特位值进行更新设置,保证事件状态的及时更新,提高调度的准确性和可靠性。
本实施例提供的嵌入式调度***,将消息池划分为多个内存块,对于包括消息的事件,可以查找空闲的内存块对事件的消息进行缓存,后续对事件进行处理时,从内存块中提取相应的消息进行处理,能够实现对事件消息进行高效可靠地管理,并且有效节省内存资源。
实际应用中,为了避免调度锁死的情形,还可以采用轮询的处理方式对待处理事件进行处理。相应的,在前述任一实施方式的基础上,处理模块32,具体用于若存在多个待处理事件,且所述多个待处理事件中存在包括多个消息的事件,则采用轮询的处理方式,依次将每个待处理事件作为当前的处理对象,调用支持所述处理对象的任务,对所述处理对象进行单次处理,直至完成对所有待处理事件的处理。
其中,所述单次处理可以表示对单个目标的处理。举例来说,处理模块32,具体用于若存在多个待处理事件,且所述多个待处理事件中存在包括多个消息的事件,则采用轮询的处理方式,依次将每个待处理事件作为当前的处理对象,若所述处理对象包括消息,则调用支持所述处理对象的任务对所述处理对象的单个消息进行处理,直至完成对所有待处理事件的处理;处理模块32,还具体用于若存在多个待处理事件,且所述多个待处理事件中存在包括多个消息的事件,则采用轮询的处理方式,依次将每个待处理事件作为当前的处理对象,若所述处理对象不包括消息,则调用支持所述处理对象的任务,对所述处理对象进行处理,直至完成对所有待处理事件的处理。本实施方式在消息处理策略上,如果某事件对应多个消息,则在处理完该事件的一个消息后跳过剩余的消息,进入下一事件的调度,剩余的消息等待后续的调度轮询,这样能够有效的防止调度使用不当,并且避免调度锁死,例如,任务给自己发送消息导致的锁死。
图5为本发明实施例五提供的一种嵌入式调度***的结构示例图,如图5所示,该***包括:调度器、事件管理模块和消息管理模块。
其中,事件管理模块主要负责缓存事件,例如,该事件可以是从外部的事件源接收到的事件或者是在事件处理过程中触发产生的事件;消息管理模块包括消息头模块和消息池,消息管理模块主要负责消息的缓存,调度器则主要负责事件和消息的调度处理。事件管理模块中的列表表示存储有各任务对应的整数的一维数组,列表中的每个单元表示单个整数,每个整数对应一个任务,该整数中的比特位与该任务支持的事件一一对应。消息管理模块中存储有各消息的消息头,消息池用于缓存各消息。
具体的,调度器基于事件管理模块和消息管理模块中缓存的事件和消息,参照调度方案进行调度处理。具体的,调度器执行的调度方案可以参照前述方法实施例中的相关内容,本实施例在此不再赘述。
本实施例提供的嵌入式调度***,采用事件驱动任务调度的方式,使得任务的所有事件可以用整数来缓存,实现轻量级、低资源消耗的调度方案,能够有效适用于硬件资源匮乏的设备,并且该方案易于实现、资源消耗低、启动快。实际应用中,上述嵌入式调度方案既可以用于普通任务的调度,也可适用于调用层级深的***,并且能够降低***的耦合性。
本申请实施例六还提供一种计算机存储介质,该计算机存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机存储介质中存储有程序指令,程序指令用于上述实施例中的嵌入式调度方法。
本申请实施例七提供一种嵌入式调度***,该***可以为安装有程序运行***的终端设备,例如,手机、电脑、PAD、或者智能手表等等,该嵌入式调度***包括至少一个处理器和存储器,存储器用于存储计算机执行指令,处理器的个数可以为1个或多个,且可以单独或协同工作,处理器用于执行所述存储器存储的计算机执行指令,以实现上述实施例中的嵌入式调度方法。
以上各个实施例中的技术方案、技术特征在不相冲突的情况下均可以单独,或者进行组合,只要未超出本领域技术人员的认知范围,均属于本申请保护范围内的等同实施例。

Claims (48)

1.一种嵌入式调度方法,其特征在于,包括:
遍历各任务对应的第一整数中比特位的当前值,所述任务与所述第一整数一一对应,所述任务对应的第一整数中的比特位与所述任务支持的事件一一对应;
将所述各任务对应的第一整数中,当前值为第一值的比特位对应的事件确定为当前的待处理事件;
调用支持所述待处理事件的任务,对所述待处理事件进行处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为每个任务分配第一整数,所述任务对应的第一整数的比特位数量与所述任务支持的事件的数量一致;
将所述任务对应的第一整数的比特位一一对应地分配给所述任务支持的事件。
3.根据权利要求2所述的方法,其特征在于,所述将所述任务对应的第一整数的比特位一一对应地分配给所述任务支持的事件之前,还包括:
确定各事件的优先级;
所述将所述任务对应的第一整数的比特位一一对应地分配给所述任务支持的事件,包括:
按照比特顺序和事件的优先级一致的分配原则,将所述任务对应的第一整数的比特位一一对应地分配给所述任务支持的事件。
4.根据权利要求3所述的方法,其特征在于,所述调用支持所述待处理事件的任务,对所述待处理事件进行处理,包括:
按照所述待处理事件对应的比特位的比特顺序,依次针对每个待处理事件,调用支持所述待处理事件的任务,对所述待处理事件进行处理。
5.根据权利要求2所述的方法,其特征在于,所述为每个任务分配第一整数,包括:
根据所述各任务的数量,建立包括多个第一整数的一维整数数组,所述多个第一整数的数量与所述各任务的数量一致;
将所述一维整数数组中的第一整数一一对应地分配给所述各任务。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若完成对所述待处理事件的处理,则将所述待处理事件对应的比特位设置为第二值。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若检测到新事件,则将所述新事件对应的比特位的值设置为所述第一值。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
若检测到新事件且所述新事件包括消息,则将所述消息缓存至消息池。
9.根据权利要求8所述的方法,其特征在于,所述调用支持所述待处理事件的任务,对所述待处理事件进行处理,包括:
获取与所述待处理事件关联的目标消息;
调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
按照预设的划分粒度,对消息池中的内存进行划分,获得多个内存块;
所述若检测到新事件且所述新事件包括消息,则将所述消息缓存至消息池,包括:
若检测到新事件且所述新事件包括消息,则从所述多个内存块中查找出空闲的目标内存块,并将所述消息缓存至所述目标内存块。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
为每个内存块设置状态标识,所述内存块的状态标识用于表征所述内存块是否空闲。
12.根据权利要求11所述的方法,其特征在于,所述为每个内存块设置状态标识,包括:
创建第二整数,所述第二整数的比特位数量与所述多个内存块的数量一致;
将所述第二整数的比特位一一对应地分配给所述内存块,其中,内存块的状态标识为所述内存块对应的比特位,所述内存块对应的比特位的不同值分别表征所述内存块处于空闲或非空闲。
13.根据权利要求11所述的方法,其特征在于,所述若检测到新事件且所述新事件包括消息,则从所述多个内存块中查找出空闲的目标内存块,并将所述消息缓存至所述目标内存块,包括:
若检测到新事件且所述新事件包括消息,则遍历所述多个内存块的状态标识,查找出其状态标识为空闲的目标内存块;
将所述消息缓存至所述目标内存块,并将所述目标内存块的状态标识设置为非空闲。
14.根据权利要求10所述的方法,其特征在于,所述将所述消息缓存至所述目标内存块,包括:
若所述消息的数据量不大于单个目标内存块的存储容量,则将所述消息缓存至所述单个目标内存块;
若所述消息的数据量大于单个目标内存块的存储容量,则将所述消息拆分为多个消息块,并将所述多个消息块分别缓存至多个目标内存块。
15.根据权利要求9所述的方法,其特征在于,所述方法还包括:
生成消息的消息头,所述消息头包括所述消息所在内存块的信息;
所述获取与所述待处理事件关联的目标消息,包括:
确定与所述待处理事件关联的目标消息;
从所述目标消息的消息头中获取所述目标消息所在内存块的信息,提取所述目标消息所在内存块中缓存的消息作为所述目标消息。
16.根据权利要求15所述的方法,其特征在于,所述消息的消息头还包括所述消息所属事件的信息;所述确定与所述待处理事件关联的目标消息,包括:
确定第一消息为所述目标消息,所述第一消息的消息头包括所述待处理事件的信息。
17.根据权利要求15所述的方法,其特征在于,所述消息的消息头还包括支持所述消息所属事件的任务的信息;所述确定与所述待处理事件关联的目标消息,包括:
确定第二消息为所述目标消息,所述第二消息的消息头包括支持所述待处理事件的任务的信息。
18.根据权利要求15所述的方法,其特征在于,所述消息的消息头还包括消息计数信息;所述调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息,包括:
按照所述目标消息对应的计数信息的顺序,依次针对每个目标信息,调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息。
19.根据权利要求9所述的方法,其特征在于,所述清除经处理的目标消息之后,还包括:
将经处理的目标消息所在的内存块的状态标识设置为空闲。
20.根据权利要求9所述的方法,其特征在于,所述调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息,包括:
若所述目标消息的数量为多个,则针对任一目标消息,调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息;
返回执行所述获取与所述待处理事件关联的目标消息的步骤,直至所述目标消息的数量为1,则调用支持所述待处理事件的任务,对所述目标消息进行处理,清除经处理的目标消息,并将所述待处理事件对应的比特位设置为第二值。
21.根据权利要求1所述的方法,其特征在于,所述调用支持所述待处理事件的任务,对所述待处理事件进行处理,包括:
若存在多个待处理事件,且所述多个待处理事件中存在包括多个消息的事件,则采用轮询的处理方式,依次将每个待处理事件作为当前的处理对象,调用支持所述处理对象的任务,对所述处理对象进行单次处理,直至完成对所有待处理事件的处理。
22.根据权利要求21所述的方法,其特征在于,所述调用支持所述处理对象的任务,对所述处理对象进行单次处理,包括:
若所述处理对象包括消息,则调用支持所述处理对象的任务对所述处理对象的单个消息进行处理;
若所述处理对象不包括消息,则调用支持所述处理对象的任务,对所述处理对象进行处理。
23.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收注册请求,所述注册请求包括任务的任务处理函数;
根据所述任务处理函数,对所述任务进行函数注册。
24.一种嵌入式调度***,其特征在于,包括:
查询模块,用于遍历各任务对应的第一整数中比特位的当前值,所述任务与所述第一整数一一对应,所述任务对应的第一整数中的比特位与所述任务支持的事件一一对应;
所述查询模块,还用于将所述各任务对应的第一整数中,当前值为第一值的比特位对应的事件确定为当前的待处理事件;
处理模块,用于调用支持所述待处理事件的任务,对所述待处理事件进行处理。
25.根据权利要求24所述的***,其特征在于,所述***还包括:
分配模块,用于为每个任务分配第一整数,所述任务对应的第一整数的比特位数量与所述任务支持的事件的数量一致;
所述分配模块,还用于将所述任务对应的第一整数的比特位一一对应地分配给所述任务支持的事件。
26.根据权利要求25所述的***,其特征在于,所述***还包括:
事件优先级模块,用于确定各事件的优先级;
所述分配模块,具体用于按照比特顺序和事件的优先级一致的分配原则,将所述任务对应的第一整数的比特位一一对应地分配给所述任务支持的事件。
27.根据权利要求26所述的***,其特征在于,
所述处理模块,具体用于按照所述待处理事件对应的比特位的比特顺序,依次针对每个待处理事件,调用支持所述待处理事件的任务,对所述待处理事件进行处理。
28.根据权利要求25所述的***,其特征在于,所述分配模块包括:
第一创建单元,用于根据所述各任务的数量,建立包括多个第一整数的一维整数数组,所述多个第一整数的数量与所述各任务的数量一致;
第一分配单元,用于将所述一维整数数组中的第一整数一一对应地分配给所述各任务。
29.根据权利要求24所述的***,其特征在于,所述***还包括:
第一更新模块,用于若完成对所述待处理事件的处理,则将所述待处理事件对应的比特位设置为第二值。
30.根据权利要求24所述的***,其特征在于,所述***还包括:
第二更新模块,用于若检测到新事件,则将所述新事件对应的比特位的值设置为所述第一值。
31.根据权利要求24-30中任一项所述的***,其特征在于,所述***还包括:
缓存模块,用于若检测到新事件且所述新事件包括消息,则将所述消息缓存至消息池。
32.根据权利要求31所述的***,其特征在于,所述处理模块包括:
消息获取单元,用于获取与所述待处理事件关联的目标消息;
消息处理单元,用于调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息。
33.根据权利要求31所述的***,其特征在于,所述***还包括:
划分模块,用于按照预设的划分粒度,对消息池中的内存进行划分,获得多个内存块;
所述缓存模块,具体用于若检测到新事件且所述新事件包括消息,则从所述多个内存块中查找出空闲的目标内存块,并将所述消息缓存至所述目标内存块。
34.根据权利要求33所述的***,其特征在于,所述***还包括:
标识模块,用于为每个内存块设置状态标识,所述内存块的状态标识用于表征所述内存块是否空闲。
35.根据权利要求34所述的***,其特征在于,所述标识模块包括:
第二创建单元,用于创建第二整数,所述第二整数的比特位数量与所述多个内存块的数量一致;
第二分配单元,用于将所述第二整数的比特位一一对应地分配给所述内存块,其中,内存块的状态标识为所述内存块对应的比特位,所述内存块对应的比特位的不同值分别表征所述内存块处于空闲或非空闲。
36.根据权利要求34所述的***,其特征在于,所述缓存模块包括:
查找单元,用于若检测到新事件且所述新事件包括消息,则遍历所述多个内存块的状态标识,查找出其状态标识为空闲的目标内存块;
存储单元,用于将所述消息缓存至所述目标内存块,并将所述目标内存块的状态标识设置为非空闲。
37.根据权利要求33所述的***,其特征在于,
存储单元,具体用于若所述消息的数据量不大于单个目标内存块的存储容量,则将所述消息缓存至所述单个目标内存块;
所述存储单元,还具体用于若所述消息的数据量大于单个目标内存块的存储容量,则将所述消息拆分为多个消息块,并将所述多个消息块分别缓存至多个目标内存块。
38.根据权利要求32所述的***,其特征在于,所述***还包括:
生成模块,用于生成消息的消息头,所述消息头包括所述消息所在内存块的信息;
所述消息获取单元包括:
处理子单元,用于确定与所述待处理事件关联的目标消息;
提取子单元,用于从所述目标消息的消息头中获取所述目标消息所在内存块的信息,提取所述目标消息所在内存块中缓存的消息作为所述目标消息。
39.根据权利要求38所述的***,其特征在于,所述消息的消息头还包括所述消息所属事件的信息;
所述处理子单元,具体用于确定第一消息为所述目标消息,所述第一消息的消息头包括所述待处理事件的信息。
40.根据权利要求38所述的***,其特征在于,所述消息的消息头还包括支持所述消息所属事件的任务的信息;
所述处理子单元,具体用于确定第二消息为所述目标消息,所述第二消息的消息头包括支持所述待处理事件的任务的信息。
41.根据权利要求38所述的***,其特征在于,所述消息的消息头还包括消息计数信息;
所述消息处理单元,具体用于按照所述目标消息对应的计数信息的顺序,依次针对每个目标信息,调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息。
42.根据权利要求32所述的***,其特征在于,所述***还包括:
第三更新模块,用于将经处理的目标消息所在的内存块的状态标识设置为空闲。
43.根据权利要求32所述的***,其特征在于,
所述消息处理单元,具体用于若所述目标消息的数量为多个,则针对任一目标消息,调用支持所述待处理事件的任务,对所述目标消息进行处理,并清除经处理的目标消息;
所述消息处理单元,还具体用于再次执行所述获取与所述待处理事件关联的目标消息的步骤,直至所述目标消息的数量为1,则调用支持所述待处理事件的任务,对所述目标消息进行处理,清除经处理的目标消息,并将所述待处理事件对应的比特位设置为第二值。
44.根据权利要求24所述的***,其特征在于,
所述处理模块,具体用于若存在多个待处理事件,且所述多个待处理事件中存在包括多个消息的事件,则采用轮询的处理方式,依次将每个待处理事件作为当前的处理对象,调用支持所述处理对象的任务,对所述处理对象进行单次处理,直至完成对所有待处理事件的处理。
45.根据权利要求44所述的***,其特征在于,
所述处理模块,具体用于若存在多个待处理事件,且所述多个待处理事件中存在包括多个消息的事件,则采用轮询的处理方式,依次将每个待处理事件作为当前的处理对象,若所述处理对象包括消息,则调用支持所述处理对象的任务对所述处理对象的单个消息进行处理,直至完成对所有待处理事件的处理;
所述处理模块,还具体用于若存在多个待处理事件,且所述多个待处理事件中存在包括多个消息的事件,则采用轮询的处理方式,依次将每个待处理事件作为当前的处理对象,若所述处理对象不包括消息,则调用支持所述处理对象的任务,对所述处理对象进行处理,直至完成对所有待处理事件的处理。
46.根据权利要求24所述的***,其特征在于,所述***还包括:
接收模块,用于接收注册请求,所述注册请求包括任务的任务处理函数;
注册模块,用于根据所述任务处理函数,对所述任务进行函数注册。
47.一种嵌入式调度***,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,以执行如权利要求1-23中任一项所述的方法。
48.一种计算机存储介质,其特征在于,该计算机存储介质中存储有程序指令,所述程序指令被处理器执行时实现权利要求1-23中任一项所述的方法。
CN201780001291.8A 2017-09-21 2017-09-21 计算机存储介质、嵌入式调度方法及*** Active CN109819674B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/102701 WO2019056263A1 (zh) 2017-09-21 2017-09-21 计算机存储介质、嵌入式调度方法及***

Publications (2)

Publication Number Publication Date
CN109819674A CN109819674A (zh) 2019-05-28
CN109819674B true CN109819674B (zh) 2022-04-26

Family

ID=65809975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780001291.8A Active CN109819674B (zh) 2017-09-21 2017-09-21 计算机存储介质、嵌入式调度方法及***

Country Status (2)

Country Link
CN (1) CN109819674B (zh)
WO (1) WO2019056263A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110417910B (zh) * 2019-08-07 2022-04-22 北京达佳互联信息技术有限公司 通知消息的发送方法、装置、服务器及存储介质
CN111581827B (zh) * 2020-05-09 2023-04-21 中国人民解放军海军航空大学 一种面向分布式仿真的事件交互方法及***
CN113688067A (zh) * 2021-08-30 2021-11-23 上海汉图科技有限公司 数据写入、数据读取方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003083693A1 (fr) * 2002-04-03 2003-10-09 Fujitsu Limited Planificateur de taches dans un systeme de traitement distribue
CN101779514A (zh) * 2007-06-19 2010-07-14 艾利森电话股份有限公司 电信***中调度资源的方法和***
CN104166590A (zh) * 2013-05-20 2014-11-26 阿里巴巴集团控股有限公司 一种实现任务调度的方法及***
CN104318165A (zh) * 2014-11-05 2015-01-28 何宗彬 一种可裁剪的安全实时嵌入式操作***
CN105589760A (zh) * 2015-12-21 2016-05-18 中国电子科技集团公司第十一研究所 一种任务超时保护方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1118025C (zh) * 2000-10-23 2003-08-13 大唐电信科技股份有限公司微电子分公司 采用逻辑区间链表寻址的智能卡嵌入式软件***实现方法
EP2267724A1 (fr) * 2009-06-26 2010-12-29 STMicroelectronics Rousset SAS Architecture de mémoire EEPROM optimisée pour les mémoires embarquées
CN102508632B (zh) * 2011-09-30 2014-10-29 飞天诚信科技股份有限公司 一种在嵌入式***中实现乘法运算的方法和装置
CN102521042A (zh) * 2011-12-16 2012-06-27 中船重工(武汉)凌久电子有限责任公司 基于哈佛结构dsp的快速正文切换方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003083693A1 (fr) * 2002-04-03 2003-10-09 Fujitsu Limited Planificateur de taches dans un systeme de traitement distribue
CN101779514A (zh) * 2007-06-19 2010-07-14 艾利森电话股份有限公司 电信***中调度资源的方法和***
CN104166590A (zh) * 2013-05-20 2014-11-26 阿里巴巴集团控股有限公司 一种实现任务调度的方法及***
CN104318165A (zh) * 2014-11-05 2015-01-28 何宗彬 一种可裁剪的安全实时嵌入式操作***
CN105589760A (zh) * 2015-12-21 2016-05-18 中国电子科技集团公司第十一研究所 一种任务超时保护方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"嵌入式MPSoC***中的任务调度管理研究";李橙;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20110315(第03期);第I137-83页 *

Also Published As

Publication number Publication date
CN109819674A (zh) 2019-05-28
WO2019056263A1 (zh) 2019-03-28

Similar Documents

Publication Publication Date Title
US10545789B2 (en) Task scheduling for highly concurrent analytical and transaction workloads
US9778961B2 (en) Efficient scheduling of multi-versioned tasks
US8209690B2 (en) System and method for thread handling in multithreaded parallel computing of nested threads
CN113243005A (zh) 按需网络代码执行***中的基于性能的硬件仿真
CN106547612B (zh) 一种多任务处理方法及装置
CN109564528B (zh) 分布式计算中计算资源分配的***和方法
CN109819674B (zh) 计算机存储介质、嵌入式调度方法及***
EP3889776A1 (en) Processing method and device for shared data and server
CN107562685B (zh) 一种基于延时补偿的多核处理器核心间数据交互的方法
CN107704310B (zh) 一种实现容器集群管理的方法、装置和设备
CN112698959A (zh) 一种多核通信方法和装置
CN111857992B (zh) 一种Radosgw模块中线程资源分配方法和装置
CN114155026A (zh) 一种资源分配方法、装置、服务器及存储介质
US9507637B1 (en) Computer platform where tasks can optionally share per task resources
CN112925616A (zh) 任务分配方法、装置、存储介质及电子设备
CN114816777A (zh) 命令处理装置、方法、电子设备以及计算机可读存储介质
CN111143053A (zh) 一种定时任务的调度方法、服务器以及存储装置
CN115858123A (zh) 一种多线程任务调度处理方法
CN114064268A (zh) 一种消息处理方法、装置及设备
CN110231983B (zh) 数据并发处理方法、装置及***、计算机设备及可读介质
CN112395063A (zh) 一种动态多线程调度方法及***
CN115391042B (zh) 一种资源分配方法、装置、电子设备及存储介质
CN118210625A (zh) 一种资源隔离方法及相关装置
CN108009005A (zh) 一种线程池管理方法及装置
CN113377439A (zh) 异构计算方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant