Chinaunix首页 | 论坛 | 博客
  • 博客访问: 302281
  • 博文数量: 78
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 572
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-26 09:59
文章分类

全部博文(78)

文章存档

2015年(8)

2014年(70)

我的朋友

分类: LINUX

2014-09-05 21:10:04

原文地址:NAPI是什么 作者:fireaxe

   NAPI是linux一套最新的处理网口数据的API,据说是由于找不到更好的名字,所以称之为NAPI(New API)。它是到linux 2.5才引入的,所以很多驱动并不支持这种操作方式。

  简单来说,NAPI是综合中断方式与轮询方式的技术。

  中断的好处是响应及时,如果数据量较小,则不会占用太多的CPU时间;缺点是数据量大时,会产生过多中断,而每个中断都要消耗不少的cpu时间,从而导致效率反而不如轮询高。轮询方式与中断方式相反,它更适合处理大量数据,因为每次轮询不需要消耗过多cpu时间;缺点是即使只接收很少数据或不接数据时,也要占用cpu时间。

  NAPI是二者的结合体,数据量低时采用中断法,数据量高时采用轮询法。平时是中断方式,当有数据到达时,会触发中断处理函数执行,中断处理函数关闭中断并开始处理函数。如果此时有数据到达,则没必要再触发中断了,因为中断处理函数中会轮询处理数据,直到没有新数据时才打开中断。

  很明显,数据量很低与很高时,NAPI可以发挥中断方式与轮询方式的优点,性能较好。如果数据量不稳定,且说高不高说低不低,则NAPI会在两种方式切换上消耗不少时间,效率反而较低一些。
阅读(1405) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~