分布式与大数据的设计与实现[5]:趣谈Zero-Copy

栏目:分布式与大数据 作者:admin 日期:2018-11-09 评论:0 点击: 639 次

我们知道,内存分为两部分,一部分被用户占用,一部分被操作系统占用,这个道理学过计算机的人都知道。但是内存这个概念太土了,科学家们聚到一起开会的时候,总不能你一句内存,我一句内存的讨论问题吧,这不是成了电脑维修了。为了显示清高,科学家们随后就想了一个更高大上的字眼:空间。人类的世界就是由空间和时间构成的,而在计算机世界里面,也有了“空间”之说,立马是不是觉得:多高大。
科学家又将空间分为内核空间和用户空间。虽然内核空间,用户空间这些术语让人有点发蒙。空间的本质就是内存。一堆符号叫程序;跑起来之后叫进程;内存条插入主板,跑上程序,就变成了空间,被操作系统占用的叫内核空间,被用户进程占用的叫用户空间。
两个空间是独立的,操作系统只能读写自己的空间。用户的程序跑起来,它总不能跑过去玩个躲猫猫吧。同样道理,用户的程序跑起来,它总不能跑到操作系统空间尿上一泡吧。
两个空间是独立的,操作系统只能读自己的空间(下图中步骤1),然后开放接口让用户来取,用户取之后也只能放在自己的空间里面(下图中步骤2)。
 
读来读取,写来写去,人类就烦了,这不是脱裤子放屁,多一道手续嘛!人类在想:反正数据我也没有加工处理,干脆让操作系统再给我一个接口吧,直接让它帮我把数据转移就行了。于是操作系统又对外提供了一个接口:这个接口不再是读写空间的数据,而是让数据迁移(下图中步骤2)。

分布式与大数据的设计与实现[5]:趣谈Zero-Copy:等您坐沙发呢!

发表评论