我知道可以使用mlock()函数强制将变量存储在物理内存中。
void *buffer = malloc(buf_size);
mlock(buffer, buf_size);
// If there is no error when executing these instructions,
// On First Write to buffer, the buffer will be stored in physical memory
但是,如果我们想确保变量永远不会驻留在物理内存中怎么办。可以做到吗? 如果是,Linux 如何允许在用户空间中执行此操作。
当某些内容写入磁盘时,磁盘控制器通过 DMA 读取文件的内容。DMA 是直接内存访问的缩写,术语"内存"是这里的关键。它将访问内存。这甚至是独立于操作系统的,因为它是在硬件中实现的。
system("wget http://example.com/?x=2+2");
这会将值为 4
的变量x
存储在我的网络服务器上,而不是存储在您 PC 的 RAM 中。除了像这样的极端例子,我想不出任何解决方案。