Direct I/O,Synchronous I/O的概念

Posted 中道学友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Direct I/O,Synchronous I/O的概念相关的知识,希望对你有一定的参考价值。

Direct I/O概念:

Direct I/O is a way to avoid entire caching layer in the kernel and send the I/O directly to the disk.

想要使用direct io的模式,可以这样做:

Opens files with O_DIRECT flag.


Synchronous I/O概念:

Synchronous I/O is any I/O (system I/O with or without O_DIRECT, or stream I/O) performed to a file descriptor that was opened using the O_SYNC or O_DSYNC flags.


几个Flag的区别:

O_DIRECT  I/O operations performed against files opened with O_DIRECT bypass the kernel‘s page cache, writing directly to the storage.
O_SYNC File data and all file metadata are written synchronously to disk.
O_DSYNC     Only file data and metadata needed to access the file data are written synchronously to disk. Metadata that is not required for retrieving the data of the file may not be written immediately.


参考资料

===============

What is direct I/O anyway?

http://www.alexonlinux.com/what-is-direct-io-anyway 

Ensuring data reaches disk

https://lwn.net/Articles/457667/

以上是关于Direct I/O,Synchronous I/O的概念的主要内容,如果未能解决你的问题,请参考以下文章

O_DIRECT 的真正含义是啥?

Linux系统中的I/O

网络编程模型(I/O模型)

并发编程之I/O模型

I/O模型

python 之I/O模型