ГЛАВА 5 Управление памятью, отображение файлов и библиотеки DLL
ГЛАВА 5
Управление памятью, отображение файлов и библиотеки DLL
Управление динамической памятью в той или иной форме требуется в большинстве программ. Необходимость в этом возникает всякий раз, когда требуется создавать структуры данных, размер которых не может быть определен заранее на стадии создания программы. Типичными примерами динамических структур данных могут служить деревья поиска, таблицы имен и связанные списки.
В Windows предусмотрены гибкие механизмы управления динамической памятью программы. Кроме того, Windows предоставляет средства отображения файлов, которые позволяют ассоциировать файл непосредственно с виртуальным адресным пространством процесса, благодаря чему ОС может управлять любыми перемещениями данных между файлом и памятью, так что программисту вообще не приходится иметь дело с функциями ReadFile, WriteFile, SetFilePointer и другими функциями ввода/вывода.
В случае использования отображения файлов программе удобно сохранять внутренние динамические структуры данных в виде постоянно существующих файлов, а все алгоритмы обработки применять к создаваемой в памяти копии файла. Более того, отображение файлов может значительно ускорить последовательную обработку файлов и предоставляет механизм, обеспечивающий совместное использование областей памяти одновременно несколькими процессами.
Важным специальным случаем отображения файлов и разделения памяти являются динамически компонуемые библиотеки (dynamic linked libraries, DLL), обеспечивающие возможность отображения файлов (обычно, когда они используются только для чтения) на адресное пространство процесса для их выполнения.
В этой главе описывается система управления памятью и функции отображения файлов Windows, что иллюстрируется целым рядом примеров их использования, а также обсуждаются явно и неявно связанные библиотеки DLL.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Глава 3 Управление памятью на уровне пользователя
Глава 3 Управление памятью на уровне пользователя Без памяти для хранения данных программа не может выполнить никакую работу (Или, скорее, невозможно выполнить никакую полезную работу.) Реальные программы не могут позволить себе полагаться на буферы и массивы структур
Управление памятью кучи
Управление памятью кучи Для получения блока памяти из кучи следует указать дескриптор области памяти кучи, размер блока и некоторые флаги. LPVOID НеарАllос(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes) Возвращаемое значение: в случае успешного выполнения — указатель на распределенный блок
Глава 11 Управление памятью
Глава 11 Управление памятью Выделить память внутри ядра не так просто, как вне ядра. Это связано со многими факторами. Главным образом, причина в том, что в ядре не доступны те элементы роскоши, которыми можно пользоваться в пространстве пользователя, В отличие от
Глава 24 Управление терминалами с помощью библиотеки S-Lang
Глава 24 Управление терминалами с помощью библиотеки S-Lang С помощью библиотеки S-Lang, написанной Джоном Дэвисом (John Е. Davis), можно осуществлять доступ к терминалам на среднем уровне. Все действия, связанные с управлением терминалами на низком уровне, осуществляются
Управление памятью процесса
Управление памятью процесса Можно сказать, что каждый процесс в операционной системе UNIX выполняется на собственной виртуальной вычислительной машине, где все ресурсы принадлежат исключительно данному процессу. Подсистема управления памятью обеспечивает такую
18.1.3. Управление памятью
18.1.3. Управление памятью Управление памятью осуществляется с помощью параметра mem: mem=Определяет объем памяти, установленной в компьютере.Например: mem=16384K или mem=16M.Иногда нужно указать объем ОЗУ, отличный от того, который имеется на самом деле. Например, у вас чипсет Intel 810 с
Шаг 18 - Управление памятью.
Шаг 18 - Управление памятью. Больше нет возможности обходить эту тему. Это слишком важно. Долго не хотел браться за нее, но она сама взялась за меня.В управлении памятью одна из самых больших проблем (для меня) состоит в том,что у авторов книг по C++ в этом месте случается как бы
Шаг 19 - Управление памятью. Продолжение 1.
Шаг 19 - Управление памятью. Продолжение 1. Бог: "Я стер всякую жизнь. Впочем, я ничего не уничтожил. Я просто воссоединил в Себе частицы Себя. У меня на планете было множество типов с безумными глазами, которые болтали насчет слияния со Мной. Вот они и слились." Кармоди: "Им это
2.2.3.1 Управление дисковой памятью
2.2.3.1 Управление дисковой памятью INFORMIX-OnLine DS поддерживает как собственный механизм управления дисковой памятью, так и управление средствами файловой системы ОС UNIX. Преимущества собственного механизма управления дисковой памятью: Снятие ограничений операционной
ГЛABA 10 Управление внешней памятью
ГЛABA 10 Управление внешней памятью Термин внешняя память (storage) относится к носителям, применяемым в самых разнообразных устройствах, в том числе к магнитным лентам, оптическим дискам, гибким дискам, локальным жестким дискам и сети устройств хранения данных (storage area networks,
Управление памятью (memory management) и сборка мусора (garbage collection)
Управление памятью (memory management) и сборка мусора (garbage collection) Может показаться, что этот критерий метода и языка должен принадлежать к следующей категории - реализации и среде. На самом деле он принадлежит к обеим категориям. Важнейшие требования предъявляются к языку,
Лекция 9. Управление памятью
Лекция 9. Управление памятью Честно говоря, было бы неплохо забыть про память. Программы создавали бы объекты по мере надобности. Неиспользованные объекты исчезали бы в небытие, а необходимые медленно передвигались бы вверх. Этот процесс подобен движению по служебной
Управление памятью связного списка
Управление памятью связного списка Приведем пример подхода на уровне компонентов. Рассмотрим класс LINKED_LIST, описывающий список, состоящий из заголовка (header) и набора связанных ячеек, являющихся экземплярами класса LINKABLE. Модель размещения и удаления для связного списка
Автоматическое управление памятью
Автоматическое управление памятью Ни один из рассмотренных подходов не является полностью удовлетворительным. Общее решение проблемы управления памятью предполагает серьезную работу на уровне реализации
ГЛABA 7 Управление памятью
ГЛABA 7 Управление памятью B этой главе вы узнаете, как реализована виртуальная память в Microsoft Windows и как осуществляется управление той частью виртуальной памяти, которая находится в физической. Мы также опишем внутреннюю структуру диспетчера памяти и его компоненты, в том