RAM磁盘相关问题

RAM磁盘相关问题

有一个已开发的内核子系统,需要为自己分配一块内存,只有它才能操作该块。该内存应该是物理上连续的,并且它需要像块设备一样的访问方式(我的意思是/dev/..)。

你有什么建议?
在 RAM 磁盘和启动时保留内存之间,您有何建议?

答案1

您可能不应该创建任何内存磁盘(即tmpfs不使用ramfs),请参阅。 Linux 比你能更好地管理 RAM,而且它页面缓存非常好(所以你可能不需要创造任何“RAM”磁盘,只需使用tmpfs已安装的/tmp并将文件放在那里,甚至是任何文件系统中的任何文件:如果有大量 RAM,数据通常会保留在页面缓存中,并且不涉及实际的磁盘 IO,但请参阅同步(2)。看linuxatemyram我的答案给你的上一个(令人困惑的)问题

而“将 RAM 磁盘分配给特定进程”在 Linux 上是不可能的;您可能应该解释一下用例。 RAM 磁盘通常是 tmpfs 文件系统(或者可能是过时的 ramfs 文件系统),因此您将其分配给文件系统,而不是单个进程。

您可能可以使用 Linux 来限制大多数其他进程。例如,使用ulimitshell 内置命令(基于设置限制(2)系统调用)

我如何确定该 RAM 磁盘仅由上述进程使用,其他进程不会更改其数据?

内核应该保证tmpfs文件系统(就像保证其他文件系统一样)文件系统)。只有访问该文件系统中的文件的进程才能更改其中的数据。

如果您可以更改您想要支持的特定进程的程序代码,请使用时钟锁(2)

也可以看看离子(1)&不错(1)

我猜想,如果您没有创建任何 RAM 磁盘,您的 Linux 系统将比使用显式 RAM 磁盘执行(或可以配置为执行)更好。

除非您显示确切的命令以及一些处理您的问题的代码,否则您将不会获得任何帮助。

相关内容