为什么我们需要在 RAM 中锁定进程的地址空间?

Aqu*_*irl 5 c linux real-time

http://linux.die.net/man/2/mlockall

mlockall () 将调用进程的所有虚拟地址空间锁定到 RAM 中,防止该内存被分页到交换区。

为什么这在实时系统中很重要?

Thi*_*ter 5

它确保内存始终在 RAM 中,永远不会移动到交换磁盘。这使得访问这些内存位置的速度要快得多,因为与 RAM 相比,磁盘速度非常慢。

在实时系统中(顺便说一句,linux 不是 RTS!)您需要极低的延迟,因此导致磁盘访问的内存访问通常在时间关键代码中是不可接受的。