一种异常进程的定位方法、系统及相关装置制造方法及图纸

技术编号:26597023 阅读:18 留言:0更新日期:2020-12-04 21:18
本申请提供一种异常进程的定位方法,包括:接收异常进程定位请求时,启动用户态和内核态交互接口;通过用户态和内核态交互接口将内核中的环形内存日志数据库映射至用户态;环形内存日志数据库用于保存所有进程运行状态和系统调用记录对应的进程日志;在用户态下从环形内存日志数据库中获取进程日志;分析进程日志,确定异常进程。本申请便于在用户态下对进程日志进行获取和分析,通过进程日志提供的进程监控信息可疑及时定位异常进程所在,还可以通过进程日志统计进程负载性能,以便实现进程的性能优化,从而提高电子设备对于任务的数据处理能力。本申请还提供一种异常进程的定位系统、计算机可读存储介质和电子设备,具有上述有益效果。

【技术实现步骤摘要】
一种异常进程的定位方法、系统及相关装置
本申请涉及操作系统领域,特别涉及一种异常进程的定位方法、系统及相关装置。
技术介绍
Linux是一个复杂的操作系统,各个子系统之间相互合作才能完成高效的任务,进程调度复杂多样。而由于进程通常在内核态运行,使得用户难以针对内核态中的进程进行有效的监控,不利于进程异常时的追踪溯源。
技术实现思路
本申请的目的是提供一种异常进程的定位方法、系统、计算机可读存储介质和电子设备,能够实现对内核态中进程的调用跟踪。为解决上述技术问题,本申请提供一种异常进程的定位方法,具体技术方案如下,包括:接收异常进程定位请求时,启动用户态和内核态交互接口;通过所述用户态和内核态交互接口将内核中的环形内存日志数据库映射至用户态;所述环形内存日志数据库用于保存所有进程运行状态和系统调用记录对应的进程日志;在用户态下从所述环形内存日志数据库中获取所述进程日志;分析所述进程日志,确定异常进程。可选的,接收异常进程定位请求之前,还包括:在内核态建立调度器函数并创建环形内存日志数据库;调用所述调度器函数记录进程的进程运行状态和系统调用记录,生成进程对应的进程日志,并将所述进程日志保存至所述环形内存日志数据库。可选的,还包括:通过Ioctl函数管理所述调度器函数的开启或关闭。可选的,通过所述用户态和内核态交互接口将内核中的环形内存日志数据库映射至用户态包括:在所述用户态和内核态交互接口启用时利用Mmap接口将内核中的环形内存日志数据库映射至用户态。可选的,所述Mmap接口还用于以预设格式导出用户态中的进程日志。可选的,所述进程日志至少包括进程名称、当前时间、进程启动时间和系统调用记录,还包括当前进程PID、下一个进程PID、当前进程CPU、当前指令、负载记录和负载记录时间中的任一项或任几项的组合。本申请还提供一种异常进程的定位系统,包括:请求接收模块,用于接收异常进程定位请求时,启动用户态和内核态交互接口;日志映射模块,用于通过所述用户态和内核态交互接口将内核中的环形内存日志数据库映射至用户态;所述环形内存日志数据库用于保存所有进程运行状态和系统调用记录对应的进程日志;日志获取模块,用于在用户态下从所述环形内存日志数据库中获取所述进程日志;异常定位模块,用于分析所述进程日志,确定异常进程。可选的,还包括:创建模块,用于在内核态建立调度器函数并创建环形内存日志数据库;跟踪模块,用于所述执行所述调度器函数记录进程的运行状态和调用记录,生成进程对应的进程日志,并将所述进程日志保存至所述环形内存日志数据库。本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。本申请还提供一种电子设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。本申请提供一种异常进程的定位方法,包括:接收异常进程定位请求时,启动用户态和内核态交互接口;通过所述用户态和内核态交互接口将内核中的环形内存日志数据库映射至用户态;所述环形内存日志数据库用于保存所有进程运行状态和系统调用记录对应的进程日志;在用户态下从所述环形内存日志数据库中获取所述进程日志;分析所述进程日志,确定异常进程。本申请通过配置用户态和内核态交互接口,使得在内核中环形内存日志数据库的进程日志得以由内核态转为用户态,以便于在用户态下对进程日志进行获取和分析,通过进程日志提供的进程监控信息可疑及时定位异常进程所在,在此基础上还可以通过进程日志统计进程负载性能,以便实现进程的性能优化,从而提高电子设备对于任务的数据处理能力。本申请还提供一种异常进程的定位系统、计算机可读存储介质和电子设备,具有上述有益效果,此处不再赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例所提供的一种异常进程调度过程和进程状态示意图;图2为本申请实施例所提供的一种异常进程的定位方法的流程图;图3为本申请实施例所提供的一种异常进程的定位方法的流程图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。请参考图1,图1为本申请实施例所提供的一种异常进程调度过程和进程状态示意图,由图1可以看出,进程主要包含以下几种状态:运行状态(TASK_RUNNING),当进程正在被CPU执行,或已经准备就绪随时可由调度程序执行,则称该进程为处于运行状态(running)。进程可以在内核态运行,也可以在用户态运行。当系统资源已经可用时,进程就被唤醒而进入准备运行状态,该状态称为就绪态。这些状态(图1中中间一列,即三个包含0的圆对应的状态)在内核中表示方法相同,都被成为处于TASK_RUNNING状态。可中断睡眠状态(TASK_INTERRUPTIBLE),当进程处于可中断等待状态时,系统不会调度该进程执行。当系统产生一个中断或者释放了进程正在等待的资源,或者进程收到一个信号,都可以唤醒进程转换到就绪状态(运行状态)。不可中断睡眠状态(TASK_UNINTERRUPTIBLE),与可中断睡眠状态类似。但处于该状态的进程只有被使用wake_up()函数明确唤醒时才能转换到可运行的就绪状态。暂停状态(TASK_STOPPED),当进程收到信号SIGSTOP、SIGTSTP、SIGTTIN或SIGTTOU时就会进入暂停状态。可向其发送SIGCONT信号让进程转换到可运行状态。在Linux0.11中,还未实现对该状态的转换处理。处于该状态的进程将被作为进程终止来处理。僵死状态(TASK_ZOMBIE),当进程已停止运行,但其父进程还没有询问其状态时,则称该进程处于僵死状态。当一个进程的运行时间片用完,系统就会使用调度程序强制切换到其它的进程去执行。另外,如果进程在内核态执行时需要等待系统的某个资源,此时该进程就会调用sleep_on()或sleep_on_interruptible()自愿地放弃CPU的使用权,而让调度程序去执行其它进程。进程则进入睡眠状态(TASK_UNINTERRUPTIBLE或TASK_INTERRUPTIBLE)。只有当进程从“内核运行态”转移到“睡眠状态”时,内核才会进行进程切换操作。本文档来自技高网...

【技术保护点】
1.一种异常进程的定位方法,其特征在于,包括:/n接收异常进程定位请求时,启动用户态和内核态交互接口;/n通过所述用户态和内核态交互接口将内核中的环形内存日志数据库映射至用户态;所述环形内存日志数据库用于保存所有进程运行状态和系统调用记录对应的进程日志;/n在用户态下从所述环形内存日志数据库中获取所述进程日志;/n分析所述进程日志,确定异常进程。/n

【技术特征摘要】
1.一种异常进程的定位方法,其特征在于,包括:
接收异常进程定位请求时,启动用户态和内核态交互接口;
通过所述用户态和内核态交互接口将内核中的环形内存日志数据库映射至用户态;所述环形内存日志数据库用于保存所有进程运行状态和系统调用记录对应的进程日志;
在用户态下从所述环形内存日志数据库中获取所述进程日志;
分析所述进程日志,确定异常进程。


2.根据权利要求1所述的定位方法,其特征在于,接收异常进程定位请求之前,还包括:
在内核态建立调度器函数并创建环形内存日志数据库;
调用所述调度器函数记录进程的进程运行状态和系统调用记录,生成所述进程对应的进程日志,并将所述进程日志保存至所述环形内存日志数据库。


3.根据权利要求2所述的定位方法,其特征在于,还包括:
通过Ioctl函数管理所述调度器函数的开启或关闭。


4.根据权利要求1所述的定位方法,其特征在于,通过所述用户态和内核态交互接口将内核中的环形内存日志数据库映射至用户态包括:
在所述用户态和内核态交互接口启用时利用Mmap接口将内核中的环形内存日志数据库映射至用户态。


5.根据权利要求4所述的定位方法,其特征在于,所述Mmap接口还用于以预设格式导出用户态中的进程日志。


6.根据权利要求1所述的定位方法,其特征在于,所述进程日志至少包括...

【专利技术属性】
技术研发人员:黄玉龙
申请(专利权)人:北京浪潮数据技术有限公司
类型:发明
国别省市:北京;11

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

1