对于应用程序级别的文件,页面/块是什么意思?

时间:2013-11-16 11:14:16

标签: java database file data-structures random-access

当我阅读教科书中的文件时,似乎我对应用程序级别的文件重复了解操作系统的一些概念。
例如,术语页面用于文件中的数据的逻辑表示(因此我们不在HD级别组织中)。但我无法理解这里的想法是什么。我们应用程序中是否定义了块大小和页面大小,并在访问文件时使用它们,例如使用NIO还是阻止IO?
我们如何正常定义这些尺寸?随意?我在这迷茫吗?

@RobinGreen请求后更新
我所说的一个例子就是例如时隙块页面结构或可变长度记录的列表表示,例如,在Silberschatz一书中的数据库系统概念的文件部分

1 个答案:

答案 0 :(得分:0)

在Linux中,操作系统块大小与硬盘驱动器报告的扇区大小(以字节为单位)无关(出于BIOS兼容性原因,这些天也是假的!)。

在应用程序级别,您可以将数据存储在固定大小或可变大小的块中,这些块与OS级别块无关。

所以有很多层次,彼此无关!

当然,以块的形式读取和写入数据是个好主意。例如,一次读取和写入1个字节的数据将涉及到内核的过多往返。但是使用正确的大小是一个经验问题:哪种大小对您的用例最有效?

网页尺寸略有不同。它们由CPU体系结构定义(至少在x86 / x86_64系列上)并影响分页/交换。应用程序不会直接遇到分页和交换,但就性能较低而言会遇到影响。