一种网络数据包处理任务的定时执行方法及系统技术方案

技术编号:39504789 阅读:9 留言:0更新日期:2023-11-24 11:36
本发明专利技术实施例提供了一种网络数据包处理任务的定时执行方法,该方法包括:响应于预设的高频事件,获取高频事件的时间戳,其中,高频事件与网络数据包处理任务定时执行的时间粒度相匹配;基于高频事件的时间戳

【技术实现步骤摘要】
一种网络数据包处理任务的定时执行方法及系统


[0001]本专利技术涉及计算机网络测量及控制领域,具体来说,涉及驱动一类周期性任务定时执行的方法,更具体地说,涉及一种网络数据包处理任务的定时执行方法及系统


技术介绍

[0002]在计算机网络测量及控制领域,周期性定时执行任务是一种常见的任务,这类任务的时间粒度从数日到数微妙大小不一

[0003]在通用软硬件的环境中,周期性任务的定时执行一般通过定时器来实现


x86
架构下的
Linux
操作系统为例,定时器分为两种:
[0004]一种是系统定时器,系统定时器是定时器硬件和系统软件的结合,在
x86
架构中,最常见的定时器硬件是
Intel8254 PIT(
可编程定时器芯片
)
,它能以固定周期触发
Linux
操作系统的时钟中断服务程序,来完成更新
Linux
操作系统时间以及任务管理

调度等工作

目前,系统定时器的精度受限于硬件时钟的稳定性和分辨率

在一些高精度应用场景下,系统定时器可能无法满足需求

[0005]另一种是动态定时器,所谓动态定时器是用来调度事件在将来某个时刻发生的机制,在
Linux
操作系统的内核中可以动态创建或销毁动态定时器,其依赖于
Linux
操作系统中时钟中断服务程序,其工作原理为:在时钟中断服务程序的下半部检查是否有超时的动态定时器并进行处理

在动态定时器这种机制下,动态定时执行任务的时间精度依赖于系统节拍率
(
即硬件触发时钟中断服务程序的频率
)。
其中,在
Linux2.6
版本之前的
Linux
操作系统的内核的节拍率为
100Hz
,故时钟中断发生的定时周期
10ms
;在
Linux2.6
版本之后,
Linux
操作系统的内核的节拍率上升为
1000Hz
,故时钟中断发生的定时周期为
1ms。
通过上述理论可知,动态定时器执行周期性任务的时间精度不会高于
1ms。
而实际上,在通用
Linux
操作系统中,进程的调度并不会严格遵照用户指定的优先级进行,再加上进程切换的开销等,这些因素都会导致动态定时器执行周期性任务的时间精度在
10
毫秒级别

由于动态定时器用于周期性任务定时执行的时间精度不高,研究人员不断探索提高周期性任务定时执行时间精度的方法

其中,一种追求精度的极端方法是距离定时执行任务的定时执行时间一定距离时开始
spin_wait(
自旋忙等
)
,以强行占据整个
CPU
核以禁止其他应用调度
CPU
核,然而这种方法会严重影响
Linux
操作系统中其他应用的正常运行,通用性不强

[0006]为了提升定时器的精度,工业界和学术界做出了许多努力,现有技术中主要通过软件和硬件两方面的改进来提升定时器的精度

[0007]软件改进以
KURT

Linux、RT

Linux、HRT
为代表,其中,
KURT

Linux
是直接修改
Linux
操作系统的内核来改变时钟中断的固定频率模式,并将时钟芯片设置为单次触发模式,即每次时钟芯片设置一个超时时间,该超时时间发生时,在时钟中断处理程序中再次根据需要给时钟芯片设置一个超时时间,这种方法需要频繁地对时钟芯片进行编程设置;
RT

Linux
是在原有
Linux
操作系统的内核基础上设置一个专用微内核,把整个
Linux
操作系统作为这个专用微内核上运行的一个进程;
HRT
是绕过对系统定时器的依赖,利用附加的硬件
资源得到比
10ms
更高的周期性任务定时执行的时间精度,此方法涉及的
Linux
操作系统中所有与定时器相关的数据结构

函数等都要做相应修改

通过上述描述可知,通过对定时器进行软件方面的改进提高精度的手段涉及侵入性较强的
Linux
操作系统内核代码改造,对于不可修改
Linux
操作系统内核的情形不适用

[0008]硬件改进方式通过引入以
FPGA、
单片机等设备作为载体的外置设备来中断信号产生源,提高中断的频率来实现微秒级别的高精度周期性任务的定时执行

由于需要引入外置硬件设备,对于不支持外置设备引入的操作系统不适用,使得通过硬件方面的改进来提升精度的方案不具有通用性,难以在已有
Linux
操作系统中使用

[0009]综上所述,对定时器软件方面的改进涉及侵入性较强的
Linux
操作系统内核代码改造,对于不可修改
Linux
操作系统内核的情形不适用,因此不具备通用性;对定时器硬件方面的改进措施由于需要引入外部硬件设备也不具有通用性,难以在已有
Linux
操作系统中使用

此外,在
Linux
操作系统中设置动态定时器的方式来定时执行周期性任务的时间精度难以保障

因此,亟需一种更好的能够保障周期性任务定时执行的时间精度的方案


技术实现思路

[0010]因此,本专利技术的目的在于克服上述现有技术的缺陷,提供一种网络数据包处理任务的定时执行方法及系统

[0011]本专利技术的目的是通过以下技术方案实现的:
[0012]根据本专利技术的第一方面,提供一种网络数据包处理任务的定时执行方法,所述方法包括:响应于预设的高频事件,获取所述高频事件的时间戳,其中,所述高频事件与所述网络数据包处理任务定时执行的时间粒度相匹配;
[0013]基于所述高频事件的时间戳

网络数据包处理任务定时执行的预设起始时间以及执行周期对应的预设单位时间间隔,计算所述高频事件的时间戳所处的执行周期,并在所述高频事件的时间戳所处的执行周期为当前执行周期的下一执行周期时,执行网络数据包处理任务

[0014]在本专利技术的一些实施例中,所述预设的高频事件是网络数据包的到达或离开

[0015]在本专利技术的一些实施例中,通过如下方式计算所述高频事件的时间戳所处的执行周期:
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种网络数据包处理任务的定时执行方法,其特征在于,所述方法包括:响应于预设的高频事件,获取所述高频事件的时间戳,其中,所述高频事件与所述网络数据包处理任务定时执行的时间粒度相匹配;基于所述高频事件的时间戳

网络数据包处理任务定时执行的预设起始时间以及执行周期对应的预设单位时间间隔,计算所述高频事件的时间戳所处的执行周期,并在所述高频事件的时间戳所处的执行周期为当前执行周期的下一执行周期时,执行网络数据包处理任务
。2.
根据权利要求1所述的方法,其特征在于,所述预设的高频事件是网络数据包的到达或离开
。3.
根据权利要求1所述的方法,其特征在于,所述方法包括通过如下方式计算所述高频事件的时间戳所处的执行周期:
P
i

(t
mow

t
start
)/T
p
,向下取整其中,
P
i
为所述高频事件的时间戳所处的执行周期序号,
T
p
为网络数据包处理任务的执行周期对应的预设单位时间间隔,
t
now
为所述高频事件的时间戳,
t
start
为网络数据包处理任务定时执行的预设起始时间
。4.
根据权利要求3所述的方法,其特征在于,所述方法包括:在所述高频事件的时间戳所处的执行周期满足
P
i

P
last
+1
时,执行网络数据包处理任务,其中,
P
last
为当前执行周期的序号
。5.
根据权利要求1所述的方法,其特征在于,网络数据包处理任务的定时执行模式被配置为期末执行模式或期中执行模式,其中:在期末执行模式下,在所述高频事件的时间戳所处的执行周期为当前执行周期的下一执行周期时,执行当前周期的网络数据包处理任务;在期中执行模式下,在所述高频事件的时间戳所处的执行周期为当前执行周期的下一执行周期时,执行下一周期的网络数据包处理任务
。6.
一种网络数据包处理任务的定时执行装置,其特征在于,所述装置包括:高频触发模块,用于响应预设的高频事件以获取所述高频事件的时间戳,其中,所述高频事件与所述网络数据包处理任务定时执...

【专利技术属性】
技术研发人员:米浩东刁祖龙张广兴乔铭宇
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

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

1