一种用于衡量Linux系统实时性的测试方法技术方案

技术编号:37963105 阅读:13 留言:0更新日期:2023-06-30 09:38
本发明专利技术公开了一种用于衡量Linux系统实时性的测试方法,涉及计算机技术领域,包括多个步骤,首先将源代码导入Linux系统中生成Linux内核模块和可执行文件,再将内核模块插入到Linux内核中,实现对内核信息的收集保存,之后将通过分类后的细粒度测试点通过内核模块进行测试,粗粒度测试点在用户态进行测试,并将在内核中获取到需求点延时数据后反应到用户态,通过内核模块结合粗粒度的模拟过程进行计算整理,输出反应Linux系统实时性数据。本发明专利技术通过将Linux内核态和用户态的协作,进行丰富的模拟测试,获取相应的实时性相关量化数据,使得测试结果更全面更准确。使得测试结果更全面更准确。使得测试结果更全面更准确。

【技术实现步骤摘要】
一种用于衡量Linux系统实时性的测试方法


[0001]本专利技术属于计算机
,具体涉及一种用于衡量Linux系统实时性的测试方法。

技术介绍

[0002]Linux系统作为开源系统的翘楚,应用场景十分广泛。Linux系统的起源是一个用户交互式系统,并没有实时性相关的考虑,但是随着开源的Linux系统越来越受欢迎,Linux系统获得了实时性优化的内核补丁,由此Linux系统内核可以变成实时的系统内核,Linux系统通过对Linux内核打补丁提升其实时性,以满足大部分场景的实时性需求。而操作系统的实时性是一个比较抽象的概念,可以理解为在规定时间内完成规定的工作,可以称呼为该操作系统达到某一个水平的实时性,其容易受到硬件资源、软件的相互影响等,衡量Linux系统的实时性,需要通过测试工具通过数据来体现。
[0003]Cyclictest工具是当前衡量Linux系统实时性的一个较为权威的工具,它通过在用户态模拟Linux系统的进行调度,通过打时间戳相减的方法,获得内核中断延时和内核调度延时,以此反映Linux系统的实时性,但是Cyclictest工具也只是Linux的一个实时测试工具集中的工具,它用于衡量实时性的模拟过程相对较少,所反映的实时性数据较为简单,而且Cyclictest只在用户态进行模拟和数据的输出,难免会有略微的额外时间开销。
[0004]此外,Ftrace作为Linux系统内核的内置模块,系统的实时性能够通过Ftrace工具在系统运行过程中跟踪相关可探测点,关注实时性相关的函数调用过程,以此达到量化实时性的目的,但是虽然Ftrace受到Linux官方的支撑,其本质上就是一个Linux内核跟踪机制模块,对于实时性的检测只是其功能的一种,而且通过Ftrace获取的数据往往不够直观,操作也较为复杂,集成度不够高,需要进一步处理数据才能够获取量化的实时性数据。

技术实现思路

[0005]针对现有衡量Linux系统实时性工具,如Cyclictest工具和Ftrace工具存在的用于衡量实时性的模拟过程相对较少,所反映的实时性数据较为简单,且存在额外的时间开销,以及获取数据不够直观,操作复杂,集成度不够,还需对数据做进一步量化处理的缺陷和问题,本专利技术提供一种用于衡量Linux系统实时性的测试方法。
[0006]本专利技术解决其技术问题所采用的方案是:一种用于衡量Linux系统实时性的测试方法,包括以下步骤:步骤一,构建专用的内核模块和测试用工具:将源代码导入Linux系统中进行编译,编译产生一个Linux内核模块和一个可执行文件,其中该可执行文件为测试工具;步骤二,将内核模块插入Linux内核中:将内核模块插入Linux内核中,并根据自定义的内核模块的工作内容,实现内核信息的收集并将收集信息保存在内核模块中;步骤三,确定测试指标项并进行分类:将测试指标项按照粒度进行区分,使得细粒度的测试点通过内核模块进行测试获取数据,粗粒度的测试点在Linux系统中的用户态进
行测试;步骤四,执行用户态测试:用户运行上述步骤一中编译出来的可执行文件,进行用户态测试点模拟,模拟粗粒度的模拟程序,在模拟过程前后打上时间戳,进行时间段的统计,以获取测试点的数据;步骤五,在内核模块进行测试:通过内核中已设定好的trace event,在内核运行中触发上述event,实现对系统参数的统计,并将不同的event统计的时间戳相减获取所测试需求点的延时,在内核中获取到需求点延时数据后反应到用户态;步骤六,内核模块结合粗粒度的模拟过程,并结合从上述步骤中收集到的内核数据,进行计算整理,从而输出用户关心的Linux系统实时性数据。
[0007]作为本专利技术的一种优选技术方案,所述步骤二中通过使用insmod命令将内核模块插入Linux内核中。
[0008]作为本专利技术的一种优选技术方案,所述步骤三中测试指标项包括中断响应延时、信号量操作延时、消息队列操作延时、上下文切换延时、互斥量操作延时、定时器操作延时、事件操作延时、任务操作延时和调度操作延时。
[0009]作为本专利技术的一种优选技术方案,所述步骤三中对测试指标项进行区分的标准是能否实现需求点的封装。
[0010]作为本专利技术的一种优选技术方案,所述步骤五中内核模块采用tracer技术,并通过用户的输入与内核模块进行交互,设置调用相应的函数,获取用户所需的内核模块测试数据,通过proc文件系统反馈给用户。
[0011]作为本专利技术的一种优选技术方案,所述proc文件系统是Linux系统中内核态和用户态的一个通信窗口,用户通过proc文件系统来进行实时性测试数据的观测。
[0012]作为本专利技术的一种优选技术方案,所述步骤六中对数据进行计算整理的过程是对大量循环测试获取的时间数据进行处理,每一次循环获取时间数据,都更新该数据项的最小值、最大值和累加和,累加和用于最后输出平均值,最终输出用户关心的Linux系统实时性量化数据。
[0013]与现有技术相比,本专利技术的有益效果是:本专利技术提出的衡量Linux系统实时性的测试方法,构建了专用的内核模块,能够在内核态进行实时性模拟测试,从而降低了时间的损耗,提升测试结果的准确性;并且通过将Linux内核态和用户态进行结合,还丰富了现有实时测试工具中的测试指标项,测试环境也更加具体,并且通过在模拟环境前后获取时间,以获取用户所关心的测试过程的时间,从而使得Linux系统的实时性测试更全面更准确。
附图说明
[0014]图1为本专利技术的整体流程示意图;图2为本专利技术的编译流程示意图;图3为本专利技术的测试工作流程示意图。
具体实施方式
[0015]下面结合附图和实施例对本专利技术进一步说明。
[0016]请参阅图1

3,本专利技术提供了一种用于衡量Linux系统实时性的测试方法,结合
Linux系统内核态和用户态测试数据的测量方法,提供更加丰富的测试点,模拟更具体的环境,在模拟环境前后获取时间,以获取用户所关心的测试过程的时间,较好的反映出Linux系统的实时性。
[0017]实施例一:本专利技术提供的用于衡量Linux系统实时性的测试方法,包括以下步骤,步骤一,构建专用的内核模块和测试用工具:将源代码导入带有Linux5.10rt内核的Linux系统中进行编译,Linux系统包括用户态和内核态,编译之后产生一个Linux内核模块和一个可执行文件,内核模块属于内核态,可执行文件属于用户态,其中内核模块用于对内核中可探测点进行检测,以获取相关的调用信息,并通过proc文件系统和用户态交互,而该可执行文件为测试工具,即用户态的可执行文件不仅仅和内核模块通信获取数据,也进行一些粒度较大的模拟测试,以丰富测试数据;步骤二,将内核模块插入Linux内核中: Linux内核模块是ko格式的文件,它分为静态编译进内核的模块和用insmod命令动态加载的模块,ko文件本质上还是ELF文件,和普通的ELF文件相比多了一个段的结构,用于记录ko模块的一些信息,这些信息用于内核加载本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于衡量Linux系统实时性的测试方法,其特征在于:包括以下步骤:步骤一,构建专用的内核模块和测试用工具:将源代码导入Linux系统中进行编译,编译产生一个Linux内核模块和一个可执行文件,其中该可执行文件为测试工具;步骤二,将内核模块插入Linux内核中:将内核模块插入Linux内核中,并根据自定义的内核模块的工作内容,实现内核信息的收集并将收集信息保存在内核模块中;步骤三,确定测试指标项并进行分类:将测试指标项按照粒度进行区分,使得细粒度的测试点通过内核模块进行测试获取数据,粗粒度的测试点在Linux系统中的用户态进行测试;步骤四,执行用户态测试:用户运行上述步骤一中编译出来的可执行文件,进行用户态测试点模拟,模拟粗粒度的模拟程序,在模拟过程前后打上时间戳,进行时间段的统计,以获取测试点的数据;步骤五,在内核模块进行测试:通过内核中已设定好的trace event,在内核运行中触发上述event,实现对系统参数的统计,并将不同的event统计的时间戳相减获取所测试需求点的延时,在内核中获取到需求点延时数据后反应到用户态;步骤六,内核模块结合粗粒度的模拟过程,并结合从上述步骤中收集到的内核数据,进行计算整理,从而输出用户关心的Linux系统实时性数据。2.根据权利要求1所述的用于衡量Linux系统实时性的测试方法,其特征在于:所述步骤二中通...

【专利技术属性】
技术研发人员:光锐王元卓殷子迅何永玉金瑞
申请(专利权)人:中科大数据研究院
类型:发明
国别省市:

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

1