Random 写系统调用C-HDD顺序访问还是随机访问?

Random 写系统调用C-HDD顺序访问还是随机访问?,random,system-calls,hard-drive,libc,sequential,Random,System Calls,Hard Drive,Libc,Sequential,我正在寻找一个解决方案,以检测如何写入功能访问磁盘。我想知道是顺序存取还是随机存取。我考虑在libC上打开write系统调用,并尝试编辑它,然后计算它是随机访问还是seq访问。。可能吗?怎么做 如果有别的解决办法,我会很感激知道的 我正在寻找一个解决方案,以检测如何写入功能访问磁盘 由于您的问题提到了libc,我们可以假设您是在某个操作系统下运行的,而不是在裸机系统上运行的,在这种情况下,答案是write函数根本不访问磁盘。它只是要求操作系统最终将数据写入磁盘。你的问题今天可能没有意义,因为在今

我正在寻找一个解决方案,以检测如何写入功能访问磁盘。我想知道是顺序存取还是随机存取。我考虑在libC上打开write系统调用,并尝试编辑它,然后计算它是随机访问还是seq访问。。可能吗?怎么做

如果有别的解决办法,我会很感激知道的

我正在寻找一个解决方案,以检测如何写入功能访问磁盘


由于您的问题提到了libc,我们可以假设您是在某个操作系统下运行的,而不是在裸机系统上运行的,在这种情况下,答案是write函数根本不访问磁盘。它只是要求操作系统最终将数据写入磁盘。

你的问题今天可能没有意义,因为在今天的磁盘上,甚至硬件都在逻辑上处理磁盘扇区:两个连续的磁盘扇区在物理上并不接近,因为控制器正在重新映射它们。还可以阅读关于。一些控制器甚至能够重新排序挂起的磁盘请求

顺便说一句,an没有扇区的任何物理几何图形,但给出了扇区编号的外观

此外,操作系统内核(尤其是Linux)正在管理磁盘,因此写操作通常不会直接写入磁盘。例如,参见系统调用

最后,是在Linux和大多数Unixes上,并且发生在内核内部。因此,您将无法在libc中更改其行为


另请阅读。

谢谢您的回答。嗯,我已经读过关于同步的文章,目前我在一些磁盘基准测试中使用了它。我做了一个LD_预加载包装来过滤write/lseek函数。。也许这是跟踪随机和顺序访问的一个良好开端。不