一种多进程处理方法、处理装置及应用
技术领域
本发明属于程序设计领域,特别是设计一种多进程处理方法及处理装置。
背景技术
在程序运行过程中,被加载到内存中执行的程序实例,称为进程。进程是程序在计算机上的一次动态执行过程,是系统进行资源分配和调度的一个可并发执行的独立单位,是操作系统进行资源分配的单位,是操作系统结构的基础。当运行一个程序时也就启动了一个进程。
一个进程从建立到终止,都有操作系统的核心掌控。操作系统内部会存在一个进程序列,基于进程的需求和状态,按照不同的逻辑算法安排相应的进程执行任务。
现有技术中,串行进程处理过程为:每个进程会分配一小段CPU时间,该段时间结束,CPU马上切换到其他进程执行,从而实现多个进程同时运行。传统的并行进程处理过程为:同时为每个进程分配独立的资源,并同时执行。这样需要为每个进程撰写对独立的逻辑代码,会形成大量的逻辑资源,造成处理过程功耗大。
发明内容
为解决现有技术中并行和串行处理过程存在的逻辑资源浪费,功耗大问题,本发明提供了一种多进程处理方法和处理装置。该多进程处理方法采用时分复用技术,用一个进程的逻辑实现N个进行的功能,以实现节省逻辑资源和降低功耗。
为实现上述发明目的,本发明实施方式采用以下技术方案:
本发明的第一实施方式提供一种多进程处理装置,包括:
时隙分配模块,将一个进程分成多个时间段执行,每个时间段对应一个时隙,多个进程的时隙形成一个时间帧;
进程分配模块,用于基于调用进程请求,随机选取一个空闲的时隙分给被调用的进程;
RAM模块,用于为所述进程初始化一个存储地址,并存储所述进程产生的临时变量;
进程处理模块,用于在每个时间帧中,所述进程在与所述进程对应的时隙内,基于与所述进程对应的存储地址内的数据执行业务处理任务,生成临时变量,并利用所述临时变量更新与所述进程对应的存储地址内的数据;
数据融合模块,用于基于与所述进程对应的存储地址内的数据生成所述进程的最终业务处理结果。
本发明的第二实施方式提供一种多进程处理方法,包括以下步骤:
将一个进程分成多个时间段执行,每个时间段对应一个时隙,多个进程的时隙形成一个时间帧;
基于调用进程请求,随机选取一个空闲的时隙分给被调用的进程;
为所述进程初始化一个存储地址;
在每个时间帧中,所述进程在与所述进程对应的时隙内,基于与所述进程对应的存储地址内的数据执行业务处理任务,生成临时变量,并利用所述临时变量更新与所述进程对应的存储地址内的数据;
基于与所述进程对应的存储地址内的数据生成所述进程的最终业务处理结果。
本发明的第三实施方式提供了一种第一实施方式提供的多进程处理装置在区块链领域的应用。
根据上述本发明实施方式的方案,其是将一个进程分成多个时隙执行,每个进程在自己的时隙内完成相应的任务,并在下一时间帧内接着上一个时隙完成的任务继续执行任务,并且每个进程都共享同一个硬件资源,相比传统的并行处理,本发明实施方式提供的装置和方法大大降低了进程处理过程中的逻辑资源,进而降低功耗。
附图说明
图1是本发明实施例1提供的多进程处理装置的结构示意图;
图2是本发明实施例2提供的多进程处理装置的结构示意图;
图3是本发明实施例3提供的多进程处理装置的结构示意图;
图4是本发明实施例4提供的多进程处理方法的流程示意图;
图5是本发明实施例4提供的多进程处理方法的工作表格图;
图6是本发明实施例5供提的多进程处理方法的流程示意图;
图7是本发明实施例6提供的多进程处理方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
实施例1
图1是本发明实施例1提供的多进程处理装置的结构示意图。如图1所示,本实施例的多进程处理装置包括:
时隙分配模块101,将一个进程分成多个时间段执行,每个时间段对应一个时隙,多个进程的时隙形成一个时间帧;
进程分配模块102,用于基于调用进程请求,随机选取一个空闲的时隙分给被调用的进程;
RAM模块103,用于为所述进程初始化一个存储地址,并存储所述进程产生的临时变量;
进程处理模块104,用于在每个时间帧中,所述进程在与所述进程对应的时隙内,基于与所述进程对应的存储地址内的数据执行业务处理任务,生成临时变量,并利用所述临时变量更新与所述进程对应的存储地址内的数据;
数据融合模块105,用于基于与所述进程对应的存储地址内的数据生成所述进程的最终业务处理结果。
上述实施例的方案是一个进程分成多个时隙执行,每个进程在自己的时隙内完成相应的任务,并在下一时间帧内接着上一个时隙完成的任务继续执行任务,并且每个进程都共享同一个硬件资源,相比传统的并行处理,本实施例提供的多进程处理装置大大降低了进程处理过程中的逻辑资源,进而降低功耗。
实施例2
图2是本发明实施例2提供的多进程处理装置的结构示意图。如图2所示,本实施例的多进程处理装置包括:
时隙分配模块201,将一个进程分成多个时间段执行,每个时间段对应一个时隙,多个进程的时隙形成一个时间帧;
进程分配模块202,用于基于调用进程请求,随机选取一个空闲的时隙分给被调用的进程;
RAM模块203,用于为所述进程初始化一个存储地址,并存储所述进程产生的临时变量;
进程处理模块204,用于在每个时间帧中,所述进程在与所述进程对应的时隙内,基于与所述进程对应的存储地址内的数据执行业务处理任务,生成临时变量,并利用所述临时变量更新与所述进程对应的存储地址内的数据;
进程处理进度检测模块205,用于在每个时间帧中,检测进程处理进度,并基于所述进程处理进度生成调用EXP进程请求,并发送所述调用EXP进程请求至EXP进程分配模块;
EXP进程生成模块206,用于生成并存储多个待调用的EXP进程;
EXP进程分配模块207,用于接收所述调用EXP进程请求,并基于所述调用EXP进程请求,分配处于空闲状态的EXP进程至需要协助的进程;
EXP进程处理模块208,用于在协助时段,被分配的EXP进程协助所述需要协助的进程完成业务处理任务,生成临时变量,并利用所述临时变量更新与所述需要协助的进程对应的存储地址内的数据;
所述协助时段为当前时间帧内所述需要协助的进程对应的时隙开始到下一个时间帧内所述需要协助的进程对应的时隙开始;
数据融合模块209,用于基于与所述进程对应的存储地址内的数据生成所述进程的最终业务处理结果。
在本发明实施例2提供的多进程处理装置中,所述待调用的EXP进程的数量可以与一个时间帧包括的时隙数量相同,这样便于协助每个进程完成每个阶段的业务处理任务。
实施例3
图3是本发明实施例3提供的多进程处理装置的结构示意图。如图3所示,本实施例的多进程处理装置包括:
时隙分配模块301,将一个进程分成多个时间段执行,每个时间段对应一个时隙,多个进程的时隙形成一个时间帧;
进程分配模块302,用于基于调用进程请求,随机选取一个空闲的时隙分给被调用的进程;
RAM模块303,用于为所述进程初始化一个存储地址,并存储所述进程产生的临时变量;
进程处理模块304,用于在每个时间帧中,所述进程在与所述进程对应的时隙内,基于与所述进程对应的存储地址内的数据执行业务处理任务,生成临时变量,并利用所述临时变量更新与所述进程对应的存储地址内的数据;
进程处理进度检测模块305,用于在每个时间帧中,检测进程处理进度,并基于所述进程处理进度生成调用EXP进程请求,并发送所述调用EXP进程请求至EXP进程分配模块;
EXP进程控制模块306,用于接收所述调用EXP进程请求,基于所述调用EXP进程请求生成EXP进程,并将所述EXP进程分配给需要协助的进程;
EXP进程处理模块307,用于在协助时段,被分配的EXP进程协助所述需要协助的进程完成业务处理任务,生成临时变量,并利用所述临时变量更新与所述需要协助的进程对应的存储地址内的数据;
所述协助时段为当前时间帧内所述需要协助的进程对应的时隙开始到下一个时间帧内所述需要协助的进程对应的时隙开始;
数据融合模块308,用于基于与所述进程对应的存储地址内的数据生成所述进程的最终业务处理结果。
实施例4
图4示出了本发明实施例4提供的多进程处理方法的流程框图。如图4所示,本实施例的多进程处理方法包括:
S401,将一个进程分成多个时间段执行,每个时间段对应一个时隙,多个进程的时隙形成一个时间帧;
S402,基于调用进程请求,随机选取一个空闲的时隙分给被调用的进程;
S403,为所述进程初始化一个存储地址;
S404,在每个时间帧中,所述进程在与所述进程对应的时隙内,基于与所述进程对应的存储地址内的数据执行业务处理任务,生成临时变量,并利用所述临时变量更新与所述进程对应的存储地址内的数据;
S405,基于与所述进程对应的存储地址内的数据生成所述进程的最终业务处理结果。
上述实施例的方案是将将一个进程分成多个时隙执行,每个进程在自己的时隙内完成相应的任务,并在下一时间帧内接着上一个时隙完成的任务继续执行任务,并且每个进程都共享同一个硬件资源,相比传统的并行处理,本实施例提供的多进程处理方法大大降低了进程处理过程中的逻辑资源,进而降低功耗。
图5示出了本发明实施例4提供的多进程处理方法的工作表格图;在图5中,时间帧S1、S2、…、SL组成的连续的时间段,在该段时间内,每个进程完成相应的业务处理任务。每个时间帧分成连续的时隙T1、T2、…、TN…、TM,将前N分时隙分别分给N个进程,每个进程按照时间帧,将整个进程分成多个子进程,用于在每个时间帧的相应间隙内,完成每个阶段的业务处理任务。
对于进程P1,按照时间帧,将进程P1分成L个子进程P11、P12、…、P1L,具体地执行业务处理任务的过程为:
子进程P11将在时间帧S1的间隙T1内完成业务处理任务的第一阶段,并将产生的临时变量存储于存储地址Ai,然后,子进程P12基于子进程P11的产生的临时变量,在时间帧S2的间隙T1内完成业务处理任务的第二阶段,并将产生的临时变量更新存储地址Ai内的数据,接下来,子进程P13基于子进程P12的产生的临时变量,在时间帧S3的间隙T1内完成业务处理任务的第三阶段,并将产生的临时变量更新存储地址Ai内的数据,依次类推,直至进程P1完成业务处理任务的最后一阶段。
根据以上描述每个进程的执行任务的过程,可以明显得到,在整个时间上,每个进程按照如图5所示的箭头表示的顺序执行的,其中,虚线箭头表示了在每个时间帧内,每个子进程的执行任务的时间分配,实线箭头表示了在时间帧之间,每个子进程的执行任务的时间分配。
基于上述描述的实施例,若在每个时隙内,子进程没有完成该阶段本应该完成的业务处理任务,可以采取添加进程的方式帮助子进程完成相应的业务处理任务,具体地,如实施例5和实施例6描述的方法。
实施例5
如图6所示,本发明实施例5供提的多进程处理方法包括以下步骤:
S601,将一个进程分成多个时间段执行,每个时间段对应一个时隙,多个进程的时隙形成一个时间帧;
S602,生成待调用的多个EXP进程;
S603,基于调用进程请求,随机选取一个空闲的时隙分给被调用的进程;
S604,为所述进程初始化一个存储地址;
S605,在每个时间帧中,所述进程在与所述进程对应的时隙内,基于与所述进程对应的存储地址内的数据执行业务处理任务,生成临时变量,并利用所述临时变量更新与所述进程对应的存储地址内的数据;
S606,在每个时间帧中,检测进程的处理进度,并基于所述处理进度生成调用EXP进程请求,并发送所述调用EXP进程请求;
S607,接收所述调用EXP进程请求,并基于所述调用EXP进程请求,分配处于空闲状态的EXP进程至需要协助的进程;
S608,在协助时段,被分配的EXP进程协助所述需要协助的进程完成业务处理任务,生成临时变量,并利用所述临时变量更新与所述需要协助的进程对应的存储地址内的数据;
S609,基于与所述进程对应的存储地址内的数据生成所述进程的最终业务处理结果。
所述协助时段为当前时间帧内所述需要协助的进程对应的时隙到下一个时间帧内所述需要协助的进程对应的时隙。
实施例6
如图7所示,本发明实施例6供提的多进程处理方法包括以下步骤:
S701,将一个进程分成多个时间段执行,每个时间段对应一个时隙,多个进程的时隙形成一个时间帧;
S702,基于调用进程请求,随机选取一个空闲的时隙分给被调用的进程;
S703,为所述进程初始化一个存储地址;
S704,在每个时间帧中,所述进程在与所述进程对应的时隙内,基于与所述进程对应的存储地址内的数据执行业务处理任务,生成临时变量,并利用所述临时变量更新与所述进程对应的存储地址内的数据;
S705,在每个时间帧中,检测进程的处理进度,并基于所述处理进度生成调用EXP进程请求,并发送所述调用EXP进程请求;
S706,接收调用EXP进程请求,并基于所述调用EXP进程请求生成EXP进程,并将所述EXP进程分配给需要协助的进程;
S707,在协助时段,被分配的EXP进程协助所述需要协助的进程完成业务处理任务,生成临时变量,并利用所述临时变量更新与所述需要协助的进程对应的存储地址内的数据;
S708,基于与所述进程对应的存储地址内的数据生成所述进程的最终业务处理结果。
所述协助时段为当前时间帧内所述需要协助的进程对应的时隙到下一个时间帧内所述需要协助的进程对应的时隙。
上述实施例1~6中,每个时隙包含一个及以上时钟周期。组成一个时间帧的多个时隙的长度可以相同,也可以不同,根据实施需要,可以任意设置每个时隙的长度。
当每个时间帧分成相等或不等的M个时隙后,可以同时调用进程请求的个数N,在M个时隙中选择N(N≤M)个空闲的时隙以一对一的方式分给被调用的N个进程,这样对于第i个进程Pi,将在分给的时隙Ti内执行相应的业务处理任务。
在进程Pi执行业务处理任务之前,还需要为进程Pi初始化一个存储地址Ai,这样在每个的时间帧中,进程Pi可以将在时隙Ti内执行业务处理任务产生的临时变量存储在存储地址Ai内,方便下一个时间帧中,进程Pi基于该临时变量继续执行业务处理任务。
上述实施例1~3中,RAM模块的深度要与一个时间帧包含的时隙个数相等。
在上述实施例1~6中,所述进程在与所述进程对应的时隙内,基于与所述进程对应的存储地址内的数据执行业务处理任务,生成临时变量,并利用所述临时变量更新与所述进程对应的存储地址内的数据包括:
在与所述进程对应的时隙内:
所述进程读取与所述进程对应的存储地址内的数据,所述数据为前一时间帧内,所述进程在与所述进程对应的时隙内执行业务处理任务生成的临时变量;
基于读取的所述数据,所述进程继续执行业务处理任务,生成当前临时变量;
将所述当前临时变量以更新地方式写入与所述进程对应的存储地址内。
在上述的读写操作中,根据进程执行任务的需要,在写入当前临时变量时,该当前临时变量替换掉上一时间帧内写入的临时变量,这样可以定时更新存储地址内的数据,最后基于最后写入的临时变量生成进程的最终业务处理结果。
在其中一个方式中,上述的临时变量的位宽小于变量阈值,变量阈值由存储地址的数据位宽决定,不同的进程的临时变量的位宽不能超过此值,但各进程的位宽可以不同,以适应更多功能进程的应用。
在另外一个方式中,上述进程在时隙内执行业务处理任务前,输入的条件数量小于条件阈值。本方法的输入条件阈值为最大的可输入变量,各进程可以在小于此值的前提下,有不同个数条件输入,使此方法便于更多环境的应用。
上述实施例1~6中,所述检测进程处理进度,并基于所述进程处理进度生成调用EXP进程请求包括:
在进程对应的时隙开始时,检测所述进程不能完成在所述进程对应的时隙内完成应该完成的业务处理任务,此时,生成调用EXP进程请求;或,
在进程对应的时隙结束时,检测所述进程没有完成应该完成的业务处理任务,此时,生成调用EXP进程请求。
上述实施例1~6中,所述被分配的EXP进程协助所述需要协助的进程完成业务处理任务包括:
情况一:当协助时段为当前时间帧内所述需要协助的进程对应的时隙开始到下一个时间帧内所述需要协助的进程对应的时隙开始,所述被分配的EXP进程与所述需要协助的进程一起同步完成所述需要协助的进程对应的时隙内应该完成的业务处理任务;
情况二:当协助时段为当前时间帧内所述需要协助的进程对应的时隙结束到下一个时间帧内所述需要协助的进程对应的时隙开始,所述被分配的EXP进程在所述需要协助的进程于与所述需要协助的进程对应的时隙内执行后的业务处理结果基础上,继续执行业务处理任务,完成所述需要协助的进程对应的时隙内应该完成的业务处理任务。
在情况二中,被分配的EXP进程读取所述需要协助的进程于与所述需要协助的进程对应的时隙内产生的临时变量,然后基于该临时变量继续执行业务处理任务,完成所述需要协助的进程对应的时隙内应该完成的业务处理任务。
EXP进程的增加,可以能够帮助进程顺利准确地完成进程对应时隙的业务处理任务,保证在下一个时间帧内进程能够基于当前生成的临时变量继续执行任务。
在其中一种方式中,当进程Pi在时隙Ti内执行完后,检测到进程Pi在时隙Ti内没有完成本应该完成的业务处理任务,此时会生成调用EXP进程请求指令,并将该指令发送EXP进程分配模块,若存在生成的待调用的EXP进程,则基于接收的调用EXP进程请求指令,分配处于空闲状态的EXP进程至进程Pi,否则,基于接收的调用EXP进程请求指令,生成新EXP进程,并将该新EXP进程分配给进程Pi,在当前时间帧的时隙Ti结束到下一时间帧的时隙Ti开始前的这段时间,被分配的EXP进程接着进程Pi在时隙Ti内的执行结果继续执行业务处理任务,完成进程Pi在时隙Ti内应该完成的业务处理任务,并利用产生的临时变量更新存储地址Ai内的数据。
在另外一种方式中,时隙Ti开始时,进程Pi在就检测到在时隙Ti内不能够完成本应该完成的业务处理任务,此时也会生成调用EXP进程请求指令,并将该指令发送EXP进程分配模块,若存在生成的待调用的EXP进程,则基于接收的调用EXP进程请求指令,分配处于空闲状态的EXP进程至进程Pi,否则,基于接收的调用EXP进程请求指令,生成新EXP进程,并将该新EXP进程分配给进程Pi,在当前时间帧的时隙Ti开始到下一时间帧的时隙Ti开始前的这段时间,被分配的EXP进程会与进程Pi在时隙Ti内一起执行业务处理任务,完成进程Pi在时隙Ti内应该完成的业务处理任务,并利用产生的临时变量更新存储地址Ai内的数据。
最后,当进程执行完每个阶段的业务处理任务后,对进程最后存储到存储地址内的数据进程融合处理,生成进程的最终业务处理结果。
应用例
上述本发明实施例1~3提供的多进程处理装置均可以应用到区块链领域。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。