操作系统中的页和块有什么区别?

问题描述 投票:0回答:3

我了解到,在操作系统(Linux)中,内存管理单元(MMU)可以通过页表数据结构将虚拟地址(VA)转换为物理地址(PA)。看来页是VM管理的最小数据单元。但是区块呢?难道也是磁盘和系统内存之间传输的最小数据单元吗?

operating-system virtual-memory
3个回答
37
投票

页面和块有什么区别? 块是操作系统可以写入文件或从文件中读取的最小数据单位。

页面到底是什么? 某些操作系统使用页而不是块。页基本上是一个虚拟块。而且,页面具有固定大小 - 4K 和 2K 是最常用的大小。因此,关于页面要记住的两个关键点是它们是虚拟块并且具有固定大小。

为什么可以使用页面而不是块 使用页面是因为当存在许多存储设备时它们使处理更容易,因为每个设备可能支持不同的块大小。对于页面,操作系统可以只处理固定大小的页面,而不是试图弄清楚如何处理不同大小的块。因此,页面充当操作系统和硬件驱动程序之间的中间人,将页面转换为适当的块。但是,页和块都用作数据存储单位。

http://www.programmerinterview.com/index.php/database-sql/page-versus-block/


12
投票

一般来说,硬盘是一种被称为“块设备”而不是“字符设备”的设备,因为传输数据的单位是块。 即使您只需要文件中的单个字符,操作系统和驱动器也会为您提供一个块,然后只允许您访问您所要求的内容,而其余部分保留在特定的缓存/缓冲区中。

注意:但是,不同系统的块大小可能有所不同。

要清除一点:
是的,硬盘和 RAM 之间传输的任何数据通常以块而不是实际字节的形式发送。 存储在 RAM 中的数据通常是按页进行管理的;当然,汇编指令只知道字节地址。


0
投票

这就是我的理解(过于简单化):

© www.soinside.com 2019 - 2024. All rights reserved.