![](https://csdnimg.cn/release/download_crawler_static/86311459/bg1.jpg)
2.1.4. Fuse block
为了更好地简单理解读写请求后面要做的事情,可以先看看下面这张图。
图 2.1.3-1 fuse block 层原理
对于一个 IO 请求,除了前面提到的把数据写入到缓存以外,其实还有一个叫直接 IO
的内容,那么关于 IO 我们常常还有听到同步与异步 IO 的内容,而异步 IO 则只能使用直接
IO 来实现的。另外对于一个 bio 请求来说,这里还会进行前向与后向的合并,之后会放入
到调度队列里面,等待调度算法来进行调度处理。
最后,在经历了一系列的原理的理解之后,我们使用 strace 命令来了解一下,在 linux
系统中创建一个文件时使用的函数调用吧。
1. # strace touch 1.txt
2. execve("/usr/bin/touch", ["touch", "1.txt"], 0x7ffe4906ed
c8 /* 24 vars */) = 0
3. brk(NULL) = 0x13ef000
4. mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_AN
ONYMOUS, -1, 0) = 0x7ff5b1044000
评论0