【技术实现步骤摘要】
一种互斥信号量异常阻塞辅助分析方法、系统及存储介质
[0001]本专利技术涉及多线程编程
,尤其涉及基于嵌入式linux内核的ZebOS平台开发的网络通信软件。
技术介绍
[0002]在ZebOS平台中,几乎所有模块都是采用进程的方式实现,模块间通信使用进程间通信的IPC机制,保证了模块使用内存的安全性。而核心模块HSL,由于需要同时跟芯片和上层应用打交道,为了保证其高效性,使用了多线程模式,在shell中执行ps
–
T|grep hsl可以看到。由于同一进程中的所有线程是共享内存的,资源互斥使用是必须考虑的问题,而多个互斥信号量的相互嵌套使用又极容易导致死锁。Linux内核提供了信号量异常跟踪机制,需要打开相应的编译选项。通常我们在嵌入开发中所使用的Linux内核要求小而稳定,并且不轻易升级。另外,coredump信息有时会因为调用栈被破坏而难以确定问题代码。
技术实现思路
[0003]本专利技术提供了一种互斥信号量异常阻塞辅助分析方法,包括如下步骤:
[0004]步骤1:线 ...
【技术保护点】
【技术特征摘要】
1.一种互斥信号量异常阻塞辅助分析方法,其特征在于,包括如下步骤:步骤1:线程占用了共享资源时,需要将相应的互斥信号量进行lock操作,lock之前,记录wait信息,将该wait信息加入wait list;步骤2:lock之后,记录lock信息,同时从wait list中将wait信息删除;步骤3:访问完共享资源后,将信号量进行unlock操作,unlock之后,清除lock信息;步骤4:每个信号量形成表记录,实时记录到内存中和定时记录到flash中;步骤5:出现异常时,通过查看所述表记录信息,确定出问题的信号量和代码。2.根据权利要求1所述的互斥信号量异常阻塞辅助分析方法,其特征在于,在所述步骤1中,wait信息包括线程号、等待函数、等待行数。3.根据权利要求1所述的互斥信号量异常阻塞辅助分析方法,其特征在于,在所述步骤2中,lock信息包括线程号、等待函数、等待行数。4.根据权利要求1至3任一项所述的互斥信号量异常阻塞辅助分析方法,其特征在于,在所述步骤1中:进程中存在两个或以上的线程,存在两个或以上的共享资源,并且有相应的互斥信号量进行访问保护;线程T1占用了资源R1后,使用信号量M1进行保护;同时,线程T1需要访问资源R2,但资源R2被其他线程占用着,线程T1只能进入pending状态;线程T2占用了资源R2后,使用信号量M2进行保护;同时,线程T2需要访问资源R1,但资源R2被其他线程占用着,线程T2只能进入pending状态;线程T1和线程T2同时等待访问对方持有的资源,形成了死锁;其他线程需要访问资源R1或者资源R2,也都只能进入永久的pending状态。5.一种互斥信号量异常阻塞辅助分析系统,其特征在于,包括:锁定模块:用于线程占用了共享资源时,需要将相应的互斥信号量进...
【专利技术属性】
技术研发人员:许志勇,晏元贵,祝国胜,
申请(专利权)人:北京特立信电子技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。