c++可以分配页锁内存吗?

Can C++ allocate page-locked memory?

本文关键字:内存 分配 c++      更新时间:2023-10-16

基本上,我有一个需要分配到页面锁定内存的gsl矩阵。Gsl_matrix_alloc没有指定这个。似乎我必须重定向指针在我的gsl_matrix->数据。然而,是否有任何c++方法可以分配页锁定内存?

注意:我不能使用其他非标准的c++ API,如CUDA API。

如果页面锁定是指锁定在物理内存中的虚拟内存,那么Windows有VirtualLock(), Linux有memlock()。

假设您使用的是Linux,请查看mlock的手册。

> NAME
>        mlock, munlock, mlockall, munlockall - lock and unlock memory
> 
> SYNOPSIS
>        #include <sys/mman.h>
> 
>        int mlock(const void *addr, size_t len);
>        int munlock(const void *addr, size_t len);
> 
>        int mlockall(int flags);
>        int munlockall(void);