(virtual to physical memory mapping), (page swapping) (demand paging) . , (Solomon) (Russinovich) Inside Windows2000. :
; , Windows XP, 128 , .[21]
, , , , . , 1 , , 128 , .
.
, (page faults), , , (swap file) . , , , . , , .
. 5.1 API Windows (Virtual Memory Manager, VMM). API Windows (VirtualAlloc, VirtualFree, Virtual-Lock, VirtualUnlock ) . API Windows , .
, API, Windows 9x Windows NT . Microsoft.
, . :
VOID GetSystemInfo(LPSYSTEM_INFO lpSystemInfo)
PSYSTEM_INFO, , , .
|
|
Windows , (heaps). , .
. 5.1. Windows
, , , . , , (malloc, free, calloc, realloc).
Windows , , . . , , malloc :
HANDLE GetProcessHeap(VOID)
: ; NULL.
, NULL, INVALID_HANDLE_VALUE, CreateFile.
. , . .
. , . , (memory leak), , "" , , , .[22]
. , . . 9.
. , . . , , .
. , , , . , .
. , , .
, , . Windows ( ). , .[23]
|
|
, dwInitialSize ( ), , , ( ), (commit) ( ) , (allocation) . , , . , , , . dwMaximumSize ( ). , , .
HANDLE HeapCreate(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize)
: ; NULL.
, , DWORD, a SIZE_T. SIZE_T 32 64- , (_WIN32 _WIN64). , Win64 (. 16), 32 64- . SSIZE_T).
flOptions :
HEAP_GENERATE_EXCEPTIONS: NULL , SEH (. 4). , HeapCreate, , HeapAlloc, .
HEAP_NO SERIALIZE: , , .
, dwMaximumSize.
dwMaximumSize , , . , (nongrowable). , , , , .
dwMaximumSize 0, (grow), , , , .
, , . , , , ( 15), .
HeapDestroy. , , CloseHandle.
BOOL HeapDestroy(HANDLE hHeap)
hHeap , HeapCreate. , , ( GetProcessHeap). . , , .
|
|
, , , , C++ , . :
1. , .
2. , , .
3. , .
. -, Windows, .
UNIX sbrk, .
UNIX , .