內存管理API

1. 基本概念

    (1) 地址空間。

     系統所有可用的內存地址集合稱爲地址空間。

    (2) 物理內存

    硬件系統中真實存在的存儲空間稱爲物理內存,物理內存的訪問通過硬件系統的總線進行。但不是每臺32位機都具有4GB的內存空間。

    (3) 虛擬地址空間。

    爲了訪問內存的統一和方便,操作系統允許其上運行的程序訪問所有4GB的內存空間中的地址。操作系統會做一些轉換的地址轉換工作,將程序的訪問的地址轉換爲物理內存中的真實地址,然後進行數據的存儲。操作系統進行轉換後,供程序使用的地址空間稱爲虛擬地址空間。在32位系統上,可以使用的虛擬地址空間是4GB.

    (4) 進程中的內存空間:用戶內存空間與內核內存空間。

    WINDOWS操作系統中的每個進程都有屬於自己的虛擬地址空間。32位的windows操作系統將4GB的虛擬內存劃分爲兩個部分,進程使用2GB,稱爲用戶進程空間;內核使用2GB,稱爲系統地址空間或內核地址空間。

 

需要了解的內容:

(1) 虛擬地址空間中的數據時分頁管理的;

(2) 應用程序不用考慮系統中其他應用程序的內存使用情況,如佔用了多少內存、佔用了哪些內存;

(3) 虛擬地址並不是物理地址空間中的地址,不是數據在內存中的真實存在的地址,操作系統會將進程的虛擬地址映射到真實的物理地址上。

(4) 進程也不用考慮真實的物理地址有多大,只需要知道了解可以使用2GB(一般情況下)的內存,操作系統負責轉換;

(5) 如果系統中沒有足夠的物理內存供使用,那麼操作系統會將當前沒有使用的內存分頁“調度”到硬盤上保存起來。

 

 

堆管理API

HeapCreate

GetProcessHeap

GetProcessHeaps

HeapAlloc

HeapReAlloc

GetSystemInfo

HeapSize

HeapFree

HeapDestory

 

虛擬內存管理

VirtualAlloc

VirtualAllocEx

VirtualFree

VirtualFreeEx

VirtualProtect

VirtualLock

VirtualUnlock

 

內存操作與內存信息管理API

CopyMemory

FillMemory

MoveMemory

ZeroMemory

GlobalMemoryStatusEx

IsBadCodePtr

IsBadReadPtr

IsBadStringPtr

IsBadWritePtr

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章