IT外包网管服务,浅析Linux中的零拷贝技术

发布者:上海IT外包来源:http://www.lanmon.net点击数:938

蓝盟IT小贴士,来喽!
基本的操作是将文件的内容从磁盘循环读取到缓冲区,并将缓冲区的内容发送到套接口。 但是,Linux的I/O操作在差动奥尔特下为缓冲I/O。 这里主要使用read和write两种系统调用,不知道执行操作系统在做什么。 事实上,上述I/O操作发生了多次数据拷贝。

当应用程序网站数据库到块数据时,执行操作系统首先根据最近是否网站数据库到该文件、文件的内容是否高速缓存区在内核缓冲器中、read系统调用提供的buf地址进行化学基, 如果内核缓冲器的内容不是由buf指定的用户空间缓冲器,则执行操作系统首先是内核缓冲器,用于复制盘上的数据。 此步骤现在主要依赖于直接存储器访问进行传输,然后将内核缓冲区中的内容复制到用户缓冲区。


零拷贝的主要塔斯克是避免将数据从一个电脑CPU的存储复制到另一个。 主要是利用各种零拷贝技术,使电脑CPU执行大量的数据拷贝塔斯克,减少不需要的拷贝,使其他组件执行数据传输塔斯克,从而更高效地利用系统资源。
应用程序调用mmap  (),磁盘上的数据通过在直接存储器访问上复制的内核缓冲区,并且执行操作系统与应用程序共享内核缓冲区,因此不必将内核缓冲区的内容复制到用户空间。

通常,使用此方法,文件描述符使用租赁摇滾乐,为文件向内核申请租赁摇滾乐。 如果其他进程尝试截断此文件,内核将发送实时RTSIGNALLEASE信号,破坏内核保存在该文件中的读/写摇滾乐,从而导致在将计程仪程序网站数据库到错误的存储器中并被SIGBUS杀死之前进行write系统write返回写入的字节数,并将errno设置为success。

文/上海蓝盟    IT外包专家

IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部