一种消息处理方法及装置、存储介质及电子设备与流程

本发明涉及计算机,特别涉及一种消息处理方法及装置、存储介质及电子设备。
背景技术:
1、在嵌入式实时操作系统(embedded real-time operation system,rtos)中,线程间的通信是确保系统高效、稳定运行的关键环节。实时操作系统因其能够在严格的时间限制内处理事件和数据,广泛应用于各种领域。对于实时操作系统而言,系统的实时性和可靠性至关重要。
2、线程间通信通常通过消息对象实现,如邮箱(mailboxes)、消息对象(messagequeues)等。线程与消息对象进行通信的过程中,存在线程原有的消息对象被意外销毁,而线程未能及时识别这一变化,线程与错误的消息对象进行通信的情况,这种情况导致通信错误,降低系统可靠性。
技术实现思路
1、有鉴于此,本发明实施例提供一种消息处理方法及装置、存储介质及电子设备,本发明使用对象标识识别是否存在与进程对应的消息对象,当存在时,就基于与进程的进程类型对应的消息处理逻辑,对该消息对象中的消息进行处理。由此可以保证进程和其原消息对象通讯,避免通信出错的情况,提高系统的可靠性。
2、为实现上述目的,本发明实施例提供如下技术方案:
3、一种消息处理方法,包括:
4、在处于就绪状态的当前进程不为从休眠状态唤醒的进程时,为所述当前进程分配对象标识,并将所述当前进程确定为目标进程;
5、基于所述目标进程的对象标识,确定与所述目标进程对应的消息对象是否存在,所述消息对象用于保存消息;
6、当与所述目标进程对应的消息对象存在时,将与所述目标进程对应的消息对象确定为目标消息对象;
7、基于与所述目标进程的进程类型对应的消息处理逻辑,对所述目标消息对象中的消息进行处理。
8、上述的方法,可选的,还包括:
9、当与所述目标进程对应的消息对象不存在时,生成进程错误信息,并将所述目标进程退出。
10、上述的方法,可选的,还包括:
11、在所述当前进程为从休眠状态唤醒的进程时,确定所述当前进程的唤醒类型是否为正常;
12、若所述当前进程的唤醒类型不为正常,则生成进程错误信息,并将所述当前进程退出;
13、若所述当前进程的唤醒类型正常,则执行所述将所述当前进程确定为目标进程的步骤。
14、上述的方法,可选的,所述基于与所述目标进程的进程类型对应的消息处理逻辑,对所述目标消息对象中的消息进行处理,包括:
15、当所述目标进程的进程类型为发送类型时,判断预设的发送阻塞链表是否为空,且所述目标消息对象中的消息数尚未达到预设最大值;
16、当所述发送阻塞链表为空,且所述目标消息对象中的消息数尚未达到预设最大值时,使所述目标进程向所述目标消息对象发送消息;
17、当所述发送阻塞链表不为空,或所述目标消息对象中的消息数达到预设最大值时,确定所述目标进程阻塞,并将所述目标进程挂载至所述发送阻塞链表休眠;
18、当所述目标进程的进程类型为接收类型时,判断预设的接收阻塞链表是否为空,且所述目标消息对象中的消息是否不为空;
19、当所述接收阻塞链表为空,且所述目标消息对象中的消息不为空时,使所述目标进程读取所述目标消息对象中的消息;
20、当所述接收阻塞链表不为空,或所述目标消息对象中的消息为空时,确定所述目标进程阻塞,并将所述目标进程挂载至所述接收阻塞链表休眠。
21、上述的方法,可选的,还包括:
22、当存在发送进程唤醒命令时,将所述发送阻塞链表中与所述发送进程唤醒命令对应的进程唤醒,并基于所述发送进程唤醒命令,标记唤醒的进程的唤醒类型。
23、上述的方法,可选的,还包括:
24、当存在接收进程唤醒命令时,将所述接收阻塞链表中与所述接收进程唤醒命令对应的进程唤醒,并基于所述接收进程唤醒命令,标记唤醒的进程的唤醒类型。
25、一种消息处理装置,包括:
26、分配单元,用于在处于就绪状态的当前进程不为从休眠状态唤醒的进程时,为所述当前进程分配对象标识,并将所述当前进程确定为目标进程;
27、第一确定单元,用于基于所述目标进程的对象标识,确定与所述目标进程对应的消息对象是否存在,所述消息对象用于保存消息;
28、第二确定单元,用于当与所述目标进程对应的消息对象存在时,将与所述目标进程对应的消息对象确定为目标消息对象;
29、处理单元,用于基于与所述目标进程的进程类型对应的消息处理逻辑,对所述目标消息对象中的消息进行处理。
30、上述的装置,可选的,还包括:
31、第一生成单元,用于当与所述目标进程对应的消息对象不存在时,生成进程错误信息,并将所述目标进程退出。
32、上述的装置,可选的,还包括:
33、第三确定单元,用于在所述当前进程为从休眠状态唤醒的进程时,确定所述当前进程的唤醒类型是否为正常;若所述当前进程的唤醒类型不为正常,则生成进程错误信息,并将所述当前进程退出;若所述当前进程的唤醒类型正常,则执行所述将所述当前进程确定为目标进程的步骤。
34、上述的装置,可选的,所述处理单元执行基于与所述目标进程的进程类型对应的消息处理逻辑,对所述目标消息对象中的消息进行处理的步骤,包括:
35、当所述目标进程的进程类型为发送类型时,判断预设的发送阻塞链表是否为空,且所述目标消息对象中的消息数尚未达到预设最大值;
36、当所述发送阻塞链表为空,且所述目标消息对象中的消息数尚未达到预设最大值时,使所述目标进程向所述目标消息对象发送消息;
37、当所述发送阻塞链表不为空,或所述目标消息对象中的消息数达到预设最大值时,确定所述目标进程阻塞,并将所述目标进程挂载至所述发送阻塞链表休眠;
38、当所述目标进程的进程类型为接收类型时,判断预设的接收阻塞链表是否为空,且所述目标消息对象中的消息是否不为空;
39、当所述接收阻塞链表为空,且所述目标消息对象中的消息不为空时,使所述目标进程读取所述目标消息对象中的消息;
40、当所述接收阻塞链表不为空,或所述目标消息对象中的消息为空时,确定所述目标进程阻塞,并将所述目标进程挂载至所述接收阻塞链表休眠。
41、上述的装置,可选的,还包括:
42、第一唤醒单元,用于当存在发送进程唤醒命令时,将所述发送阻塞链表中与所述发送进程唤醒命令对应的进程唤醒,并基于所述发送进程唤醒命令,标记唤醒的进程的唤醒类型。
43、上述的装置,可选的,还包括:
44、第二唤醒单元,用于当存在接收进程唤醒命令时,将所述接收阻塞链表中与所述接收进程唤醒命令对应的进程唤醒,并基于所述接收进程唤醒命令,标记唤醒的进程的唤醒类型。
45、一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上所述的消息处理方法。
46、一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上所述的消息处理方法。
47、与现有技术相比,本发明具有以下优点:
48、本发明提供一种消息处理方法及装置、存储介质及电子设备,包括:在处于就绪状态的当前进程不为从休眠状态唤醒的进程时,为当前进程分配对象标识,并将当前进程确定为目标进程;基于目标进程的对象标识,确定与目标进程对应的消息对象是否存在,当与目标进程对应的消息对象存在时,将与目标进程对应的消息对象确定为目标消息对象;基于与目标进程的进程类型对应的消息处理逻辑,对目标消息对象中的消息进行处理。本发明的进程在与消息对象通讯之前,使用当前进程的对象标识,识别与当前进程对应的消息对象是否存在,若存在,则基于与当前进程的进程类型对应的消息处理逻辑,对消息对象中的消息进行处理,由此可以确保当前进程所通讯的消息对象为原消息对象,避免通信出错,提高系统的可靠性。
技术研发人员:陈银桃,张菊,董乾钦,章维,王浩,王森
技术所有人:中控技术股份有限公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
