2013-05-12 26 views
1

基本上,我有一個gsl矩陣需要分配到頁面鎖定的內存中。 gsl_matrix_alloc沒有指定這個。看來我必須重定向我的gsl_matrix->數據中的指針。但是,有沒有可以分配頁面鎖定內存的C++方法?C++可以分配頁面鎖定內存嗎?

注意:我不能使用其他非標準的C++ API,如CUDA API。

回答

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); 
4

如果通過頁鎖定您的意思是鎖定在物理內存中的虛擬內存,則Windows具有VirtualLock(),而Linux具有memlock()。