当前位置:  技术问答>linux和unix

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

    来源: 互联网  发布时间:2017-02-05

    本文导语:  例如,一个socket用recv接受数据,socket接受到了先放到内核缓冲区, 然后recv再拷贝到用户缓冲区里面。 两次拷贝感觉是对内存/cpu时间的浪费,而且切换运行级别也是要耗费时间的啊。 这样做的必要性在哪里? 好处...

例如,一个socket用recv接受数据,socket接受到了先放到内核缓冲区,
然后recv再拷贝到用户缓冲区里面。

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

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

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

大概是这个意思

|
socket的底层实现是在内核中
这个运行级别切换是必须的吧

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 但是内核源码中(相关c文件)明明EXPORT了 函数,为什么查看内核符号/proc/kallsys却没有该函数
  • 不重新编译内核能修改内核函数吗?
  • 内核进程间发送信号用哪个函数,如果没有这东西,那内核里异步通知用哪个东西
  • 我如何调用 内核函数 /linux/fs 里面的内核 函数:比如 自己的程序调用 ext3_delete_inode
  • 在内核的某个函数中,如何能知道是哪个用户空间的函数调用了它,以及这个用户空间函数所在的文件?
  • 关于如何使用内核函数的问题
  • 怎么查找有内核函数及其有关信息???
  • linux0.11内核有些函数是封装的吗?比如timer_interrupt()函数。
  • linux 2.6.35.4 内核中已没有netif_rx_schedule()函数,那替代函数是啥?
  • 调用内核的函数
  • 关于内核里实现的函数
  • 如何在内核中调用自己写的函数?
  • 哪里有linux内核函数的列表?
  • 系统调用对应的内核函数在什么地方
  • 关于内核中函数执行问题
  • 请问,内核里的函数手册从哪里可以查到?
  • 请问linux内核编程的能不能调用#include <stdio.h>的函数
  • 内核中的timer是不是可以理解为多线程,我想对一段代码加锁,如何实现,有没有可用的内核函数?
  • 关于内核函数问题
  • linux内核是用c和汇编写的,怎么会有inline内联函数呢?
  • C++ Maps 成员 key_comp():返回比较元素key的函数
  • 请问:定义了2个函数,其中第一个函数要访问另外一个函数的变量,怎么处理阿?谢谢
  • C++ Maps 成员 value_comp():返回比较元素value的函数
  • 如果知道一个函数的地址或函数名,如何得到函数所在的文件名?
  • C++ MultiMaps 成员 key_comp():返回比较key的函数
  • java的数学函数在那个类中,如幂函数、指数、对数、双曲线函数等?
  • C++ MultiMaps 成员 value_comp():返回比较元素value的函数
  • 一个父类的构造函数的参数是(Applet applet),请问它的子类构造函数当中应怎样调用父类构造函数?
  • C++ STL Bitsets构造函数及成员函数解释及代码示例
  • 虚函数被类的构造析构函数和成员函数调用虚函数的执行过程
  • C++ Strings(字符串) 成员 Constructors:构造函数,用于字符串初始化


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3