對映虛擬記憶體

2021-08-30 04:41:45 字數 817 閱讀 4927

沒有任何額外維護資料的記憶體分配

mmap(分配)/munmap(釋放)

分配空間大小:

4k*(length/4k+1)

以頁為單位,每頁通常為4k

函式說明:

void

*mmap

(void

*start,

//指定對映的虛擬位址 0由系統指定開始位置)

size_t length,

//對映空間大小 pagesize倍數

int prot,

//對映許可權 prot_none 或 prot_read prot_write prot_exec

int flags,

//對映方式

int fd,

//檔案描述符號

offset_t off)

;//檔案中的對映開始位置(必須是pagesize的倍數)

對映方式:

記憶體對映:匿名對映。

檔案對映:對映到某個檔案

只有檔案對映最後兩個引數有效。

記憶體對映:map_anonymous //匿名對映,對映區不與任何檔案關聯。

檔案對映:map_shared map_private(二選一)

舉例:

#include

#include

#include

#include

main()

記憶體對映檔案 虛擬記憶體

windows提供了3種進行記憶體管理的方法 虛擬記憶體,最適合用來管理大型物件或結構陣列。記憶體對映檔案,最適合用來管理大型資料流 通常來自檔案 以及在單個計算機上執行的多個程序之間共享資料。記憶體堆疊,最適合用來管理大量的小物件。再通俗點,就是比如 要讀取乙個檔案裡的東西 這時候你就得去硬碟讀,...

虛擬記憶體 mmap檔案記憶體對映

記憶體對映是虛擬記憶體系統的重要特性,即虛擬記憶體中的虛擬頁 virtual page 總是對應於磁碟上的物理頁 physical page 記憶體對映技術,可以使得使用檔案來初始化虛擬記憶體的內容 只在第一次引用到相應記憶體時,才會快取進主存 linux程序中可以使用mmap函式,建立乙個虛擬記憶...

虛擬記憶體,對映,分頁機制

這是我找到的關於虛擬記憶體和分頁機制的我個人比較容易理解的一篇文章。虛擬儲存器的思想是程式 資料和堆疊的大小都有可能超過物理記憶體大小,由作業系統把當前使用的放在記憶體,而不需要的放在磁碟。而絕大部分作業系統使用的虛擬儲存器技術就是分頁技術。在虛擬儲存器中,程式所產生的位址為虛擬位址,虛擬位址構成了...