56. Переданная и зарезервированная память
Адресное пространство, выделяемое процессу в момент создания, практически все свободно (не зарезервировано). Поэтому, чтобы воспользоваться какой-нибудь его частью, нужно вы лить в нем определенные регионы, вызвав Win32-функцию VirtualAlloc (о ней см. главу Операция выделения региона называется резервированием (reserving).
При резервировании система обязательно выравнивает начало региона по четно адресу и учитывает так называемую гранулярность выделения ресурсов (allocation granularit Последняя величина в принципе зависит от типа процессора, но у рассматриваемых в кш (x86, MIPS, Alpha и PowerPC) она одинакова и составляет 64 Кб. Понятие «гранулярного выделения ресурсов» применяется в системе, чтобы упростить служебную запись, хранящую информацию о регионах, зарезервированных в адресном пространстве Вашего процесса, а также чтобы снизить степень фрагментации регионов в этом пространстве.
Если Вы попытаетесь зарезервировать регион в 10 Кб, система автоматически округлит заданное Вами значение до большей четной кратной величины. А это значит, что процессорах х86, MIPS и PowerPC будет выделен регион размером 12 Кб, а на процессе Alpha — 16 Кб. И последнее в этой связи. Когда зарезервированный регион адресного пространство становится не нужен, его следует вернуть в общие ресурсы системы. Эта операция — освобождение (releasing) региона — осуществляется вызовом функции VirtualFree.
Чтобы практически использовать зарезервированный регион адресного пространства, нужно выделить физическую память и отобразить ее на этот регион. Такая операция называете передачей физической памяти (committing physical storage). Чтобы передать физическую память зарезервированному региону, Вы обращаетесь все к той же функции VirtualAlloc. Передавая физическую память регионам, нет нужды отводить ее целому региону Можно, скажем, зарезервировать регион размером 64 Кб и передать физическую память
aтолько его второй и четвертой страницам. На рис. 5-3 представлен пример того, как может выглядеть адресное пространство процесса. Заметьте: структура адресного пространства зависит от архитектуры процессора. Так, на рис. 5-3 слева показано, что происходит с адресным пространством на процессорах х86, MIPS и PowerPC (страницы по 4 Кб), а справа — на процессоре DEC Alpha (страницы по 8 Кб).
Когда физическая память, переданная зарезервированному региону, больше не нужна, ее освобождают. Эта операция — возврат физической памяти (decommitting physical storage) — выполняется вызовом функции VirtualFree.
- 2. Теневая память
- 6.Недостатки ms-dos и пути их преодоления
- 7.Структура conventional памяти
- 9. Обработчики 09h и 16h клавиатуры
- 10. Extended память
- Expanded память
- Upper память
- 14.Структура данных на магнитных дисках
- 15. Клавиатура. Scan-код
- 16. Распределение памяти в реальном режиме
- Адресация озу при использовании сегментации в защищённом режиме
- 19. Hma память
- Механизм страничной адресации
- 23.Тест клавиатуры
- 24. Прерывания bios
- Преобразование логического адреса в физический при включённой страничной адресации
- 26. Исключения и их обработка
- 27. Управление клавиатурой
- 28. Приоритет обработки прерываний
- Привилегии и защита программ
- 30.Механизм виртуальной памяти
- 31.Дескрипторы сегментных регистров
- 32.Кэш память
- 33.Таблицы локальных и глобальных дескрипторов
- 34.Cga, vga адаптеры
- Характеристики vga адаптеров
- 35.Таблица дескрипторов idt
- 37.Шлюзы и их применение
- 38.Понятие дескриптора
- 39. Адаптер дисплея
- 40.Функции dos и bios для клавиатуры
- 41 Пять компонентов защиты
- 42.Виртуальный 8086
- 43.Классы приоритетов
- 44.Многозадачный режим. Статические и динамические наборы
- 45.Шлюз задач
- 46. Библиотеки dll
- Явная компоновка
- 47.Виртуальная память процессора
- 48.Адресное пространство w9х
- 49.Адресное пространство nt
- 51. Файл подкачки страниц
- 52. Два процесса – один ехе файл.
- 53. Физическая память и страничный файл
- Физическая память в страничном файле не хранится
- 54. Алгоритм загрузки программ
- 56. Переданная и зарезервированная память
- 57.Разделы ехе файла
- 58. Проецируемые в память файлы
- 59.Механизмы работы с файлами больших размеров
- 60. Различия в обработке прерываний и исключений