第13課 活用記憶體對映與虛擬記憶體,讓應用更高效

2021-10-09 16:29:55 字數 404 閱讀 7278

本節課,我們要介紹幾個對虛擬記憶體進行系統級控制的系統呼叫,合理使用它們,能極大地提高應用的執行效率,增強應用的安全性,主要包括以下幾方面內容:

13.1.1 概述

記憶體對映的功能是在程序的記憶體對映表中建立一條新的對映表項,也就是分配一塊新的虛擬記憶體給呼叫程序。並且,可以指定記憶體內容與某個檔案內容相對應。

提供記憶體對映功能的系統呼叫是:

void * mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
其中:

flags 引數比較複雜,它指定執行記憶體對映時使用的操作選項,不同選項的組合適用於不同的應用場景。其中有兩個選項是互斥並且是必選項。

對映虛擬記憶體

沒有任何額外維護資料的記憶體分配 mmap 分配 munmap 釋放 分配空間大小 4k length 4k 1 以頁為單位,每頁通常為4k 函式說明 void mmap void start,指定對映的虛擬位址 0由系統指定開始位置 size t length,對映空間大小 pagesize倍數 ...

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

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

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

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