一种共享内存锁管理控制方法及系统技术方案

技术编号:11823345 阅读:88 留言:0更新日期:2015-08-05 01:55
本发明专利技术提供一种共享内存锁管理控制方法及系统,应用于多个进程访问共享内存的过程中,所述共享内存锁管理控制方法包括:根据各进程调用的接口函数确定区分各进程共享内存锁的获取方式;设定一个全局变量,根据进程的类型和系统状态预设所述全局变量的值,通过所述全局变量的值来区分进程在死锁状态下的处理方式。本发明专利技术既可以保证各个进程间访问共享内存时的正确性,也可以在进程获取锁时采用不同的获取锁策略,而且可以有效的解决的由进程异常导致的死锁问题,并且在处理死锁的过程中也可以依据不同系统状态来采用不同的处理方式,使得系统更加灵活、可靠和稳定。

【技术实现步骤摘要】

本专利技术涉及家庭网关
,特别是涉及家庭网关设备中共享内存数据
,具体为一种共享内存锁管理控制方法及系统
技术介绍
共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。目前Iinux嵌入式系统中采用多进程设计,多进程之间采用共享内存进行通信。通信进程会将采集数据更新到共享内存,其它多个进程都需要从共享内存中读取数据。这样的“一个进程写、多个进程读”的模型,需要采用读写锁来提高访问效率。在系统运行过程中进程可以通过加锁和解锁的机制来实现保护共享内存中的数据不被破坏而导致系统崩溃,但是某个进程对锁的错误操作后者本身的错误使得管理锁的机制出现异常,此时就需要设计出一种有效的防止和处理异常情况的共享内存锁管理机制。现有的嵌入式Iinux系统中共享内存锁的机制,允许进程在访问时对共享内存进行加锁和解锁的动作来获取访问权限和处理数据,造成的主要问题如下:1、获取读写权限的超时周期固定,无法适应不同的进程;2、某个进程在锁定并操作共享内存的过程中出现异常,导致死锁的问题,其他进程将无法访问,导致系统瘫痪;3、对共享内存进行锁操作时没有对系统状态进行区分;4、进程多且复杂度高的系统稳定性不足。如何解决进行再访问共享内存时面临的以上问题成为本领域技术人员亟待解决的问题。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种共享内存锁管理控制方法及系统,用于解决现有技术中进程在访问系统的共享内存时容易导致系统瘫痪、导致系统不稳定的问题。为实现上述目的及其他相关目的,本专利技术提供一种共享内存锁管理控制方法,应用于多个进程访问共享内存的过程中,所述共享内存锁管理控制方法包括:根据各进程调用的接口函数确定区分各进程共享内存锁的获取方式;设定一个全局变量,根据进程的类型和系统状态预设所述全局变量的值,通过所述全局变量的值来区分进程在死锁状态下的处理方式。作为本专利技术的一种优选方案,所述接口函数至少包括:提供进程在获取共享内存锁时进行超时计时且超时为第一预设时间时的第一函数接口 ;提供进程在获取共享内存锁时进行超时计时且超时为第二预设时间时的第二函数接口 ;提供进程在获取共享内存锁时进行超时计时且超时为第三预设时间时的第三函数接口 ;提供进程在获取共享内存锁时不进行超时计时的第四函数接口。作为本专利技术的一种优选方案,所述第一预设时间的时间取值范围为Is?3s ;所述第二预设时间的时间取值范围为4s?6s ;所述第三预设时间的时间取值范围为7s?11 s。作为本专利技术的一种优选方案,所述全局变量的值为第一预设值时,进程在死锁状态下的处理方式为:判定进程死锁,将该进程强行停止。作为本专利技术的一种优选方案,所述全局变量的值为第二预设值时,进程在死锁状态下的处理方式为:判定进程死锁,保留该进程。为实现上述目的,本专利技术还提供一种共享内存锁管理控制系统,应用于多个进程访问共享内存的过程中,所述共享内存锁管理控制系统包括:内存锁的获取方式模块,用于根据各进程调用的接口函数确定区分各进程共享内存锁的获取方式;死锁状态处理模块,与所述内存锁的获取方式模块相连,用于设定一个全局变量,根据进程的类型和系统状态预设所述全局变量的值,通过所述全局变量的值来区分进程在死锁状态下的处理方式。作为本专利技术的一种优选方案,所述接口函数至少包括:提供进程在获取共享内存锁时进行超时计时且超时为第一预设时间时的第一函数接口 ;提供进程在获取共享内存锁时进行超时计时且超时为第二预设时间时的第二函数接口 ;提供进程在获取共享内存锁时进行超时计时且超时为第三预设时间时的第三函数接口 ;提供进程在获取共享内存锁时不进行超时计时的第四函数接口。作为本专利技术的一种优选方案,所述第一预设时间的时间取值范围为Is?3s ;所述第二预设时间的时间取值范围为4s?6s ;所述第三预设时间的时间取值范围为7s?11 s。作为本专利技术的一种优选方案,所述全局变量的值为第一预设值时,进程在死锁状态下的处理方式为:判定进程死锁,将该进程强行停止。作为本专利技术的一种优选方案,所述全局变量的值为第二预设值时,进程在死锁状态下的处理方式为:判定进程死锁,保留该进程。如上所述,本专利技术的一种共享内存锁管理控制方法及系统,具有以下有益效果:本专利技术通过区分各进程共享内存锁的获取方式,既可以保证各个进程间访问共享内存时的正确性,也可以在进程获取锁时采用不同的获取锁策略,并通过全局变量的值来区分进程在死锁状态下的处理方式,可以有效的解决的由进程异常导致的死锁问题,并且在处理死锁的过程中也可以依据不同系统状态来采用不同的处理方式,使得系统更加灵活、可靠和稳定。【附图说明】图1显示为本专利技术的共享内存锁管理控制方法的流程示意图。图2显示为本专利技术的共享内存锁管理控制系统的结构示意图。元件标号说明I共享内存锁管理控制系统11内存锁的获取方式模块12死锁状态处理模块Sll ?S12 步骤【具体实施方式】以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。本专利技术的目的在于提供一种共享内存锁管理控制方法及系统,用于解决现有技术中进程在访问系统的共享内存时容易导致系统瘫痪、导致系统不稳定的问题。以下将详细阐述本专利技术的一种共享内存锁管理控制方法及系统的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本专利技术的一种共享内存锁管理控制方法及系统。第一实施例本实施例提供一种共享内存锁管理控制方法,本实施例涉及Iinux系统的家庭网关产品,主要实现和改进了一种多进程访问共享内存的锁管理机制。本实施例的主要功能是实现嵌入式无线家庭网关设备中不同进程访问系统共享内存数据下锁的机制的改进和优化,基于现有网关实际使用过程中的操作和需求,以及现有的应用进程访问共享内存的管理机制,改进并设计了一套具有多进程访问共享内存时的保护锁的机制,同时又能防止和处理某些未知情况下导致锁获取失败和死锁的情况,通过区分不同的应用进程来实现共享内存锁的动态管理机制,实现了系统的运行的稳定性和可靠性。本实施例针对现有技术中管理共享内存锁机制的不足之处,考虑到当前嵌入式家庭网关设备的具体系统和实际需求,设计并提出了一套改进的管理共享内存的锁机制,本实施例的主要目的是:1、对进程获取锁的方式进行区分。2、对进程异常导致的死锁问题进行了处理,避免系统瘫痪。3、区分不同系统状态下死锁问题的处理方案。4、提升系统的可靠性和稳定性。具体地,如图1所示,本实施例提供一种共享内存锁管理控制方法,应用于多个进程访问共享内存的过程中,所述共享内存锁管理控制方法包括以下步骤。步骤S11,根据各进程当前第1页1 2 3 本文档来自技高网...

【技术保护点】
一种共享内存锁管理控制方法,应用于多个进程访问共享内存的过程中,其特征在于:所述共享内存锁管理控制方法包括:根据各进程调用的接口函数确定区分各进程共享内存锁的获取方式;设定一个全局变量,根据进程的类型和系统状态预设所述全局变量的值,通过所述全局变量的值来区分进程在死锁状态下的处理方式。

【技术特征摘要】

【专利技术属性】
技术研发人员:张珠明
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1