Memory Management - Pdf 20

A Designated Center of Academic Excellence in Information Assurance Education by the National Security Agency
CS222:
Systems Programming
Memory Management II
February 21
st
, 2008
2 2/23/2008
Last Class
 Memory Management
– Overview
– Heap management
– Memory-mapped files
– Dynamic link libraries
CS222 - Systems Programming
3 2/23/2008
Today’s Class
 Memory Management
– Overview
– Heap management
– Memory-mapped files
– Dynamic link libraries
CS222 - Systems Programming
Heap Review
 Memory reserved by HeapCreate is not
necessarily contiguous
 Memory allocated by HeapAlloc is
contiguous
4CS222 - Systems Programming 2/23/2008
5 2/23/2008
GetProcessHeap

element at a time
BOOL HeapDestroy( HANDLE hHeap );
CS222 - Systems Programming
8 2/23/2008
HeapAlloc
 A function used for allocating a block of memory from
a heap
– dwFlags
• HEAP_GENERATE_EXCEPTIONS
• HEAP_NO_SERIALIZE
• HEAP_ZERO_MEMORY
 Use HeapFree function to deallocate memory
LPVOID HeapAlloc(
HANDLE hHeap,
DWORD dwFlags,
SIZE_T dwBytes);
Return: A pointer to the allocated memory block, or NULL on failure
CS222 - Systems Programming
9 2/23/2008
HeapReAlloc
 A function used for reallocating a block of memory
from a heap
LPVOID HeapReAlloc(
HANDLE hHeap,
DWORD dwFlags,
LPVOID lpMem
SIZE_T dwBytes);
Return: A pointer to the reallocated memory block, or NULL on failure
CS222 - Systems Programming
HEAP_NO_SERIALIZE

– No need to manage buffers and the file data
– Multiple processes can share memory
CS222 - Systems Programming


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status