Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR SWITCHING POLLING AND INTERRUPTION
Document Type and Number:
WIPO Patent Application WO/2015/089824
Kind Code:
A1
Abstract:
The embodiments of the present invention relate to the technical field of computer networks. Disclosed are a method and apparatus for switching polling and interruption. The method comprises: initializing a program to enter a polling state; monitoring network traffic in real time and acquiring a traffic value of the network traffic; adjusting a pre-stored invalid polling times threshold according to the traffic value to acquire an adjusted invalid polling times threshold; counting an invalid polling times value; comparing whether the invalid polling times value is greater than the adjusted invalid polling times threshold; and if the invalid polling times value is greater than the adjusted invalid polling times threshold, then quitting the polling state and entering an interruption state. By implementing the embodiments of the present invention, switching of polling and interruption can be realized, the efficient utilization rate of a CPU can be ensured, delays brought about by frequent interruption are reduced, and the performance of processing a network service is improved.

Inventors:
YANG YONGQIANG (CN)
WEN LIUFEI (CN)
Application Number:
PCT/CN2013/090094
Publication Date:
June 25, 2015
Filing Date:
December 20, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
G06F9/48
Foreign References:
CN102779075A2012-11-14
CN1859183A2006-11-08
CN101335595A2008-12-31
US20110023040A12011-01-27
Attorney, Agent or Firm:
GUANGZHOU SCIHEAD PATENT AGENT CO., LTD (CN)
广州三环专利代理有限公司 (CN)
Download PDF:
Claims:
权 利 要 求

1、 一种轮询和中断的切换方法, 其特征在于, 包括:

初始化程序, 以进入轮询状态;

实时监测网络流量并获取所述网络流量的流量值;

根据所述流量值调整预先存储的无效轮询次数阈值,以获得调整后的无效 轮询次数阈值;

统计无效轮询次数值;

比较所述无效轮询次数值是否大于所述调整后的无效轮询次数阈值; 若所述无效轮询次数值大于所述调整后的无效轮询次数阈值,则退出所述 轮询状态并进入中断状态。

2、 如权利要求 1所述的方法, 其特征在于, 所述根据所述流量值调整预先 存储的无效轮询次数阈值, 以获得调整后的无效轮询次数阈值之前, 所述方法 还包括:

存储用户输入的无效轮询次数阈值。

3、 如权利要求 1或 2所述的方法, 其特征在于, 所述方法还包括: 若所述无效轮询次数值小于等于所述调整后的无效轮询次数阈值,则保持 所述轮询状态。

4、 如权利要求 3所述的方法, 其特征在于, 所述根据所述流量值调整预先 存储的无效轮询次数阈值包括:

若所述流量值大于预设流量阈值, 则增加所述无效轮询次数阈值; 或 若所述流量值小于等于预设流量阈值, 则减小所述无效轮询次数阈值。

5、如权利要求 4所述的方法,其特征在于,所述统计无效轮询次数值包括: 若轮询时未检测到数据包, 则将所述无效轮询次数值增加; 若轮询时检测 到数据包, 则将所述无效轮询次数值清零或减少。

6、 一种轮询和中断的切换装置, 其特征在于, 包括: 初始化单元, 用于初始化程序, 以进入轮询状态;

监测单元, 用于实时监测网络流量并获取所述网络流量的流量值; 调整单元, 用于根据所述流量值调整预先存储的无效轮询次数阈值, 以获 得调整后的无效轮询次数阈值;

统计单元, 用于统计无效轮询次数值;

比较单元,用于比较所述无效轮询次数值是否大于所述调整后的无效轮询 次数阈值;

切换单元,用于当所述无效轮询次数值大于所述调整后的无效轮询次数阈 值时, 退出所述轮询状态并进入中断状态。

7、 如权利要求 6所述的装置, 其特征在于, 所述装置还包括:

存储单元, 用于存储用户输入的无效轮询次数阈值。

8、 如权利要求 6或 7所述的装置, 其特征在于, 所述切换单元还用于当所 述无效轮询次数值小于等于所述调整后的无效轮询次数阈值时,保持所述轮询 状态。

9、 如权利要求 8所述的装置, 其特征在于, 所述调整单元具体用于: 当所述流量值大于预设流量阈值时, 增加所述无效轮询次数阈值; 或 当所述流量值小于等于预设流量阈值时, 减小所述无效轮询次数阈值。

10、 如权利要求 9所述的装置, 其特征在于, 所述统计单元具体用于当轮 询时未检测到数据包时,将所述无效轮询次数值增加; 当轮询时检测到数据包 时, 将所述无效轮询次数值清零或减少。

11、 一种轮询和中断的切换装置, 包括存储器和处理器, 其特征在于, 所 述存储器中存储一组程序代码,且所述处理器用于调用所述存储器中存储的程 序代码, 用于执行以下操作:

初始化程序, 以进入轮询状态;

实时监测网络流量并获取所述网络流量的流量值; 根据所述流量值调整预先存储的无效轮询次数阈值,以获得调整后的无效 轮询次数阈值;

统计无效轮询次数值;

比较所述无效轮询次数值是否大于所述调整后的无效轮询次数阈值; 若所述无效轮询次数值大于所述调整后的无效轮询次数阈值,则退出所述 轮询状态并进入中断状态。

12、如权利要求 11所述的装置,其特征在于,所述处理器还执行以下操作: 存储用户输入的无效轮询次数阈值。

13、 如权利要求 11或 12所述的装置, 其特征在于, 所述处理器还执行以下 操作:

若所述无效轮询次数值小于等于所述调整后的无效轮询次数阈值,则保持 所述轮询状态。

14、 如权利要求 13所述的装置, 其特征在于, 所述处理器根据所述流量值 调整预先存储的无效轮询次数阈值的方式具体为:

若所述流量值大于预设流量阈值, 则增加所述无效轮询次数阈值; 或 若所述流量值小于等于预设流量阈值, 则减小所述无效轮询次数阈值。

15、 如权利要求 14所述的装置, 其特征在于, 所述处理器统计无效轮询次 数值的方式具体为:

若轮询时未检测到数据包, 则将所述无效轮询次数值增加; 若轮询时检测 到数据包, 则将所述无效轮询次数值清零或减少。

Description:
一种轮询和中断的切换方法及装置 技术领域

本发明涉及计算机网络技术领域,具体涉及一 种轮询和中断的切换方法及 装置。 背景技术

随着通用 CPU ( Central Processing Unit, 中央处理器)处理能力的快速提 高,通用平台处理网络业务的能力也在逐渐加 强。用软件在通用平台上实现网 络业务相比于目前的用定制硬件实现网路业务 具有以下优势: 业务定制灵活、 平台标准化性价比高、 业务上线速度快、 新增业务不需要占用场地等。 但是, 目前通用平台的操作系统在处理网络业务时存 在大量的系统调用和多次拷贝, 且上下文切换比较频繁, 这样的处理性能难以满足网络业务的需求。

目前,加速通用平台处理网络业务的方法是根 据因网络接口被阻塞而导致 的业务连接连续被中断的次数和业务连接被挂 起的次数来调整检测网络接口 数据的轮询周期,通过控制轮询周期来调节网 路业务的处理性能以及 CPU的利 用率,但是这种方法需要等待轮询周期的到来 才能够处理网络业务,导致了较 高的延迟。 发明内容

本发明实施例公开了一种轮询和中断的切换方 法及装置,用于解决网络业 务处理延迟以及 CPU利用率低的问题。

本发明实施例第一方面公开了一种轮询和中断 的切换方法, 所述方法包 括:

初始化程序, 以进入轮询状态;

实时监测网络流量并获取所述网络流量的流量 值;

根据所述流量值调整预先存储的无效轮询次数 阈值,以获得调整后的无效 轮询次数阈值; 统计无效轮询次数值;

比较所述无效轮询次数值是否大于所述调整后 的无效轮询次数阈值; 若所述无效轮询次数值大于所述调整后的无效 轮询次数阈值,则退出所述 轮询状态并进入中断状态。

在本发明实施例第一方面的第一种可能的实现 方式中,所述根据所述流量 值调整预先存储的无效轮询次数阈值, 以获得调整后的无效轮询次数阈值之 前, 所述方法还包括:

存储用户输入的无效轮询次数阈值。

结合本发明实施例第一方面或本发明实施例第 一方面的第一种可能的实 现方式,在本发明实施例第一方面的第二种可 能的实现方式中, 所述方法还包 括:

若所述无效轮询次数值小于等于所述调整后的 无效轮询次数阈值,则保持 所述轮询状态。

结合本发明实施例第一方面的第二种可能的实 现方式,在本发明实施例第 一方面的第三种可能的实现方式中,所述根据 所述流量值调整预先存储的无效 轮询次数阈值包括:

若所述流量值大于预设流量阈值, 则增加所述无效轮询次数阈值; 或 若所述流量值小于等于预设流量阈值, 则减小所述无效轮询次数阈值。 结合本发明实施例第一方面的第三种可能的实 现方式,在本发明实施例第 一方面的第四种可能的实现方式中, 所述统计无效轮询次数值包括:

若轮询时未检测到数据包, 则将所述无效轮询次数值增加; 若轮询时检测 到数据包, 则将所述无效轮询次数值清零或减少。

本发明实施例第二方面公开了一种轮询和中断 的切换装置, 所述装置包 括:

初始化单元, 用于初始化程序, 以进入轮询状态;

监测单元, 用于实时监测网络流量并获取所述网络流量的 流量值; 调整单元, 用于根据所述流量值调整预先存储的无效轮询 次数阈值, 以获 得调整后的无效轮询次数阈值;

统计单元, 用于统计无效轮询次数值;

比较单元,用于比较所述无效轮询次数值是否 大于所述调整后的无效轮询 次数阈值;

切换单元,用于当所述无效轮询次数值大于所 述调整后的无效轮询次数阈 值时, 退出所述轮询状态并进入中断状态。

在本发明实施例第二方面的第一种可能的实现 方式中, 所述装置还包括: 存储单元, 用于存储用户输入的无效轮询次数阈值。

结合本发明实施例第二方面或本发明实施例第 二方面的第一种可能的实 现方式,在本发明实施例第二方面的第二种可 能的实现方式中, 所述切换单元 还用于当所述无效轮询次数值小于等于所述调 整后的无效轮询次数阈值时,保 持所述轮询状态。

结合本发明实施例第二方面的第二种可能的实 现方式,在本发明实施例第 二方面的第三种可能的实现方式中, 所述调整单元具体用于:

当所述流量值大于预设流量阈值时, 增加所述无效轮询次数阈值; 或 当所述流量值小于等于预设流量阈值时, 减小所述无效轮询次数阈值。 结合本发明实施例第二方面的第三种可能的实 现方式,在本发明实施例第 二方面的第四种可能的实现方式中,所述统计 单元具体用于当轮询时未检测到 数据包时, 将所述无效轮询次数值增加; 当轮询时检测到数据包时, 将所述无 效轮询次数值清零或减少。

本发明实施例第三方面公开了一种轮询和中断 的切换装置,包括存储器和 处理器, 所述存储器中存储一组程序代码,且所述处理 器用于调用所述存储器 中存储的程序代码, 用于执行以下操作:

初始化程序, 以进入轮询状态;

实时监测网络流量并获取所述网络流量的流量 值;

根据所述流量值调整预先存储的无效轮询次数 阈值,以获得调整后的无效 轮询次数阈值; 统计无效轮询次数值;

比较所述无效轮询次数值是否大于所述调整后 的无效轮询次数阈值; 若所述无效轮询次数值大于所述调整后的无效 轮询次数阈值,则退出所述 轮询状态并进入中断状态。

在本发明实施例第三方面的第一种可能的实现 方式中,所述处理器还执行 以下操作:

存储用户输入的无效轮询次数阈值。

结合本发明实施例第三方面或本发明实施例第 三方面的第一种可能的实 现方式,在本发明实施例第三方面的第二种可 能的实现方式中, 所述处理器还 执行以下操作:

若所述无效轮询次数值小于等于所述调整后的 无效轮询次数阈值,则保持 所述轮询状态。

结合本发明实施例第三方面的第二种可能的实 现方式,在本发明实施例第 三方面的第三种可能的实现方式中,所述处理 器根据所述流量值调整预先存储 的无效轮询次数阈值的方式具体为:

若所述流量值大于预设流量阈值, 则增加所述无效轮询次数阈值; 或 若所述流量值小于等于预设流量阈值, 则减小所述无效轮询次数阈值。 结合本发明实施例第三方面的第三种可能的实 现方式,在本发明实施例第 三方面的第四种可能的实现方式中,所述处理 器统计无效轮询次数值的方式具 体为:

若轮询时未检测到数据包, 则将所述无效轮询次数值增加; 若轮询时检测 到数据包, 则将所述无效轮询次数值清零或减少。

实施本发明实施例具有如下有益效果: 初始化程序进入轮询状态之后, 实 时监测网络流量并获取网络流量的流量值,根 据获取到的流量值调整预先存储 的无效轮询次数阈值, 统计出无效轮询次数值后, 比较无效轮询次数值是否大 于调整后的无效轮询次数阈值,若无效轮询次 数值大于调整后的无效轮询次数 阈值, 则退出轮询状态并进入中断状态。 实施本发明实施例可以实现轮询和中 断的切换, 能够保证 CPU的高效利用率且减少了频繁中断带来的延迟 , 提高了 处理网络业务的性能。 附图说明

为了更清楚地说明本发明实施例中的技术方案 ,下面将对实施例中所需要 使用的附图作筒单地介绍,显而易见地, 下面描述中的附图仅仅是本发明的一 些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还 可以根据这些附图获得其他的附图。

图 1是本发明实施例公开的一种轮询和中断的切 方法的流程示意图; 图 2是本发明实施例公开的另一种轮询和中断的 换方法的流程示意图; 图 3是本发明实施例公开的一种轮询和中断的切 装置的结构示意图; 图 4是本发明实施例公开的另一种轮询和中断的 换装置的结构示意图; 图 5是本发明实施例公开的又一种轮询和中断的 换装置的结构示意图。 具体实施方式

下面将结合本发明实施例中的附图,对本发明 实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有做出创造 性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。

本发明提供了一种轮询和中断的切换方法及装 置,实施本发明实施例可以 实现轮询和中断的切换,能够保证 CPU的高效利用率且减少了频繁中断带来的 延迟, 提高了处理网络业务的性能。 以下分别进行详细说明。

请参阅图 1 ,图 1是本发明实施例公开的一种轮询和中断的切 方法的流程 示意图。 其中, 图 1所示的方法可以应用在 Windows系列操作系统、 Unix类操 作系统、 Linux类操作系统以及 Mac操作系统等, 本发明实施例不做限定。 如 图 1所示, 该轮询和中断的切换方法可以包括以下步骤:

S101、 初始化程序, 以进入轮询状态。

本发明实施例中,初始化程序可以包括初始化 各种参数, 关闭中断以进入 轮询状态。 轮询是一种 CPU决策如何提供周边设备服务的方式, 它是由 CPU定 时发出询问,依次询问每一个周边设备是否需 要某服务, 即让 CPU以一定的周 期按照次序查询每个外设, 看它是否有数据 I/O ( Input/Output )的要求, 若有, 则进行相应的 I/O, 若没有, 则轮询下一个外设。 中断是 CPU在执行一个程序 时, 对系统发生的某个事件(程序自身或外界的原 因)做出的一种反应, 即 CPU暂停正在执行的程序, 保留现场后自动转去处理相应的事件, 处理完该事 件后, 到适当的时间返回断点, 继续完成被打断的程序, 如果有必要, 被中断 的程序可以在后来的某个时间恢复, 并继续执行。

5102、 实时监测网络流量并获取网络流量的流量值。

本发明实施例中, 获取到网络流量的流量值可以用来表示网络流 量的大 小, 流量值可以通过预先设置的计算模型获得。 举例来说, 本发明实施例中, 队列深度可以用来表示网络流量的流量值, 即队列深度小可以说明网络流量 小, 队列深度大可以说明网络流量比较大, 为了增加精度, 可以增加统计的次 数, 即可以使用下面公式中的流量饱和度来表示网 络流量的大小。

>^队列深度

流量饱和度 = ^-— ^

队列大小 χ Ν

上述公式中的队列深度是队列上的消息数, Ν为统计的次数, 队列大小为 一个队列能容纳的最大的消息数。

5103、根据流量值调整预先存储的无效轮询次 阈值, 以获得调整后的无 效轮询次数阈值。

本发明实施例中, 系统中存储有用户设置的无效轮询次数阈值, 用户设置 的无效轮询次数阈值越大则可以说明用户对性 能和延迟的要求越高。

作为一种可选的实施方式,根据流量值调整预 先存储的无效轮询次数阈值 的方式可以具体为:

若流量值大于预设流量阈值, 则增加无效轮询次数阈值; 或

若流量值小于等于预设流量阈值, 则减小无效轮询次数阈值。

举例来说, 若用流量饱和度来表示网络流量的大小, 当流量饱和度大于预 设流量饱和度时, 表示网络流量大, 则适当增加无效轮询次数阈值; 当流量饱 和度小于等于预设流量饱和度时,表示网络流 量小, 则适当减小无效轮询次数 阈值, 本发明实施例可以使用下面的公式来调整无效 轮询次数阈值。

无效轮询次数阐值 =无效轮询次数阐值 +幅度 x(流量饱和度-预设流量饱和度〕 上述公式中, 等号左边的无效轮询次数阈值是调整后的无效 轮询次数阈 值, 等号右边的无效轮询次数阈值是预先存储的无 效轮询次数阈值, 幅度可以 是一个大于零的数, 用来表示调整无效轮询次数阈值的速度, 即幅度值越大表 示调整的速度越快, 幅度值越小表示调整的速度越慢。

举例来说, 若用队列深度来表示网络流量的大小, 当队列深度大于 0时, 则可以使用下面的公式来调整无效轮询次数阈 值:

无效轮询次数阈值=无效轮询次数阈值 +队列深度 当队列深度等于 0时, 则可以使用下面的公式来调整无效轮询次数阈 值: 无效轮询次数阈值=无效轮询次数阈值- 1

本发明实施例中,调整后的无效轮询次数阈值 的最小值可以为预先存储的 无效轮询次数阈值或 1 , 本发明实施例不做限定。

S104、 统计无效轮询次数值。

作为一种可选的实施方式, 统计无效轮询次数值的方式可以具体为: 若轮询时未检测到数据包, 则将无效轮询次数值增加; 若轮询时检测到数 据包, 则将无效轮询次数值清零或减少。

本发明实施例中, 轮询可以轮询一个网络设备也可以轮询多个网 络设备, 当轮询一个网络设备时, 若轮询该网络设备时未检测到数据包, 则将无效轮询 次数值增加(如加 1 ) , 若连续轮询该网络设备未检测到数据包的次数 大于调整 后的无效轮询次数阈值, 则退出当前的轮询状态并切换到中断状态, 若轮询该 网络设备时检测到数据包, 则将无效轮询次数值清零或减少。

本发明实施例中,轮询也可以是轮询一组网络 设备, 即可以轮询多个注册 在设备轮询队列中的网络设备,轮询完注册在 设备轮询队列中的网络设备称为 一次轮询, 若在一次轮询中未检测到数据包, 则将无效轮询次数值增加(如加 1 ), 若连续未轮询到数据包的次数大于调整后的无 效轮询次数阈值, 则退出当 前的轮询状态并切换到中断状态, 若在一次轮询中检测到数据包, 则将无效轮 询次数值清零或减少。

5105、 比较无效轮询次数值是否大于调整后的无效轮 询次数阈值。

5106、若无效轮询次数值大于调整后的无效轮 次数阈值, 则退出轮询状 态并进入中断状态。

本发明实施例中, 若无效轮询次数值大于调整后的无效轮询次数 阈值, 则 将轮询状态切换为中断状态;若无效轮询次数 值小于等于调整后的无效轮询次 数阈值,则继续保持当前的轮询状态直到无效 轮询次数值大于调整后的无效轮 询次数阈值。

本发明实施例中, 中断状态即开启中断, 程序阻塞, 本发明实施例可以采 用信号量作为标识信息来表示程序阻塞, 即当程序阻塞时, 信号量置为 0。 当 程序不阻塞时, 即由中断状态切换为轮询状态时, 信号量置为 1 (或非零的正 整数)。

作为一种可选的实施方式, 中断状态切换为轮询状态的方式可以为: 若接 收到来自网络设备的数据包, 则发出中断信号; 内核的 UIO ( Userspace I/O, 用户空间 I/O技术)模块将中断信号转发到 UIO文件描述符上; 唤醒用于监控 UIO文件描述符的 epoll/select程序; epoll/sdect程序处理该中断信号对应的中断 处理函数; 中断处理函数通过将信号量由 0置为 1 (或非零的正整数)来唤醒收 发包程序, 即进入轮询状态。

作为另一种可选的实施方式, 中断状态切换为轮询状态的方式可以为: 若 检测到有数据包要发送,则发送线程将要发送 的数据包发送至收发包线程的接 收队列中, 并将信号量由 0置为 1 (或非零的正整数), 即进入轮询状态。

实施本发明实施例具有如下有益效果: 初始化程序进入轮询状态之后, 实 时监测网络流量并获取网络流量的流量值,根 据获取到的流量值调整预先存储 的无效轮询次数阈值, 统计出无效轮询次数值后, 比较无效轮询次数值是否大 于调整后的无效轮询次数阈值,若无效轮询次 数值大于调整后的无效轮询次数 阈值, 则退出轮询状态并进入中断状态。 实施本发明实施例可以实现轮询和中 断的切换, 能够保证 CPU的高效利用率且减少了频繁中断带来的延迟 , 提高了 处理网络业务的性能。 请参阅图 2,图 2是本发明实施例公开的另一种轮询和中断的 换方法的流 程示意图。 其中, 图 2所示的方法可以应用在 Windows系列操作系统、 Unix类 操作系统、 Linux类操作系统以及 Mac操作系统等, 本发明实施例不做限定。 如图 2所示, 该轮询和中断的切换方法可以包括以下步骤:

5201、 初始化程序, 以进入轮询状态。

5202、 存储用户输入的无效轮询次数阈值。

本发明实施例中, 系统中存储有用户设置的无效轮询次数阈值, 用户设置 的无效轮询次数阈值越大则可以说明用户对性 能和延迟的要求越高。

5203、 实时监测网络流量并获取网络流量的流量值。

本发明实施例中, 获取到网络流量的流量值可以用来表示网络流 量的大 小, 流量值可以通过预先设置的计算模型获得。 举例来说, 本发明实施例中, 队列深度可以用来表示网络流量的流量值, 即队列深度小可以说明网络流量 小, 队列深度大可以说明网络流量比较大, 为了增加精度, 可以增加统计的次 数, 即可以使用下面公式中的流量饱和度来表示网 络流量的大小。

y A列深度

流量饱和度

队列大小 χ Ν

上述公式中的队列深度是队列上的消息数, Ν为统计的次数, 队列大小为 一个队列能容纳的最大的消息数。

5204、根据流量值调整预先存储的无效轮询次 阈值, 以获得调整后的无 效轮询次数阈值。

作为一种可选的实施方式,根据流量值调整预 先存储的无效轮询次数阈值 的方式可以具体为:

若流量值大于预设流量阈值, 则增加无效轮询次数阈值; 或

若流量值小于等于预设流量阈值, 则减小无效轮询次数阈值。

5205、 统计无效轮询次数值。

作为一种可选的实施方式, 统计无效轮询次数值的方式可以具体为: 若轮询时未检测到数据包, 则将无效轮询次数值增加; 若轮询时检测到数 据包, 则将无效轮询次数值清零或减少。

本发明实施例中, 轮询可以轮询一个网络设备也可以轮询多个网 络设备, 当轮询一个网络设备时, 若轮询该网络设备时未检测到数据包, 则将无效轮询 次数值增加(如加 1 ) , 若连续轮询该网络设备未检测到数据包的次数 大于调整 后的无效轮询次数阈值, 则退出当前的轮询状态并切换到中断状态, 若轮询该 网络设备时检测到数据包, 则将无效轮询次数值清零或减少。

本发明实施例中,轮询也可以是轮询一组网络 设备, 即可以轮询多个注册 在设备轮询队列中的网络设备,轮询完注册在 设备轮询队列中的网络设备称为 一次轮询, 若在一次轮询中未检测到数据包, 则将无效轮询次数值增加(如加

1 ), 若连续未轮询到数据包的次数大于调整后的无 效轮询次数阈值, 则退出当 前的轮询状态并切换到中断状态, 若在一次轮询中检测到数据包, 则将无效轮 询次数值清零或减少。

5206、 比较无效轮询次数值是否大于调整后的无效轮 询次数阈值。

5207、若无效轮询次数值大于调整后的无效轮 次数阈值, 则退出轮询状 态并进入中断状态。

本发明实施例中, 若无效轮询次数值大于调整后的无效轮询次数 阈值, 则 将轮询状态切换为中断状态;若无效轮询次数 值小于等于调整后的无效轮询次 数阈值,则继续保持当前的轮询状态直到无效 轮询次数值大于调整后的无效轮 询次数阈值。

实施本发明实施例具有如下有益效果: 初始化程序进入轮询状态之后,存 储用户输入的无效轮询次数阈值, 实时监测网络流量并获取网络流量的流量 值,根据获取到的流量值调整预先存储的无效 轮询次数阈值, 统计出无效轮询 次数值后, 比较无效轮询次数值是否大于调整后的无效轮 询次数阈值, 若无效 轮询次数值大于调整后的无效轮询次数阈值, 则退出轮询状态并进入中断状 态。 实施本发明实施例可以实现轮询和中断的切换 , 能够保证 CPU的高效利用 率且减少了频繁中断带来的延迟, 提高了处理网络业务的性能。 请参阅图 3 ,图 3是本发明实施例公开的一种轮询和中断的切 装置的结构 示意图。 如图 3所示, 该轮询和中断的切换装置 300可以包括: 初始化单元 301、 监测单元 302、 调整单元 303、 统计单元 304、 比较单元 305以及切换单元 306, 其中:

初始化单元 301用于初始化程序, 以进入轮询状态。

监测单元 302用于实时监测网络流量并获取网络流量的流 量值。

本发明实施例中, 获取到网络流量的流量值可以用来表示网络流 量的大 小, 流量值可以通过预先设置的计算模型获得。 举例来说, 本发明实施例中, 队列深度可以用来表示网络流量的流量值, 即队列深度小可以说明网络流量 小, 队列深度大可以说明网络流量比较大, 为了增加精度, 可以增加统计的次 数, 即可以使用下面公式中的流量饱和度来表示网 络流量的大小。

y A列深度

流量饱和度 =

队列大小 χ Ν

上述公式中的队列深度是队列上的消息数, Ν为统计的次数, 队列大小为 一个队列能容纳的最大的消息数。

调整单元 303用于根据流量值调整预先存储的无效轮询次 数阈值, 以获得 调整后的无效轮询次数阈值。

本发明实施例中, 系统中存储有用户设置的无效轮询次数阈值, 用户设置 的无效轮询次数阈值越大则可以说明用户对性 能和延迟的要求越高。

作为一种可选的实施方式, 调整单元 303根据流量值调整预先存储的无效 轮询次数阈值的方式可以具体为:

若流量值大于预设流量阈值, 则增加无效轮询次数阈值; 或

若流量值小于等于预设流量阈值, 则减小无效轮询次数阈值。

统计单元 304用于统计无效轮询次数值。

作为一种可选的实施方式, 统计单元 304统计无效轮询次数值的方式可以 具体为:

若轮询时未检测到数据包, 则将无效轮询次数值增加; 若轮询时检测到数 据包, 则将无效轮询次数值清零或减少。

本发明实施例中, 轮询可以轮询一个网络设备也可以轮询多个网 络设备, 当轮询一个网络设备时, 若轮询该网络设备时未检测到数据包, 则将无效轮询 次数值增加(如加 1 ) , 若连续轮询该网络设备未检测到数据包的次数 大于调整 后的无效轮询次数阈值, 则退出当前的轮询状态并切换到中断状态, 若轮询该 网络设备时检测到数据包, 则将无效轮询次数值清零或减少。

本发明实施例中,轮询也可以是轮询一组网络 设备, 即可以轮询多个注册 在设备轮询队列中的网络设备,轮询完注册在 设备轮询队列中的网络设备称为 一次轮询, 若在一次轮询中未检测到数据包, 则将无效轮询次数值增加(如加

1 ), 若连续未轮询到数据包的次数大于调整后的无 效轮询次数阈值, 则退出当 前的轮询状态并切换到中断状态, 若在一次轮询中检测到数据包, 则将无效轮 询次数值清零或减少。

比较单元 305用于比较无效轮询次数值是否大于调整后的 无效轮询次数阈 值。

切换单元 306用于当无效轮询次数值大于调整后的无效轮 询次数阈值时, 退出轮询状态并进入中断状态。

作为一种可选的实施方式, 切换单元 306还用于当无效轮询次数值小于等 于调整后的无效轮询次数阈值时, 保持轮询状态。

实施本发明实施例可以实现轮询和中断的切换 ,能够保证 CPU的高效利用 率且减少了频繁中断带来的延迟, 提高了处理网络业务的性能。 请参阅图 4,图 4是本发明实施例公开的另一种轮询和中断的 换装置的结 构示意图。如图 4所示,该轮询和中断的切换装置 400可以包括:初始化单元 401、 监测单元 403、 调整单元 404、 统计单元 405、 比较单元 406以及切换单元 407, 其中:

初始化单元 401用于初始化程序, 以进入轮询状态。

监测单元 403用于实时监测网络流量并获取网络流量的流 量值。 本发明实施例中, 获取到网络流量的流量值可以用来表示网络流 量的大 小, 流量值可以通过预先设置的计算模型获得。 举例来说, 本发明实施例中, 队列深度可以用来表示网络流量的流量值, 即队列深度小可以说明网络流量 小, 队列深度大可以说明网络流量比较大, 为了增加精度, 可以增加统计的次 数, 即可以使用下面公式中的流量饱和度来表示网 络流量的大小。

y A列深度

流量饱和度 =厶,,

队列大小 χ Ν

上述公式中的队列深度是队列上的消息数, Ν为统计的次数, 队列大小为 一个队列能容纳的最大的消息数。

调整单元 404用于根据流量值调整预先存储的无效轮询次 数阈值, 以获得 调整后的无效轮询次数阈值。

作为一种可选的实施方式, 调整单元 404根据流量值调整预先存储的无效 轮询次数阈值的方式可以具体为:

若流量值大于预设流量阈值, 则增加无效轮询次数阈值; 或

若流量值小于等于预设流量阈值, 则减小无效轮询次数阈值。

统计单元 405用于统计无效轮询次数值。

作为一种可选的实施方式, 统计单元 405统计无效轮询次数值的方式可以 具体为:

若轮询时未检测到数据包, 则将无效轮询次数值增加; 若轮询时检测到数 据包, 则将无效轮询次数值清零或减少。 值。

切换单元 407用于当无效轮询次数值大于调整后的无效轮 询次数阈值时, 退出轮询状态并进入中断状态。

作为一种可选的实施方式, 切换单元 407还可以用于当无效轮询次数值 Ί、 于等于调整后的无效轮询次数阈值时, 保持轮询状态。

作为一种可选的实施方式, 该装置 400还可以包括存储单元 402:

存储单元 402用于存储用户输入的无效轮询次数阈值。 本发明实施例中, 系统中存储有用户设置的无效轮询次数阈值, 用户设置 的无效轮询次数阈值越大则可以说明用户对性 能和延迟的要求越高。

实施本发明实施例可以实现轮询和中断的切换 ,能够保证 CPU的高效利用 率且减少了频繁中断带来的延迟, 提高了处理网络业务的性能。 请参阅图 5 ,图 5是本发明实施例公开的又一种轮询和中断的 换装置的结 构示意图。 如图 5所示, 该轮询和中断的切换装置 500可以包括存储器 501和处 理器 502,存储器 501存储一组程序代码,且处理器 502用于调用存储器 501中存 储的程序代码, 用于执行以下操作:

初始化程序, 以进入轮询状态;

实时监测网络流量并获取网络流量的流量值;

根据流量值调整预先存储的无效轮询次数阈值 ,以获得调整后的无效轮询 次数阈值;

统计无效轮询次数值;

比较无效轮询次数值是否大于调整后的无效轮 询次数阈值;

若无效轮询次数值大于调整后的无效轮询次数 阈值,则退出轮询状态并进 入中断状态。

在一个实施例中,处理器 502用于调用存储器 501中存储的程序代码,还用 于执行以下操作:

存储用户输入的无效轮询次数阈值。

在一个实施例中,处理器 502用于调用存储器 501中存储的程序代码,还用 于执行以下操作:

若无效轮询次数值小于等于调整后的无效轮询 次数阈值, 则保持轮询状 态。

在一个实施例中, 处理器 502根据流量值调整预先存储的无效轮询次数阈 值的方式具体为:

若流量值大于预设流量阈值, 则增加无效轮询次数阈值; 或

若流量值小于等于预设流量阈值, 则减小无效轮询次数阈值。 在一个实施例中, 处理器 502统计无效轮询次数值的方式具体为: 若轮询时未检测到数据包, 则将无效轮询次数值增加; 若轮询时检测到数 据包, 则将无效轮询次数值清零或减少。

实施本发明实施例可以实现轮询和中断的切换 ,能够保证 CPU的高效利用 率且减少了频繁中断带来的延迟, 提高了处理网络业务的性能。

需要说明的是, 在上述实施例中, 对各个实施例的描述都各有侧重, 某个 实施例中没有详细描述的部分, 可以参见其他实施例的相关描述。 其次, 本领 域技术人员也应该知悉,说明书中所描述的实 施例均属于优选实施例, 所涉及 的动作和单元并不一定是本发明所必须的。

本发明实施例方法中的步骤可以根据实际需要 进行顺序调整、 合并和删 减。

本发明实施例装置中的单元可以根据实际需要 进行合并、 划分和删减。 本发明实施例中所述单元, 可以通过通用集成电路, 例如 CPU ( Central Processing Unit, 中央处理器), 或通过 ASIC ( Application Specific Integrated Circuit, 专用集成电路)来实现。

本领域普通技术人员可以理解实现上述实施例 方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完 成,所述的程序可存储于计算机 可读取存储介质中, 该程序在执行时, 可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读 存储记忆体(Read-Only Memory, ROM )或随机存储记忆体(Random Access Memory, RAM )等。

以上对本发明实施例所提供的一种轮询和中断 的切换方法及装置进行了 上实施例的说明只是用于帮助理解本发明的方 法及其核心思想; 同时,对于本 领域的一般技术人员,依据本发明的思想,在 具体实施方式及应用范围上均会 有改变之处, 综上所述, 本说明书内容不应理解为对本发明的限制。