Иерархия функций работы с памятью.

Можно выделить 4 уровня функций работы с памятью, причём функции последнего уровня зависят от функций предыдущего уровня.

1. Функции управления памятью на уровне системных сервисов – 0 кольцо. В Windows 95, 98 это VMM.vxd, в Windows NT, 2000 – это ntoskrnl.exe. Эти функции предназначены для выделения небольших областей памяти и манипулирования страницами этих областей, то есть единица выделения – это страница. Прикладные программы не имеют право вызывать эти функции.

2. VirtualXXX. Это функции управления виртуальной памятью, поддерживаемые kernel32. Эти функции поддерживает ядро. По функциональным возможностям аналогичны функциям 1 уровня. Эти функции могут использоваться приложениями пользователей.

3. Функции для работы с кучей. Функции Win32API, поддерживается kernel32, позволяют выделять в память из кучи минимальный блок - 4 байта. По смыслу совпадают с функциями языков програм-мирования.

HeapXXX, new, malloc. Примыкают функции LocalHeap и GlobalHeap (устаревшие – используются для совместности и выполняют одинаковые действия).

4. Функции для работы с памятью конкретных языков программирования.

New, malloc.

 

12. Объекты ядра. Процессы, потоки и модули в Win32.