русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-23; просмотров: 792; Нарушение авторских прав


Несколькими экземплярами exe и dll модулей.

Проецирование в память exe и dll файлов.

Чтобы запустить ехе файл CreateProcess(…), где имя файла – это один из параметров.

1. Отыскивается ехе файл, вызванный функцией.

2. Создаётся объект ядра процесс.

3. Создаётся адресное пространство нового процесса размером 4Гб.

4. Выполнение проецируемого файла на адресное пространство процесса. В самом ехе файле указы-вается регион адресного пространства, в которое спроецирован файл.

5. Отмечается, что физическая память, связанная с выделенным регионом – это файл на диске, а не страничный файл.

6. Спроецировав ехе файл ОС читает несколько первых страниц в файл, чтобы получить список dll, необходимых данному ехе файлу. Затем ОС с помощью функции LoadLibrary(…) поочерёдно загружает указанные dll в адресное пространство процесса. Точно также выделяется регион в адресном пространстве и на него проецируется dll. Начальный адрес региона адресного простраства, на который желательно спроецировать dll указывается компоновщиком при создании dll. У всех системных dll (kernel32.dll и user32.dll).

7. После увязки ехе и dll файлов с адресным пространством процесса начинает выполняться стартовый код ехе файла. Подкачку страниц берёт на себя ОС.

Лекция № 8

Совместное использование статических данных

Например, имеется ехе файл, который состоит из

ехе файл виртуальная память ВАП

 
 

 

 


рис. 1.

Допустим загружен второй экземпляр этого же процесса. Информация о предоставляемой файлом страницы виртуальной памяти хранится в структурах, которые называются модули. Допустим процесс 1 изменяет данные на странице данных 2. Windows NT, Windows 2000 выделяет дополнительные страницы из страничного файла по мере необходимости, благодаря тому, что Windows NT, 2000 имеют такой атрибут страницы, как PAGE_WRITECOPY. В Windows 95, 98 такого атрибута нет. Поэтому Windows 95, 98 резервирует в страничный файл количество страниц, необходимых для размещения блока глобальных переменных, то есть реально используются, если программа изменяет глобальные переменные.



 

Можно выделить 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.

 

Управление процессами.



<== предыдущая лекция | следующая лекция ==>
Файлы проецируемые в память (ФПВП). | Процессы.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.