русс | укр

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

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

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

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


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

Механизмы управления памятью Windows.


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


1) Виртуальная память

2) Работа со стеками

3) Кучи (Heaps)

4) Файлы, проецируемые в память

 



1) Виртуальное адресное пространство Windows.

Виртуальная память – это совокупность программно-аппаратных средств, позволяющая пользователю составлять программы, размер которых превосходит имеющийся размер ОЗУ.

Для этого виртуальная память решает следующие задачи:

q Размещает данные в запоминающих устройствах разного типа, например, часть в ОЗУ, часть на жестком диске.

q Перемещает по мере необходимости данные между устройствами разного типа. Например, подгружает нужную часть программы с диска в ОЗУ.

q Преобразует виртуальный (линейный) адрес в физический.

Все эти действия используются без участия программиста.

 



ОЗУ

 



В Windows NT, 95 каждому процессу предоставляется адресное пространство 4 Гб. Адресное пространство каждого процесса скрыто от других процессов. Каждый процесс получает доступ только к той памяти, которая принадлежит ему. Память других процессов скрыта.

1234567816 – А

1234567816 – В

И А, и В обращаются к ячейкам, которые находятся по различным физическим адресам. С помощью страничной организации одинаковые линейные адреса преобразуются в различные физические. Это достигается за счёт того, что у них разная таблица страниц и отображение страниц.

ОЗУ в виртуальном адресном пространстве выделяется разделами. Выделения разделов различны для различных разделов. Например, в Windows из 4 Гб: 2 Гб программе, а 2 Гб ОС. В Windows 2000 advanced server теоретически можно выделить до 3 Гб. С чем связано такое расположение? Это связано с тем, что Windows NT создавалась под различные платформы, например, в MIPS 4000 так надо. Для работы с ОЗУ.

 



 



kernel32.dll
Win32API

 



 



пользовательский

 



ядра

 



В кольце 0. ntoskrnl.exe - Win NT

vmm.vxd - Win 95, 98

 



Документированные функции в kernel32.dll. Разбиение адресного пространства на разделы в Windows 95, 98.

 



 
 
FFFF:FFFF   С000:0000


5 Драйверы виртуальных устройств

 



 



 
 
BFFF:FFFF   8000:0000


4 Win32 модули системные DLL

 



 



 
 
7FFF:FFFF   0040:0000

 




3 Win32 процессы

 



 



 
 
003F:FFFF   0000:1000


2 MS-DOS и 16-битная Windows

 



 



 
 
0000:0FFF   0000:0000


 

1 MS-DOS и 16-битная Windows

 



 



Разделы 1 и 2 предназначены для совместимости с MS-DOS и 16-битной Windows. Разница в том, что 1 не доступен. При попытке доступа возникает нарушение доступа. Раздел 2 доступен по чтению/записи. Раздел 3 имеет размер 2 Гб - 4 Мб. В нем находится личное адресное пространство процесса. В Win32 никакой другой процесс не имеет доступа к этому разделу. Основной объем данных принадлежащий процессу хранится именно в этом разделе, то есть, если посмотреть заголовок, то адрес любого exe файла для Win 95, 98 будет 0040:0000. В разделе 4 размером 1 Гб Windows 95, 98 хранит данные, доступные всем Win32 процессам. Сюда загружаются kernel32.dll, gdi32.dll, user32.dll. Линейные адреса этого раздела отображаются на одни и те же страницы физической памяти, если сюда записать что-нибудь, то Windows зависнет. В разделе 5, размер которого 1 Гб, находится код ОС, то есть тот код, который находится в кольце 0. Это виртуальные драйверы, низкоуровневые процедуры управления файлами. Этот раздел также доступен всем процессам. Искажение информации в этом разделе грозит краху ОС.

 



 



Деление на разделы в Windows NT, 2000.

0000:FFFF   0000:0000
7FFF:FFFF   7FFF:0000
FFFF:FFFF   8000:0000
7FFE:FFFF   0001:0000

 



4 ОС

 



3 Для выявления указателей с неправильным значением

 



 



2 Адресное пространство процесса

 



1 Для выявления указателей с неправильным значением

 



Разделы 1 и 3 предназначены для выявления указателей с неправильным значением. При выявлении неправильного значения ОС генерирует нарушение доступа. Эти разделы "охраняют" разделы 2 и 4.

Раздел 2 - это область размером 2 Гб-128 Кб. Это личное адресное пространство конкретного процесса, причем эта область доступна данному процессу. В этой же области находятся все системные библиотеки пользовательского режима kernel32.dll и user32.dll. Если какой-либо процесс искажает системную dll, то эта ошибка скажется только на этом процессе. Если посмотреть любое exe приложение под Windows NT, Windows 2000, то начальный адрес будет 0001:0000.

Раздел 4. В него загружаются ядро Windows NT и драйверы устройств. Этот раздел полностью защищен и по чтению, и по записи.

 





<== предыдущая лекция | следующая лекция ==>
Страничная или сегментно-страничная организация памяти. | Передача физической памяти региону.


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


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

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

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


 


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

 
 

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

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