免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: btw616
打印 上一主题 下一主题

[网络子系统] 关于内核空间效率高还是用户空间效率高的疑问 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-09-29 18:45 |只看该作者
回复 9# stephen_du


    非常感谢哈~!

论坛徽章:
0
12 [报告]
发表于 2012-09-29 21:28 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
13 [报告]
发表于 2012-09-30 07:41 |只看该作者
到底是什么原因呢...

论坛徽章:
0
14 [报告]
发表于 2012-09-30 08:49 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
15 [报告]
发表于 2012-09-30 11:20 |只看该作者
回复 1# btw616
如果有中断介入,把中断传递到用户进程影响效率, 还有如果模块有多个进程共享的资源时, 在内核里处理比在用户空间效率高。

当然内核模块也有缺点:
如果模块在内核出了问题, 对整个系统的影响是灾难性的
如果你不想公布你的模块源代码,就要用用户模块

   

论坛徽章:
0
16 [报告]
发表于 2012-09-30 12:35 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
17 [报告]
发表于 2012-09-30 17:49 |只看该作者
回复 12# stephen_du


    恩,呵呵~!   

论坛徽章:
0
18 [报告]
发表于 2012-09-30 18:01 |只看该作者
回复 14# stephen_du


    通过套接字发送数据的时候,貌似内核会把用户要发送的数据拷贝到skb中一份的。。。比如,tcp发送数据的时候:

  1.         while (--iovlen >= 0) {
  2.                 size_t seglen = iov->iov_len;
  3.                 unsigned char __user *from = iov->iov_base;

  4.                   .............

  5.                                 copy = min_t(int, copy, skb_availroom(skb));
  6.                                 err = skb_add_data_nocache(sk, skb, from, copy);

  7.                   .............
  8.         }
复制代码

论坛徽章:
0
19 [报告]
发表于 2012-09-30 18:52 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
20 [报告]
发表于 2012-09-30 22:08 |只看该作者
按楼上两位说的,还是需要拷贝吧...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP