为什么块设备的传输单位是块而不是页?

为什么块设备的传输单位是块而不是页?

操作系统概念说

字符流设备转移字节一个接一个,而块设备转移以字节块为单位。

但听说主存和磁盘之间的传输单位是页。

报价中的“转移”发生在什么和什么之间?为什么它的传输单位不是页而是块或字节?

谢谢。

答案1

传输通常发生在存储设备和主存储器之间。当您在提及磁盘时听到页面时,他们可能正在谈论以页面为单位的虚拟内存,因为这是 MMU 处理的存储单位。但是块设备与各种设备相关,这些设备可能是也可能不是磁盘,因此您有块和块大小的独立概念。磁盘块大小和内存页大小用过的(一般)相同,4096 字节,这当然非常方便。但没有任何内容表明他们必须是相同的。例如,您可能有一个用于存储图像的多 TB 磁盘,将块大小增加到 32k 或更大是有意义的……对内存页面大小没有影响。一般来说,只要一个是另一个的两倍的幂,就可以毫不费力地工作。

相关内容