首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

为什么IO函数要把内容从内核缓冲区拷贝到用户缓冲区? 有点浪费,该如何解决

2012-03-25 
为什么IO函数要把内容从内核缓冲区拷贝到用户缓冲区? 有点浪费例如,一个socket用recv接受数据,socket接受

为什么IO函数要把内容从内核缓冲区拷贝到用户缓冲区? 有点浪费
例如,一个socket用recv接受数据,socket接受到了先放到内核缓冲区,
然后recv再拷贝到用户缓冲区里面。

两次拷贝感觉是对内存/cpu时间的浪费,而且切换运行级别也是要耗费时间的啊。

这样做的必要性在哪里? 好处在哪里? 我看不出来。


[解决办法]
人家内核是很忙的,人家的资源怎么能让你一个小用户随便占用,所以先临时放在人家那里一会儿,差不多了就赶快拿走,别在人家那里占地方....

大概是这个意思
[解决办法]
socket的底层实现是在内核中
这个运行级别切换是必须的吧

热点排行