『阿男的工程世界』*让我们简单聊一下IO(4)*
最后,阿男给大家讲一下Memory Mapped IO
,这个是完全由操作系统实现的一种设计。所谓Memory Mapped IO
,就是在我们操作文件的时候,不是直接操作这个文件本身的数据,而是先把文件的数据拷贝到内存。Linux系统不叫copy
,叫mapped
,就是映射到内存。
这样,我们操作这个文件数据时,实际上操作的是内存里面的数据,最后再通过系统接口,回写到文件系统。Linux下这种机制叫做mmap:
关于mmap
,阿男会在别的专栏给大家细讲。
其实这算是一种操作系统提供的缓存机制了,因为机械硬盘比较慢,而相比而言内存很快,所以memory mapped IO是拿空间换时间。
当然现在机械硬盘自己有硬件缓存,SSD固态硬盘更快,所以Memory Mapped IO是否还有价值呢?
可以说,在SSD时代下,Memory Mapped IO
的价值可能是打了折扣了。但是在性能方面,我们不要做任何假设,在工业领域里面,总有我们想不到的使用场景,只要硬盘和内存的速度差存在,那么弥补速度差距的设计就肯定有价值。
IO的话题就聊到这里,接下来阿男要继续在『Linux内核世界』那个专栏给大家更新内存管理方面的内容。希望通过这些文章,大家对计算机世界的整个拼图在慢慢拼起来。