逻辑I / O和物理I / O之间的区别?

时间:2014-04-25 05:00:10

标签: c linux io operating-system

我无法理解逻辑和物理I / O之间的区别。 你能解释一下它们之间的区别吗?

感谢

2 个答案:

答案 0 :(得分:1)

术语逻辑,物理和虚拟I / O通常应用于磁盘。但是,可以应用于其他类型的设备。

在磁盘上下文中,逻辑I / O将磁盘视为一系列块,编号为0到N.

物理I / O需要通过盘片,磁道,扇区,块来寻址磁盘块。

在过去的操作系统中实现了物理到逻辑的转换。较新的磁盘倾向于在硬件中实现逻辑I / O(并自动处理坏块)。

答案 1 :(得分:0)

他们之间存在很大差异,

逻辑IO: FSS系统调用由FileSystem解析,这意味着它们永远不会到达物理块设备,例如您读取文件并且其内容位于页面缓存和缓冲区缓存中(所有必要信息都在缓存Inode +块中) 您的应用将获得VFS + FS提供的内容

另一个例子可能是当你执行ls时,第一次VFS需要从物理块设备获取所有inode信息,第二次信息将被缓存在dentry缓存中,并且不需要更深入到物理设备。

物理: 例如,同步写入,它将到达物理块设备,如果写入是异步,则块将被写入OS缓冲区(逻辑写入),之后所有脏页将一起写入块设备(物理)以改进表现。

这就是检查我们的FS如何执行IO以避免物理IO非常重要的原因。根据FS和内核参数,您可以改进缓存,使其适合您的需要。