转载部分

Linux 文件IO的流程到底如何工作的

2019-03-21  本文已影响62人  简书徐小耳

摘抄:https://www.ibm.com/developerworks/cn/linux/l-cache/index.html

image.png

概述

上图的整个流程可以分为从磁盘读取文件,以及从进程写入文件到磁盘。

从磁盘读取文件的流程如下(粗略的流程):

从进程写数据到文件流程如下(粗略的流程):

VFS和FS之间的关系

磁盘到用户进程之间细致的流程

磁盘的簇(硬件缓存)-->文件系统的块(通过队列去执行块的IO)-->文件系统的pageCache(块内容变为bufferCache,BufferCache组装成PageCache)-->到物理Page-->进程一次性读取一个或多个Page内容。

MMAP

LInuxIO的五种模型

个人认为其实只有4中IO模型,因为多路复用不属于新的IO,只是一种IO的管理方式,IO的五种模型分类主要是从read角度来区分的,而对于文件IO 从read角度可以看为是NIO(当然如果出现磁盘抖动也会出现阻塞),从write角度可以分为Buffer IO和DIO,前者是主要依赖于page cache,后者绕过pageCache 直接写块。IO的分类只是角度不同,就像人可以分为男人和女人,也可以分为好人和坏人

上一篇下一篇

猜你喜欢

热点阅读