- ext2文件系统中,块的大小为4K(可配置),将硬盘分为4K大小的块,这是基础架构,然后在上面构建inode索引结点等其它数据结构。ext2会在inode中记录文件(例如:/tmp/a.txt)使用了哪几个块。
- 在内存管理中,将物理内存分为4K大小的页,然后以页为单位,分配置给各个进程来使用。操作系统会在页表中记录了某个进程使用了哪几个页。
- ......
这不能说是一个巧合吧
- 操作系统将读取过的文件的inode信息保存在内存中,下次使用时就不需要读硬盘
- 某个页已经在内存中了,但仍然不够快,我们就在cpu与内存中间加了一层cache,这样cpu甚至也不需要访问内存了
- CPU会经常将虚拟的指针地址转换为实际的物理内存地址,它们之间的对应关系是放在内存的页表中,但我们加了一个名为TLB的转换检测缓冲区,这样也不需要访问内存了
- 我们在做应用开发时,会在直接存取数据库前,先操作一个memory cache,这样可以提高性能,减少mysql的压力。
- ......
这所有的一切,总觉得思想是一样的。
这一致的思想是什么,仁者见仁,智者见智。
这就是文章名为“殊途同归”的原因