CN113064748A - 进程接替的方法、装置、电子设备及存储介质 - Google Patents

进程接替的方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113064748A
CN113064748A CN202110378335.7A CN202110378335A CN113064748A CN 113064748 A CN113064748 A CN 113064748A CN 202110378335 A CN202110378335 A CN 202110378335A CN 113064748 A CN113064748 A CN 113064748A
Authority
CN
China
Prior art keywords
main process
new
data processing
auxiliary
main
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.)
Granted
Application number
CN202110378335.7A
Other languages
English (en)
Other versions
CN113064748B (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.)
FAW Group Corp
Original Assignee
FAW Group Corp
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 FAW Group Corp filed Critical FAW Group Corp
Priority to CN202110378335.7A priority Critical patent/CN113064748B/zh
Publication of CN113064748A publication Critical patent/CN113064748A/zh
Priority to PCT/CN2021/136055 priority patent/WO2022213641A1/zh
Application granted granted Critical
Publication of CN113064748B publication Critical patent/CN113064748B/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
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种进程接替的方法、装置、电子设备及存储介质。其中,该方法包括:根据目标程序代码所对应的进程号,确定目标程序代码对应的主进程和副进程;通过主进程和副进程接收目标程序代码对应的至少一个外部控制器发送的数据处理请求;通过主进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;若检测到主进程发生故障,通过副进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;将主进程作为新的副进程,将副进程作为新的主进程。本申请实施例提供的技术方案,可以保证向外部控制器发送数据的连续性,不会影响用户体验。

Description

进程接替的方法、装置、电子设备及存储介质
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种进程接替的方法、装置、电子设备及存储介质。
背景技术
近年来,由于LINUX、QNX等操作系统在汽车行业的应用,使得汽车行业的智能化和网联化趋势越来越明显,用户更加注重车辆的安全性和车辆使用体验感受。通过车载终端的屏幕仪表,用户可以直观感受到车载控制器的功能。当车载控制器的程序在运行时出现问题或在线升级时,车载终端的屏幕仪表就会出现闪烁黑屏或者卡顿等现象,会对用户体验造成不良的影响。
现有技术中,主要采用的方法为通过主进程为子进程创建一个影子进程作为备份,当子进程发生故障时,主进程唤醒影子进程接替发生故障的子进程继续执行程序。然而,影子进程在接替流程中需要先执行初始化程序,并不能快速地接替子进程继续执行程序,从而导致车载终端的屏幕仪表出现卡顿现象,影响用户的体验感。因此,亟需一种进程接替的方法,能够解决程序在进程运行时出现故障时车载终端的屏幕仪表出现卡顿等问题。
发明内容
本申请实施例提供了一种进程接替的方法、装置、电子设备及存储介质,可以保证向外部控制器发送数据的连续性,不会影响用户体验。
第一方面,本申请实施例提供了一种进程接替的方法,该方法包括:
根据目标程序代码所对应的进程号,确定所述目标程序代码对应的主进程和副进程;
通过所述主进程和所述副进程接收所述目标程序代码对应的至少一个外部控制器发送的数据处理请求;
通过所述主进程向所述至少一个外部控制器返回所述数据处理请求对应的数据处理结果;
若检测到所述主进程发生故障,通过所述副进程向所述至少一个外部控制器返回所述数据处理请求对应的数据处理结果;将所述主进程作为新的副进程,将所述副进程作为新的主进程。
第二方面,本申请实施例提供了一种进程接替的装置,该装置包括:
进程确定模块,用于根据目标程序代码所对应的进程号,确定所述目标程序代码对应的主进程和副进程;
请求接收模块,用于通过所述主进程和所述副进程接收所述目标程序代码对应的至少一个外部控制器发送的数据处理请求;
请求处理模块,用于通过所述主进程向所述至少一个外部控制器返回所述数据处理请求对应的数据处理结果;
进程交换模块,用于若检测到所述主进程发生故障,通过所述副进程向所述至少一个外部控制器返回所述数据处理请求对应的数据处理结果;将所述主进程作为新的副进程,将所述副进程作为新的主进程。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请任意实施例所述的进程接替的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现本申请任意实施例所述的进程接替的方法。
本申请实施例提供了一种进程接替的方法、装置、电子设备及存储介质,根据目标程序代码所对应的进程号,确定目标程序代码对应的主进程和副进程;通过主进程和副进程接收目标程序代码对应的至少一个外部控制器发送的数据处理请求;通过主进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;若检测到主进程发生故障,通过副进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;将主进程作为新的副进程,将副进程作为新的主进程。执行本申请的技术方案,可以保证向外部控制器发送数据的连续性,不会影响用户体验。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请实施例提供的进程接替的方法的第一流程示意图;
图2为本申请实施例提供的进程接替的方法的第二流程示意图;
图3A为本申请实施例提供的进程接替的方法的第三流程示意图;
图3B为本申请实施例提供的进程接替的方法的方案示意图
图4为本申请实施例提供的进程接替的装置的结构示意图;
图5是用来实现本申请实施例的进程接替的方法的电子设备的框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
图1为本申请实施例提供的进程接替的方法的第一流程示意图,本实施例可适用于当主进程出现故障时,副进程接替主进程执行程序的情况。本实施例提供的一种进程接替的方法可以由本申请实施例提供的进程接替的装置来执行,该装置可以通过软件和/或硬件的方式实现,并集成在执行本方法的电子设备中。优选的,执行本方法的电子设备可以是车载终端。
需要说明的是,本申请应用的操作系统,既可以为可靠性高的通信软件系统(嵌入式系统),也可以为互联网软件系统,例如Linux操作系统、Android操作系统、Windows操作系统等,此处不作限定,该操作系统可以运行于通信设备的用户业务处理单板,主控单板,也可以运行于互联网功能服务器等,此处不作限定。
参见图1,本实施例的方法包括但不限于如下步骤:
S110、根据目标程序代码所对应的进程号,确定目标程序代码对应的主进程和副进程。
其中,目标程序代码是指在进程中运行的程序代码,进程号是指操作系统中用于标识唯一进程的数值。
在本申请实施例中,将目标程序代码放置在两个位于不同分区的进程中,操作系统上电之后,便开启了两个进程。也就是,两个进程是位于不同分区,但执行相同的程序代码。两个进程中任意一个进程获取自身以及对方的进程号,并对所获取的两个进程号进行比较。按照进程号的大小将两个进程分为主进程和副进程,例如,将两个进程中的进程号小的作为主进程,将两个进程中的进程号大的作为副进程。
S120、通过主进程和副进程接收目标程序代码对应的至少一个外部控制器发送的数据处理请求。
其中,外部控制器是指与操作系统进行通信交互的控制器,外部控制器的数量为1-N,N为大于1的自然数。
在本申请实施例中,主进程正常运行目标程序代码,接收至少一个外部控制器发送的数据处理请求,并响应数据处理请求。副进程作为备份进程,同时也接收至少一个外部控制器发送的数据处理请求,并响应数据处理请求。也就是,在接收外部控制器的数据处理请求方面,主进程和副进程两者是同步一致的。
S130、通过主进程向至少一个外部控制器返回数据处理请求对应的数据处理结果。
在本申请实施例中,当主进程接收到至少一个外部控制器(数据处理请求方)发送的数据处理请求对其进行响应,进行功能运算,再将运算所得的数据处理结果返回给数据处理请求方。也就是,主进程与至少一个外部控制器进行交互。在主进程正常运行的过程中,而副进程作为备份进程,仅仅接收至少一个外部控制器的数据处理请求,并进行功能运算,而不将运算所得的数据处理结果返回给数据处理请求方。
S140、若检测到主进程发生故障,通过副进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;将主进程作为新的副进程,将副进程作为新的主进程。
在本申请实施例中,若检测到主进程发生故障,则由副进程接替主进程继续执行目标程序代码,即,将副进程作为新的主进程,对主进程进行检修之后作为新的副进程。当下一次主进程发生故障,再将主进程和副进程进行交换,由副进程接替主进程继续执行目标程序代码,重复循环。
在本申请实施例中,由于在主进程正常运行的过程中,副进程与主进程同步一致地在接收并处理至少一个外部控制器的数据处理请求,所以当主进程发生故障时,可以通过副进程向至少一个外部控制器返回数据处理请求对应的数据处理结果,由副进程作为新的主进程与至少一个外部控制器进行交互。这样设置的好处在于,主进程和副进程可以快速得切换,可以保证向外部控制器发送数据的连续性。在主进程发生故障时,由副进程继续执行目标程序代码,不会影响目标程序代码的执行,因而车载的屏幕仪表不会出现卡顿现象,不会影响用户体验。
可选的,主进程的故障检测过程为:通过主进程按照预定时间间隔向共享内存中写入循环递加数据;通过副进程按照预定时间间隔读取主进程在共享内存写入中的循环递加数据;若副进程连续预设次数未读取到主进程在共享内存写入中的循环递加数据,则判定主进程发生故障。若副进程能够正常读取主进程在共享内存写入中的循环递加数据,表明主进程未发生故障,则副进程仍作为备份进程。
在本申请实施例中,在主进程正常运行的过程中,主进程按照预定时间间隔向共享内存中写入循环递加数据;当主进程出现故障时,主进程不会向共享内存中写入循环递加数据。副进程按照预定时间间隔读取主进程在共享内存写入中的循环递加数据,用于监测主进程是否出现故障;其中,预设时间间隔可以是用户根据实际情况设定,如2毫秒,也可以在电子设备出厂时设置;循环递加数据可以是0-M的整数。若副进程连续预设次数未读取到主进程在共享内存写入中的循环递加数据,表明主进程发生故障,则副进程作为新的主进程,接替主进程继续执行目标程序代码;其中,预设次数可以是用户根据实际情况设定,如三次。
本实施例提供的技术方案,根据目标程序代码所对应的进程号,确定目标程序代码对应的主进程和副进程;通过主进程和副进程接收目标程序代码对应的至少一个外部控制器发送的数据处理请求;通过主进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;若检测到主进程发生故障,通过副进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;将主进程作为新的副进程,将副进程作为新的主进程。本申请通过设置主进程和副进程,在主进程正常运行时,副进程接收并处理至少一个外部控制器的数据处理请求,当主进程发生故障时,副进程接替主进程向至少一个外部控制器返回数据处理结果。本申请可以解决现有技术中由于进程接替所导致的车载的屏幕仪表出现卡顿的问题,可以实现主进程与副进程之间快速得切换,可以保证向外部控制器发送数据的连续性,不会影响用户体验。
实施例二
图2为本申请实施例提供的进程接替的方法的第二流程示意图。本申请实施例是在上述实施例的基础上进行优化,具体优化为:增加了对将分区信息写入至共享内存的过程和对程序进行升级的过程进行详细的解释说明。
参见图2,本实施例的方法包括但不限于如下步骤:
S210、根据目标程序代码所对应的进程号,确定目标程序代码对应的主进程和副进程。
S220、通过主进程将主进程标识和主进程对应的分区信息写入至共享内存中;通过副进程将副进程标识和副进程对应的分区信息写入至共享内存中。
在本申请实施例中,在确定了目标程序代码对应的主进程和副进程之后,需要主进程和副进程将各自所对应的分区信息写入至共享内存中。由于若主进程发生故障时,主进程和副进程会互相交换,也就是,主进程会作为新的副进程,副进程会作为新的主进程,所以也需要将进程标识写进共享内存中。因此,将进程标识与进程的分区信息之间的对应关系作为一条数据,写进共享内存中。具体的,主进程将主进程标识和主进程对应的分区信息写入至共享内存中,副进程将副进程标识和副进程对应的分区信息写入至共享内存中。
S230、通过主进程和副进程接收目标程序代码对应的至少一个外部控制器发送的数据处理请求。
S240、通过主进程向至少一个外部控制器返回数据处理请求对应的数据处理结果。
S250、若检测到主进程发生故障,通过副进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;将主进程作为新的副进程,将副进程作为新的主进程。
可选的,通过新的主进程将新的主进程标识和新的主进程对应的分区信息写入至共享内存中;通过新的副进程将新的副进程标识和新的副进程对应的分区信息写入至共享内存中。
在本申请实施例中,当主进程发生故障时,主进程会作为新的副进程,副进程会作为新的主进程。因此,共享内存中所存储的进程标识与进程的分区信息之间的对应关系会出现错误,如,新的副进程标识对应的是旧的主进程(故障发生之前的主进程)的分区信息。因此,在主进程发生故障之后,需要重新将进程标识与进程的分区信息之间的对应关系写入至共享内存中,并删除主进程发生故障之前的进程标识与进程的分区信息之间的对应关系。
S260、若接收到用户发送的程序升级请求,则通过主进程控制副进程,以使副进程进行程序升级。
在本申请实施例中,如果用户需要对目标程序代码进行升级,可以向车载终端发起程序升级请求。车载终端接收到用户发送的程序升级请求之后,响应程序升级请求。
可选的,本步骤若接收到用户发送的程序升级请求,则通过主进程控制副进程,以使副进程进行程序升级可由以下三个子步骤来实现:
S2601、响应于程序升级请求获取程序升级请求对应的程序升级包。
在本申请实施例中,用户向车载终端发起程序升级请求。车载终端接收到用户发送的程序升级请求之后,响应程序升级请求获取程序升级请求对应的程序升级包。其中,本申请对获取程序升级包的方式不做具体限定,可以是从服务器的数据库中获取程序升级请求对应的程序升级包,还可以是由程序开发商提供。
S2602、通过副进程从共享内存中读取副进程对应的分区信息。
在本申请实施例中,在车载终端接收到程序升级请求之前,副进程作为备份进程,一直在接收并处理至少一个外部控制器的数据处理请求。当车载终端接收到程序升级请求并获取到程序升级请求对应的程序升级包之后,车载终端先通过主进程关闭正在运行的副进程,再通过副进程从共享内存中读取副进程程序分区信息。
S2603、根据副进程对应的分区信息,将程序升级请求对应的程序升级包替换副进程对应的分区中的数据包。
在本申请实施例中,经上述步骤,副进程从共享内存中读取副进程程序分区信息之后,根据副进程对应的分区信息,先删除副进程对应的分区中的数据包,再将程序升级请求对应的程序升级包更新到副进程对应的分区中。对副进程的数据包进行更新之后,重启副进程,以使副进程继续接收并处理至少一个外部控制器的数据处理请求。
需要说明的是,S250是主进程发生故障时,由副进程作为新的主进程,继续执行目标程序代码的过程,S260是车载终端接收到程序升级请求时,主进程控制副进程,以使副进程完成程序升级的过程,这两个过程是相互独立的。本申请实施例不对这两个过程的执行顺序进行限定,需要根据实际情况来确定两个过程的具体执行顺序,所以实际执行时可以是按照本申请上述实施例介绍的顺序执行,也可以是先执行S260,再执行S250。
本实施例提供的技术方案,根据目标程序代码所对应的进程号,确定目标程序代码对应的主进程和副进程;通过主进程将主进程标识和主进程对应的分区信息写入至共享内存中;通过副进程将副进程标识和副进程对应的分区信息写入至共享内存中;通过主进程和副进程接收目标程序代码对应的至少一个外部控制器发送的数据处理请求;通过主进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;若检测到主进程发生故障,通过副进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;将主进程作为新的副进程,将副进程作为新的主进程;若接收到用户发送的程序升级请求,则通过主进程控制副进程,以使副进程进行程序升级。本申请在接收到用户发送的程序升级请求时,主进程正常运行,对副进程进行程序升级,可以解析现有技术中因进程的程序在线升级时所造成的屏幕仪表卡顿的问题,使得对程序在线升级而不会影响系统的正常运行。
实施例三
图3A为本申请实施例提供的进程接替的方法的第三流程示意图;图3B为本申请实施例三提供的一种进程接替的方法的方案示意图。本申请实施例是在上述实施例的基础上进行优化,具体优化为:增加了对两个进程都进行升级的过程进行详细的解释说明。
参考图3A,本实施例的方法包括但不限于如下步骤:
S310、根据目标程序代码所对应的进程号,确定目标程序代码对应的主进程和副进程。
S320、通过主进程和副进程接收目标程序代码对应的至少一个外部控制器发送的数据处理请求。
S330、通过主进程向至少一个外部控制器返回数据处理请求对应的数据处理结果。
S340、若接收到用户发送的程序升级请求,则通过主进程控制副进程,以使副进程进行程序升级。
S350、通过主进程向共享内存中写入更新状态数据。
其中,更新状态数据包括:主进程的升级信息和副进程的升级信息。
在本申请实施例中,对副进程进行程序升级之后,主进程向共享内存中写入更新状态数据,用于标识两个进程的升级状态。示例性的,更新状态数据为0xAA表示的是副进程的升级信息为已被升级,主进程的升级信息为未被升级;更新状态数据为0x55表示的是副进程的升级信息为已被升级,主进程的升级信息为已被升级。
S360、若检测到主进程发生故障,通过副进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;将主进程作为新的副进程,将副进程作为新的主进程。
S370、通过新的主进程读取共享内存中的更新状态数据。
在本申请实施例中,对故障处理结束之后,通过新的主进程读取共享内存中的更新状态数据,了解新的主进程和新的副进程的升级状态。示例性的,若所读取到的更新状态数据为0x55,则表明新的主进程和新的副进程都已被升级,无需再对其进行升级操作;若所读取到的更新状态数据为0xAA,则表明新的主进程在故障发生之前作为副进程时已经被升级,新的副进程的升级信息为未被升级。原因为:当主进程发生故障时,将主进程作为新的副进程,将副进程作为新的主进程,则新的主进程的升级信息为已被升级。
S380、若新的主进程的升级信息为已被升级,并且新的副进程的升级信息为未被升级,则通过新的主进程控制新的副进程,以使新的副进程进行程序升级。
在本申请实施例中,若新的主进程的升级信息为已被升级,并且新的副进程的升级信息为未被升级,则通过新的主进程控制新的副进程,以使新的副进程进行程序升级。程序升级的具体过程在上述实施例中的S260中已详细解释过,在此不做介绍。
需要说明的是,S310-S330是主进程正常运行的过程;S340-S350是车载终端接收到程序升级请求时,主进程控制副进程,以使副进程完成程序升级的过程;S360是主进程发生故障时,由副进程作为新的主进程,继续执行目标程序代码的过程;S370-S380是主进程发生故障之后,新的主进程控制新的副进程,以使新的副进程完成程序升级的过程。其中,S340-S350和S360这两个过程是相互独立的,本申请实施例不对这两个过程的执行顺序进行限定,需要根据实际情况来确定两个过程的具体执行顺序,所以实际执行时可以是按照本申请上述实施例介绍的顺序执行,也可以是先执行S360,再执行S340-S350。但是,S370-S380是在S340-S350和S360之后才会有的步骤。
需要说明的是,若执行了S340-S350(主进程控制副进程,以使副进程完成程序升级)之后,主进程没有发生故障(即没有发生S360),则不会发生S370-S380,那么车载终端始终使用的是未被升级的主进程在运行。当断电再重新上电之后,先执行S370(读取共享内存中的更新状态数据),然后将已被升级的进程作为新的主进程,最后执行S380(通过新的主进程控制新的副进程,以使新的副进程进行程序升级),以使两个进程都完成程序升级。
如图3B所示,主进程在正常运行时,接收到至少一个外部控制器(数据处理请求方)发送的数据处理请求对其进程响应,进行功能运算,再将运算所得的数据处理结果返回给数据处理请求方。副进程作为备份进程,接收至少一个外部控制器的数据处理请求,并进行功能运算,而不将运算所得的数据处理结果返回给数据处理请求方。主进程向共享内存中写入循环递加数据,副进程从共享内存中读取主进程在共享内存写入中的循环递加数据,用于监控主进程是否出现故障。主进程和副进程分别将各自的进程标识与进程的分区信息之间的对应关系写入至共享内存中,以使后续在程序升级时,从共享内存中读取副进程对应的分区信息,对副进程进行更新。对副进程进行程序升级之后,主进程向共享内存中写入更新状态数据,用于标识两个进程的升级状态。
本实施例提供的技术方案,根据目标程序代码所对应的进程号,确定目标程序代码对应的主进程和副进程;通过主进程和副进程接收目标程序代码对应的至少一个外部控制器发送的数据处理请求;通过主进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;若接收到用户发送的程序升级请求,则通过主进程控制副进程,以使副进程进行程序升级;通过主进程向共享内存中写入更新状态数据;若检测到主进程发生故障,通过副进程向至少一个外部控制器返回数据处理请求对应的数据处理结果;将主进程作为新的副进程,将副进程作为新的主进程;通过新的主进程读取共享内存中的更新状态数据;若新的主进程的升级信息为已被升级,并且新的副进程的升级信息为未被升级,则通过新的主进程控制新的副进程,以使新的副进程进行程序升级。本申请在上述实施例的基础上,在主进程发生故障之后,通过新的主进程控制新的副进程,对新的副进程进行程序升级,以使两个进程都完成程序升级。本申请可以解决现有技术中因进程的程序在线升级时所造成的屏幕仪表卡顿的问题,使得对程序在线升级而不会影响系统的正常运行。
实施例四
图4为本申请实施例提供的进程接替的装置的结构示意图,如图4所示,该装置400可以包括:
进程确定模块410,用于根据目标程序代码所对应的进程号,确定所述目标程序代码对应的主进程和副进程;
请求接收模块420,用于通过所述主进程和所述副进程接收所述目标程序代码对应的至少一个外部控制器发送的数据处理请求;
请求处理模块430,用于通过所述主进程向所述至少一个外部控制器返回所述数据处理请求对应的数据处理结果;
进程交换模块440,用于若检测到所述主进程发生故障,通过所述副进程向所述至少一个外部控制器返回所述数据处理请求对应的数据处理结果;将所述主进程作为新的副进程,将所述副进程作为新的主进程。
可选的,所述检测到所述主进程发生故障,包括:通过所述主进程按照预定时间间隔向共享内存中写入循环递加数据;通过所述副进程按照所述预定时间间隔读取所述主进程在所述共享内存写入中的循环递加数据;若检测到所述副进程连续预设次数未读取到所述主进程在所述共享内存写入中的循环递加数据,则判定所述主进程发生故障。
进一步的,上述进程接替的装置,还可以包括:分区信息写入模块450(图中未示出);
所述分区信息写入模块450,用于通过所述主进程将主进程标识和所述主进程对应的分区信息写入至所述共享内存中;通过所述副进程将副进程标识和所述副进程对应的分区信息写入至所述共享内存中;或者,通过所述新的主进程将所述新的主进程标识和所述新的主进程对应的分区信息写入至所述共享内存中;通过所述新的副进程将所述新的副进程标识和所述新的副进程对应的分区信息写入至所述共享内存中。
进一步的,上述进程接替的装置,还可以包括:程序升级模块460(图中未示出);
所述程序升级模块460,用于若接收到用户发送的程序升级请求,则通过所述主进程控制所述副进程,以使所述副进程进行程序升级。
进一步的,上述进程接替的装置,还可以包括:状态数据写入模块470(图中未示出);
所述状态数据写入模块470,用于通过所述主进程向所述共享内存中写入更新状态数据;其中,所述更新状态数据包括:所述主进程的升级信息和所述副进程的升级信息。
进一步的,上述程序升级模块460,具体用于:响应于所述程序升级请求获取所述程序升级请求对应的程序升级包;通过所述副进程从所述共享内存中读取所述副进程对应的分区信息;根据所述副进程对应的分区信息,将所述程序升级请求对应的程序升级包替换所述副进程对应的分区中的数据包。
进一步的,上述程序升级模块460,具体用于:在所述检测到所述主进程发生故障之后,通过所述新的主进程读取所述共享内存中的所述更新状态数据;若所述新的主进程的升级信息为已被升级,并且所述新的副进程的升级信息为未被升级,则通过所述新的主进程控制所述新的副进程,以使所述新的副进程进行程序升级。
本实施例提供的进程接替的装置可适用于上述任意实施例提供的进程接替的方法,具备相应的功能和有益效果。
实施例五
图5是用来实现本申请实施例的进程接替的方法的电子设备的框图,图5示出了适于用来实现本发明实施例实施方式的示例性电子设备的框图。图5显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。该电子设备典型可以是智能手机、平板电脑、笔记本电脑、车载终端以及可穿戴设备等。
如图5所示,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:一个或者多个处理器或者处理单元516,存储器528,连接不同系统组件(包括存储器528和处理单元516)的总线518。
总线518表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备500典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备500访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器528可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)530和/或高速缓存存储器532。电子设备500可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统534可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线518相连。存储器528可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请实施例各实施例的功能。
具有一组(至少一个)程序模块542的程序/实用工具540,可以存储在例如存储器528中,这样的程序模块542包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块542通常执行本申请实施例所描述的实施例中的功能和/或方法。
电子设备500也可以与一个或多个外部设备514(例如键盘、指向设备、显示器524等)通信,还可与一个或者多个使得用户能与该电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口522进行。并且,电子设备500还可以通过网络适配器520与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图5所示,网络适配器520通过总线518与电子设备500的其它模块通信。应当明白,尽管图5中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元516通过运行存储在存储器528中的程序,从而执行各种功能应用以及数据处理,例如实现本申请任一实施例所提供的进程接替的方法。
实施例六
本申请实施例六还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时可以用于执行本申请上述任一实施例所提供的进程接替的方法。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种进程接替的方法,其特征在于,所述方法包括:
根据目标程序代码所对应的进程号,确定所述目标程序代码对应的主进程和副进程;
通过所述主进程和所述副进程接收所述目标程序代码对应的至少一个外部控制器发送的数据处理请求;
通过所述主进程向所述至少一个外部控制器返回所述数据处理请求对应的数据处理结果;
若检测到所述主进程发生故障,通过所述副进程向所述至少一个外部控制器返回所述数据处理请求对应的数据处理结果;将所述主进程作为新的副进程,将所述副进程作为新的主进程。
2.根据权利要求1所述的方法,所述检测到所述主进程发生故障,包括:
通过所述主进程按照预定时间间隔向共享内存中写入循环递加数据;
通过所述副进程按照所述预定时间间隔读取所述主进程在所述共享内存写入中的循环递加数据;
若检测到所述副进程连续预设次数未读取到所述主进程在所述共享内存写入中的循环递加数据,则判定所述主进程发生故障。
3.根据权利要求2所述的方法,所述方法还包括:
通过所述主进程将主进程标识和所述主进程对应的分区信息写入至所述共享内存中;通过所述副进程将副进程标识和所述副进程对应的分区信息写入至所述共享内存中;
或者,通过所述新的主进程将所述新的主进程标识和所述新的主进程对应的分区信息写入至所述共享内存中;通过所述新的副进程将所述新的副进程标识和所述新的副进程对应的分区信息写入至所述共享内存中。
4.根据权利要求1所述的方法,其特征在于,还包括:
若接收到用户发送的程序升级请求,则通过所述主进程控制所述副进程,以使所述副进程进行程序升级。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
通过所述主进程向所述共享内存中写入更新状态数据;其中,所述更新状态数据包括:所述主进程的升级信息和所述副进程的升级信息。
6.根据权利要求4所述的方法,其特征在于,所述通过所述主进程控制所述副进程,以使所述副进程进行程序升级,包括:
响应于所述程序升级请求获取所述程序升级请求对应的程序升级包;
通过所述副进程从所述共享内存中读取所述副进程对应的分区信息;
根据所述副进程对应的分区信息,将所述程序升级请求对应的程序升级包替换所述副进程对应的分区中的数据包。
7.根据权利要求4所述的方法,其特征在于,在所述检测到所述主进程发生故障之后,所述方法还包括:
通过所述新的主进程读取所述共享内存中的所述更新状态数据;
若所述新的主进程的升级信息为已被升级,并且所述新的副进程的升级信息为未被升级,则通过所述新的主进程控制所述新的副进程,以使所述新的副进程进行程序升级。
8.一种进程接替的装置,其特征在于,所述装置包括:
进程确定模块,用于根据目标程序代码所对应的进程号,确定所述目标程序代码对应的主进程和副进程;
请求接收模块,用于通过所述主进程和所述副进程接收所述目标程序代码对应的至少一个外部控制器发送的数据处理请求;
请求处理模块,用于通过所述主进程向所述至少一个外部控制器返回所述数据处理请求对应的数据处理结果;
进程交换模块,用于若检测到所述主进程发生故障,通过所述副进程向所述至少一个外部控制器返回所述数据处理请求对应的数据处理结果;将所述主进程作为新的副进程,将所述副进程作为新的主进程。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的进程接替的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的进程接替的方法。
CN202110378335.7A 2021-04-08 2021-04-08 进程接替的方法、装置、电子设备及存储介质 Active CN113064748B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110378335.7A CN113064748B (zh) 2021-04-08 2021-04-08 进程接替的方法、装置、电子设备及存储介质
PCT/CN2021/136055 WO2022213641A1 (zh) 2021-04-08 2021-12-07 进程接替的方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110378335.7A CN113064748B (zh) 2021-04-08 2021-04-08 进程接替的方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113064748A true CN113064748A (zh) 2021-07-02
CN113064748B CN113064748B (zh) 2023-02-28

Family

ID=76566300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110378335.7A Active CN113064748B (zh) 2021-04-08 2021-04-08 进程接替的方法、装置、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN113064748B (zh)
WO (1) WO2022213641A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114740825A (zh) * 2022-04-13 2022-07-12 中国第一汽车股份有限公司 数据测量标定方法、装置、车用控制器、车辆及介质
CN114860347A (zh) * 2022-05-27 2022-08-05 上海联影医疗科技股份有限公司 一种孪生进程重启方法、设备、医疗系统及存储介质
WO2022213641A1 (zh) * 2021-04-08 2022-10-13 中国第一汽车股份有限公司 进程接替的方法、装置、电子设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116820527B (zh) * 2023-08-31 2024-01-02 腾讯科技(深圳)有限公司 程序升级方法、装置、计算机设备和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306794A (ja) * 1994-05-12 1995-11-21 Mitsubishi Electric Corp 分散システム及び分散システムの高信頼化方法
CN104850456A (zh) * 2015-05-27 2015-08-19 苏州科达科技股份有限公司 多进程解码方法和系统
CN105138409A (zh) * 2015-08-25 2015-12-09 西南交通大学 基于多进程的铁路列车运行图编制系统及方法
CN106462455A (zh) * 2015-06-16 2017-02-22 华为技术有限公司 进程接替的方法和装置
CN107729178A (zh) * 2017-09-28 2018-02-23 郑州云海信息技术有限公司 一种元数据服务进程接替方法及装置
WO2019144777A1 (zh) * 2018-01-24 2019-08-01 北京金山云网络技术有限公司 报文转发方法、转发装置、服务器及存储介质
CN111813550A (zh) * 2020-07-08 2020-10-23 深圳市腾讯网域计算机网络有限公司 数据处理方法、装置、服务器和存储介质
CN111988150A (zh) * 2020-09-03 2020-11-24 深圳壹账通智能科技有限公司 区块链证书更新方法、装置、计算机设备及存储介质
CN112286656A (zh) * 2020-10-21 2021-01-29 百度在线网络技术(北京)有限公司 小程序模拟方法、装置、电子设备和计算机可读存储介质
CN112346925A (zh) * 2020-09-25 2021-02-09 南京恩瑞特实业有限公司 一种进程级双机热备冗余系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920633B1 (en) * 2000-01-14 2005-07-19 Microsoft Corporation Cross-process common system resource data sharing
CN109324977A (zh) * 2018-10-31 2019-02-12 北京微播视界科技有限公司 应用程序卡顿的检测方法、装置及电子设备
CN113064748B (zh) * 2021-04-08 2023-02-28 中国第一汽车股份有限公司 进程接替的方法、装置、电子设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306794A (ja) * 1994-05-12 1995-11-21 Mitsubishi Electric Corp 分散システム及び分散システムの高信頼化方法
CN104850456A (zh) * 2015-05-27 2015-08-19 苏州科达科技股份有限公司 多进程解码方法和系统
CN106462455A (zh) * 2015-06-16 2017-02-22 华为技术有限公司 进程接替的方法和装置
CN105138409A (zh) * 2015-08-25 2015-12-09 西南交通大学 基于多进程的铁路列车运行图编制系统及方法
CN107729178A (zh) * 2017-09-28 2018-02-23 郑州云海信息技术有限公司 一种元数据服务进程接替方法及装置
WO2019144777A1 (zh) * 2018-01-24 2019-08-01 北京金山云网络技术有限公司 报文转发方法、转发装置、服务器及存储介质
CN111813550A (zh) * 2020-07-08 2020-10-23 深圳市腾讯网域计算机网络有限公司 数据处理方法、装置、服务器和存储介质
CN111988150A (zh) * 2020-09-03 2020-11-24 深圳壹账通智能科技有限公司 区块链证书更新方法、装置、计算机设备及存储介质
CN112346925A (zh) * 2020-09-25 2021-02-09 南京恩瑞特实业有限公司 一种进程级双机热备冗余系统及方法
CN112286656A (zh) * 2020-10-21 2021-01-29 百度在线网络技术(北京)有限公司 小程序模拟方法、装置、电子设备和计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
新华三集团: "ISSU技术白皮书-6W100", 《网址:HTTPS://DOWNLOAD.H3C.COM.CN/DOWNLOAD.DO?ID=4562718》 *
钱枫: "TCP连接修复技术在无间断路由中的研究与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022213641A1 (zh) * 2021-04-08 2022-10-13 中国第一汽车股份有限公司 进程接替的方法、装置、电子设备及存储介质
CN114740825A (zh) * 2022-04-13 2022-07-12 中国第一汽车股份有限公司 数据测量标定方法、装置、车用控制器、车辆及介质
CN114860347A (zh) * 2022-05-27 2022-08-05 上海联影医疗科技股份有限公司 一种孪生进程重启方法、设备、医疗系统及存储介质

Also Published As

Publication number Publication date
WO2022213641A1 (zh) 2022-10-13
CN113064748B (zh) 2023-02-28

Similar Documents

Publication Publication Date Title
CN113064748B (zh) 进程接替的方法、装置、电子设备及存储介质
CN109670319B (zh) 一种服务器flash安全管理方法及其系统
CN112015599B (zh) 错误恢复的方法和装置
CN105872088A (zh) 无人驾驶车辆的操作系统切换方法和装置
CN114546318A (zh) 车辆仪表信息显示方法、装置、电子设备和存储介质
CN111736873B (zh) 电子控制单元的程序更新方法、装置、设备和存储介质
CN113341924A (zh) 一种ecu下电方法、装置、设备及存储介质
CN112199240B (zh) 一种节点故障时进行节点切换的方法及相关设备
CN115658321A (zh) 一种汽车仪表故障信息获取方法、装置、电子设备及存储介质
CN110532014B (zh) 程序升级方法、装置、终端设备及计算机可读存储介质
CN112286559A (zh) 一种车载智能终端的升级方法及装置
CN114036218A (zh) 一种数据模型切换方法、装置、服务器和存储介质
JP2002543521A (ja) 自動的にモジュールをコンピュータシステムに再び組み込む方法および装置
US5339450A (en) Computer system including a terminal operable as a service processor and a work station
CN112751782B (zh) 基于多活数据中心的流量切换方法、装置、设备及介质
CN108037942B (zh) 一种嵌入式设备的自适应数据恢复与更新方法及装置
CN113760631A (zh) 页面加载时长确定方法、装置、设备和存储介质
CN114579388A (zh) 车载系统状态监测方法、系统、存储介质及电子设备
CN111966535A (zh) 一种切换方法、装置、设备及存储介质
CN113096269B (zh) 一种信息采集方法、装置、电子设备以及存储介质
CN115529332B (zh) 一种用于车机中控的云车机系统及远程访问方法
CN116027983A (zh) 一种机组参数的初始化方法、装置、机组及存储介质
CN117971272A (zh) 一种程序升级方法和电子设备
CN117453255A (zh) 嵌入式设备升级方法、装置、设备及存储介质
CN115904446A (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