Linux I/O的定义是什么,哪些操作被归类为I/O?

Linux I/O的定义是什么,哪些操作被归类为I/O?,linux,caching,operating-system,kernel,Linux,Caching,Operating System,Kernel,当我研究linux缓存时,我发现我一直在使用术语I/O,而不知道它的正确定义 我引用了一位回复我关于Linux页面缓存的人的话,“Linux内核在进行I/o时填充(并使用)页面缓存,而不是在打开文件时” 基本上,我将术语I/O视为任何sys命令,但事实证明打开文件并不被视为I/O 此外,很少在线讨论或记录I/O的定义 这就引出了我的问题。I/O的定义是什么(特别是在访问磁盘的上下文中),哪些操作可以归类为I/O I/O的定义是什么,哪些操作被归类为I/O 这是一个没有明确答案的问题。(1) 它取

当我研究linux缓存时,我发现我一直在使用术语I/O,而不知道它的正确定义

我引用了一位回复我关于Linux页面缓存的人的话,“Linux内核在进行I/o时填充(并使用)页面缓存,而不是在打开文件时”

基本上,我将术语I/O视为任何sys命令,但事实证明打开文件并不被视为I/O

此外,很少在线讨论或记录I/O的定义

这就引出了我的问题。I/O的定义是什么(特别是在访问磁盘的上下文中),哪些操作可以归类为I/O

I/O的定义是什么,哪些操作被归类为I/O

这是一个没有明确答案的问题。(1) 它取决于系统(这里由您的Linux规范提供帮助)和(2)它取决于透视图。是否从用户的角度进行输入/输出?一个过程?内核

从进程的角度来看,可以说linux中的I/O是使用读或写系统服务的任何操作。从这个意义上讲,OPEN不是I/O,因为它不是在读取或写入进程数据

即使是定义也不能解释写入屏幕(但您要求将焦点放在磁盘上)

但是,如果您将透视图更改为内核透视图,I/O的范围将扩展。文件打开请求可能需要读取一个或多个目录的内容,并读取磁盘上的头文件信息。因此,磁盘和内存之间的任何数据移动都可视为I/O


从用户的角度来看,I/O是将数据移入或移出处理器的任何东西。这更符合理论。正如我上面提到的,计算机可以通过更新视频存储器将文本写入屏幕。这里可以区分主存和视频内存,但从逻辑意义上讲,数据没有真正的移动。

See是否可以写入和读取一个变量,将其视为一种“IO”操作?例如,我有两个线程,每个线程读写一个共享变量。在这种情况下,它将是I/O。这完全取决于上下文。