操作系统中的页面和块有啥区别?

Posted

技术标签:

【中文标题】操作系统中的页面和块有啥区别?【英文标题】:What's the difference between page and block in operating system?操作系统中的页面和块有什么区别? 【发布时间】:2014-04-03 22:58:58 【问题描述】:

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

【问题讨论】:

页面不是VM中最小的数据单元,数据单元是一个字节 【参考方案1】:

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

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

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

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

【讨论】:

页面大小 【参考方案2】:

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

注意:但是,块大小可能因系统而异。

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

【讨论】:

Thx,您的意思是RAM和磁盘之间传输的任何数据都以块为单位进行管理吗?存储在 RAM 中的数据是按页为单位组织的吗?我可以这么认为吗? 页面大小 很好的解释。 ?。有什么方法可以通过编写一些代码来演示或验证这一点。

以上是关于操作系统中的页面和块有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

Java中的同步方法和同步块有啥区别? [复制]

RSpec:let 和 before 块有啥区别?

NSAutoreleasePool 和 @autoreleasepool 块有啥区别?

对象存储、文件存储和块存储有啥区别?

静态和非静态初始化代码块有啥区别

参数内部和块内部的短/字节有啥区别[重复]