『阿男的工程世界』*让我们简单聊一下IO(4)*

『阿男的工程世界』*让我们简单聊一下IO(4)*

最后,阿男给大家讲一下Memory Mapped IO,这个是完全由操作系统实现的一种设计。所谓Memory Mapped IO,就是在我们操作文件的时候,不是直接操作这个文件本身的数据,而是先把文件的数据拷贝到内存。Linux系统不叫copy,叫mapped,就是映射到内存。

这样,我们操作这个文件数据时,实际上操作的是内存里面的数据,最后再通过系统接口,回写到文件系统。Linux下这种机制叫做mmap:

『阿男的工程世界』*让我们简单聊一下IO(4)*

关于mmap,阿男会在别的专栏给大家细讲。

其实这算是一种操作系统提供的缓存机制了,因为机械硬盘比较慢,而相比而言内存很快,所以memory mapped IO是拿空间换时间。

当然现在机械硬盘自己有硬件缓存,SSD固态硬盘更快,所以Memory Mapped IO是否还有价值呢?

可以说,在SSD时代下,Memory Mapped IO的价值可能是打了折扣了。但是在性能方面,我们不要做任何假设,在工业领域里面,总有我们想不到的使用场景,只要硬盘和内存的速度差存在,那么弥补速度差距的设计就肯定有价值。

IO的话题就聊到这里,接下来阿男要继续在『Linux内核世界』那个专栏给大家更新内存管理方面的内容。希望通过这些文章,大家对计算机世界的整个拼图在慢慢拼起来。

转载于:https://my.oschina.net/u/3195023/blog/836077