2

我正在为一个研究项目进行一些非常专业的实验。这些实验要求控制内存访问:我的应用程序在任何情况下都不应该与磁盘交换信息。也就是说,应用程序需要的所有信息在执行期间都必须保留在 RAM 中,但它应该使用尽可能多的 RAM。

我的问题是:有什么方法可以通过我的应用程序控制磁盘访问,或者至少计算磁盘访问以供以后分析?

这是使用 C 和 Linux。

如果我能澄清这个问题,请告诉我......我一直在研究这个问题,我想每个人都知道在说什么。

4

2 回答 2

4

您可以做的一件事实际上是创建一个 ramfs 或 RAM 文件系统。你在unix平台上工作吗?如果是这样,您可以查看 mount 和 umount 以了解如何创建它们。

http://linux.die.net/man/8/mount

http://linux.die.net/man/8/umount

基本上你所做的就是创建一个存储在 RAM 中的文件系统。您不必再处理所有磁盘读/写时间。如果我正确阅读了您的问题,您想尽可能避免磁盘访问。这样做非常简单,因为您可以在硬盘驱动器和内存上同时拥有多个文件系统。

http://www.cyberciti.biz/faq/howto-create-linux-ram-disk-filesystem/

http://www.alper.net/linuxunix/linux-ram-based-filesystem/

希望这一切都有帮助。

于 2013-08-14T20:46:27.320 回答
1

系统调用允许您将mlock部分或全部进程的虚拟内存锁定到 RAM,从而防止将其写入交换空间。请注意,具有 root 权限的另一个进程仍然可以该内存区域。

于 2013-08-14T21:29:38.640 回答