Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Управление памятью в Windows






32-х битные операционные системы Windows предоставляют каждому процессу виртуальное адресное пространство размером 4Гб (232=4294967296 байт). Адресное пространство каждого процесса закрыто, и один процесс не может обратиться к памяти другого процесса.

Организация виртуальной памяти Windows

Адресное пространство процесса разбивается на разделы, каждый из которых имеет свое назначение. Распределение разделов зависит от ядра операционной системы Windows. Распределение памяти в операционных системах Windows 98 и Windows 2000 показано в таблице:

 

Раздел Windows 98 Windows 2000
Для выявления нулевых указателей 0x00000000 0x00000FFF 0x00000000 0x0000FFFF
Для совместимости с программами DOS и 16-разрядной Windows 0x00001000 0x003FFFFF Нет
Для кода данных и пользовательского режима 0x00400000 0x7FFFFFFF 0x00010000 0x7FFFFFFF
Закрытый, размером 64 Кб нет   0x7FFF0000 0x7FFFFFFF
Для общих проецируемых в память файлов 0x80000000 0xBFFFFFFF Нет
Для кода данных и режима ядра 0xC0000000 0xFFFFFFFF 0x80000000 0xFFFFFFFF

Рис. Организация адресного пространства процесса в Windows.

 

Попытка обращения по нулевому указателю является одной из самых распространенных ошибок при работе с памятью. Для выявления таких ошибок адресное пространство начинается со специального раздела, любое обращение к которому вызывает ошибку доступа к памяти.

Так как в Windows 98 все процессы работают в одном адресном пространстве, то первые 4 МБ адресного пространства резервируются для 16-ти битных программ Windows 3x и DOS. Поскольку в Windows 2000 каждый процесс работает в собственном адресном пространстве, такой регион там не требуется.

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

В Windows 98 в этом разделе располагается только код и данные пользовательских программ и библиотек. Системные библиотеки и все проецируемые в память файлы располагаются в отдельном разделе.

После раздела пользовательского кода и данных в Windows 2000 располагается закрытый для доступа раздел размером 64 КБ который используется для упрощения выявления попыток обращений к памяти, используемой операционной системой.

В последний раздел виртуальной памяти отображаются код и данные операционной системы, включая код ядра, драйвера устройств, области ввода-вывода, таблицы страниц.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.