一种共享内存的访问控制方法、装置及系统制造方法及图纸

技术编号:14116724 阅读:84 留言:0更新日期:2016-12-07 23:04
本申请提供了一种共享内存的访问控制方法、装置及系统,这三个技术方案的技术思想一致,其中,系统包括:状态感知模块、消息发布模块、以及内核模块;其中,所述状态感知模块,用于实时感知用户态进程的状态,并将所述状态发送至所述消息发布模块;所述消息发布模块,用于向所述内核模块发布所述用户态进程的状态;所述内核模块,用于在所述用户态进程进入退出状态时,控制线程停止访问所述用户态进程的共享内存,并当所述进程结束访问时,再触发所述用户态进程完成退出。本申请提供的技术方案能够防止内核模块访问错误数据,以有效避免由于错误数据导致了操作系统内核产生无法恢复的异常问题。

【技术实现步骤摘要】

本申请涉及计算机
,特别涉及内核态安全访问用户态共享内存的控制方法、装置及系统。
技术介绍
在Linux系统中,用户态进程与操作系统内核通过共享内存进行通信,用户态进程和操作系统内核能够访问同一块内存,以实现数据通信。在实际应用场景中,用户态进程由于某些原因导致进程崩溃,需要自动重启。而在用户态进程发生崩溃到完成重启这一段时间内,用户态进程异常退出,其占用的共享内存就会被回收,再被重新分配给其他的进程使用,而访问该用户态进程的操作系统内核却不知道用户态进程已经崩溃,还是一如既往地继续访问共享内存,此时,从共享内存读取的数据,对于操作系统内核而言就是错误数据,严重时,该错误数据会导致操作系统内核产生无法恢复的异常问题,导致系统死机。
技术实现思路
本申请所要解决的技术问题是提供共享内存的访问控制方法,能够在一定程度上防止内核模块访问错误数据,从而避免出现由于错误数据导致了操作系统内核产生无法恢复的异常问题,在一定程度上能够提高操作系统运行的稳定性和健壮性。另外,本申请还提供了一种共享内存的访问控制装置及系统,用于保证上述方法在实际中的实现以及应用。在本申请第一方面提供了一种共享内存的访问控制方法,所述方法包括:监控用户态进程的状态;若所述用户态进程进入退出状态,控制线程停止访问所述用户态进程的共享内存;当所述线程结束访问时,触发所述用户态进程完成退出。可选的,所述方法还包括:设置所述用户态进程对应的访问计数器;所述访问计数器用于记录所述用户态进程的共享内存正在被访问的次数;则所述若所述用户态进程进入退出状态,控制线程停止访问所述用户态进程的共享内存,包括:若所述用户态进程进入退出状态,且根据所述访问计数器的计数值,控制线程停止访问所述用户态进程的共享内存。可选的,所述控制线程停止访问所述用户态进程的共享内存,包括:禁止发起新线程访问所述用户态进程的共享内存;或,控制正在访问所述用户态进程的共享内存的线程,尽快结束访问。可选的,所述方法还包括:监控正在访问所述共享内存的线程是否在预设时间内结束访问,如果否,则再次通知正在访问所述共享内存的线程尽快结束访问。可选的,所述方法还包括:禁止中央处理器对所述线程发起进程调度,并在所述线程访问完毕时,解除禁止。可选的,所述方法还包括:预先注册与所述用户态进程相关的回调函数;则通过所述回调函数被调用方式,监控得到用户态进程的状态。可选的,所述方法还包括:设置所述用户态进程调用预设的字符设备驱动中的release函数实现用户态进程的退出;所述release函数用于感知所述用户态进程进入退出状态,并在确定访问所述用户态进程的共享内存的线程结束访问时,再触发所述用户态进程完成退出。可选的,所述方法还包括:设置所述用户态进程调用预设的字符设备驱动中的open函数实现用户态进程的启动;所述open函数用于实时感知用户态进程进入启动状态。在本申请第二方面提供了一种共享内存的访问控制装置,所述装置包括:监控模块、线程访问控制模块、用户态进程退出控制模块;其中,所述监控模块,用于监控用户态进程的状态;若所述用户态进程进入退出状态,触发所述线程访问控制模块;所述线程访问控制模块,用于若所述用户态进程进入退出状态,控制线程停止访问所述用户态进程的共享内存;当所述线程结束访问时,触发用户态进程退出控制模块;所述用户态进程退出控制模块,用于当所述线程结束访问时,触发所述用户态进程完成退出。可选的,所述装置还包括:访问计数模块,用于设置所述用户态进程对应的访问计数器;所述访问计数器用于记录所述用户态进程的共享内存正在被访问的次数;则所述线程访问控制模块,具体用于:若所述用户态进程进入退出状态,且根据所述访问计数器的计数值,控制线程停止访问所述用户态进程的共享内存。可选的,所述线程访问控制模块,包括:禁止子模块,用于禁止发起新线程访问所述用户态进程的共享内存;或,控制子模块,用于控制正在访问所述用户态进程的共享内存的线程,尽快结束访问。可选的,所述装置还包括:延迟再通知模块,用于监控正在访问所述共享内存的线程是否在预设时间内结束访问,如果否,则再次通知正在访问所述共享内存的线程尽快结束访问。可选的,所述装置还包括:禁止模块,用于禁止中央处理器对所述线程发起进程调度,并在所述线程访问完毕时,解除禁止。可选的,所述装置还包括:注册模块,用于预先注册与所述用户态进程相关的回调函数;则所述监控模块具体通过所述回调函数被调用方式,监控得到用户态进程的状态。可选的,所述装置还包括:第一设置模块,用于设置所述用户态进程调用预设的字符设备驱动中的release函数实现用户态进程的退出;所述release函数用于感知所述用户态进程进入退出状态,并在确定访问所述用户态进程的共享内存的线程结束访问时,再触发所述用户态进程完成退出。可选的,所述装置还包括:第二设置模块,用于设置所述用户态进程调用预设的字符设备驱动中的open函数实现用户态进程的启动;所述open函数用于实时感知用户态进程进入启动状态。在本申请第三方面提供了一种共享内存的访问控制系统,所述系统包括:状态感知模块、消息发布模块、以及配置有上述第二方面描述的共享内存的访问控制装置的内核模块;其中,所述状态感知模块,用于实时感知用户态进程的状态,并将所述状态发送至所述消息发布模块;所述消息发布模块,用于向所述内核模块发布所述用户态进程的状态。可选的,所述状态感知模块包括:第一感知子模块,用于通过预设的open函数实时感知所述用户态进程进入启动状态,并触发所述消息发布模块向所述内核模块发布所述用户态进程进入启动状态的消息;第二感知子模块,用于通过预设的release函数实时感知所述用户态进程进入退出状态,触发所述消息发布模块向所述内核模块发布所述用户态进程进入退出状态的消息;其中,所述release函数被设置为在确定访问所述共享内存的线程都结束时,再执行退出。可选的,所述消息发布模块,包括:注册记录子模块,用于记录所述内核模块预先注册的、与所述用户态进程对应的回调函数;消息发布子模块,用于通过调用与所述用户态进程对应的回调函数地方式,向所述内核模块发布所述用户态进程的状态。与现有技术相比,本申请提供的技术方案具有以下优点:本申请提供的技术方案提出了用户态进程状态的监控机制和内核模块根据用户态进程状态控制访问的工作机制;基于该监控机制,内核模块能够在第一时间了解到用户态进程的状态,并按照这种工作机制,在发现用户态进程进入退出状态时,及时控制正在访问用户态进程的共享内存的线程,尽快停止访问;并且该内核模块停止发起新的访问进程。在访问用户态进程的共享内存的线程都结束访问时,用户态进程才会完全退出,在用户态进程完全退出时,其占用的共享内存才会被操作系统回收再利用。可以看出:本申请提出了这种监控机制和内核模块的工作机制,内核模块在用户态进程崩溃重启阶段,不会访问用户态进程的共享内存,不会获取到错误数据,从而能够避免因错误数据引发操作系统稳定性问题。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201610749664.html" title="一种共享内存的访问控制方法、装置及系统原文来自X技术">共享内存的访问控制方法、装置及系统</a>

【技术保护点】
一种共享内存的访问控制方法,其特征在于,所述方法包括:监控用户态进程的状态;若所述用户态进程进入退出状态,控制线程停止访问所述用户态进程的共享内存;当所述线程结束访问时,触发所述用户态进程完成退出。

【技术特征摘要】
1.一种共享内存的访问控制方法,其特征在于,所述方法包括:监控用户态进程的状态;若所述用户态进程进入退出状态,控制线程停止访问所述用户态进程的共享内存;当所述线程结束访问时,触发所述用户态进程完成退出。2.根据权利要求1所述的共享内存的访问控制方法,其特征在于,所述方法还包括:设置所述用户态进程对应的访问计数器;所述访问计数器用于记录所述用户态进程的共享内存正在被访问的次数;则所述若所述用户态进程进入退出状态,控制线程停止访问所述用户态进程的共享内存,包括:若所述用户态进程进入退出状态,且根据所述访问计数器的计数值,控制线程停止访问所述用户态进程的共享内存。3.根据权利要求1或者2所述的共享内存的访问控制方法,其特征在于,所述控制线程停止访问所述用户态进程的共享内存,包括:禁止发起新线程访问所述用户态进程的共享内存;或,控制正在访问所述用户态进程的共享内存的线程,尽快结束访问。4.根据权利要求3所述的共享内存的访问控制方法,其特征在于,所述方法还包括:监控正在访问所述共享内存的线程是否在预设时间内结束访问,如果否,则再次通知正在访问所述共享内存的线程尽快结束访问。5.根据权利要求1所述的共享内存的访问控制方法,其特征在于,所述方法还包括:禁止中央处理器对所述线程发起进程调度,并在所述线程访问完毕时,解除禁止。6.根据权利要求1所述的共享内存的访问控制方法,其特征在于,所述方法还包括:预先注册与所述用户态进程相关的回调函数;则通过所述回调函数被调用方式...

【专利技术属性】
技术研发人员:李拓
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁;21

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

1