C ++可以分配页面锁定的内存吗?

时间:2013-05-12 17:30:10

标签: c++ gsl

基本上,我有一个gsl矩阵需要分配到页面锁定内存中。 gsl_matrix_alloc未指定此内容。看来我必须重定向我的gsl_matrix->数据中的指针。但是,有没有可以分配页面锁定内存的C ++方法?

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

2 个答案:

答案 0 :(得分:4)

如果通过页面锁定意味着锁定在物理内存中的虚拟内存,则Windows具有VirtualLock(),Linux具有memlock()。

答案 1 :(得分:3)

假设您使用的是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);