我正在为一个研究项目进行一些非常专业的实验。这些实验要求控制内存访问:我的应用程序在任何情况下都不应该与磁盘交换信息。也就是说,应用程序需要的所有信息在执行期间都必须保留在 RAM 中,但它应该使用尽可能多的 RAM。
我的问题是:有什么方法可以通过我的应用程序控制磁盘访问,或者至少计算磁盘访问以供以后分析?
这是使用 C 和 Linux。
如果我能澄清这个问题,请告诉我......我一直在研究这个问题,我想每个人都知道我在说什么。
您可以做的一件事实际上是创建一个 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/
希望这一切都有帮助。
系统调用允许您将mlock
部分或全部进程的虚拟内存锁定到 RAM,从而防止将其写入交换空间。请注意,具有 root 权限的另一个进程仍然可以该内存区域。