Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_os.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
626.79 Кб
Скачать

39. Реализация, поддержка, особенности виртуальной памяти в oc windows Vista.

Все пользовательские процессы в ОС Vista имеют своё виртуальное адресное пространство. Для 32-битной системы размер виртуального адресного пространства равен 4 гигабайтам. Два, из которых, отводятся для пользовательского режима, остальные два – для режима ядра. Для 64-битных систем виртуальные адреса могут быть как 32-битные (используются для совместимости) так и 64-битные. Также в таких системах 32-битные процессы могут получить 4 гигабайта (виртуальной) памяти.

Общая структура виртуального пространства 32-битной системы

Первые и последние 64 Кбайт виртуального адресного пространства не используются. Это делается для того, чтобы было проще отлавливать системные ошибки. Над 64 Кбайтами начинается область приватных данных и программ пользовательского процесса (данная область простирается до 2 Гбайт и является разной для разных процессов). Верхние 2 Гбайта – виртуальная память ядра. Она используется совместно всеми процессами, кроме таблиц страниц. Каждая виртуальная страница может находиться в одном из трёх состояний:

  1. Недействительная страница (ссылка на такую страницу приводит к страничному прерыванию и нарушению доступа, т.е. такой страницы еще нет, она еще не загружена).

  2. Зафиксированная страница (данное состояние возникает после того как на неё отображаются код или данные).

  3. Зарезервированная страница (эта недействительная страница, но эти страница никогда не будут назначаться диспетчером памяти для других целей. Это используется для предотвращения излишнего роста из стека страниц).

Для поддержки виртуальной памяти используется механизм подкачки. Соответственно место на жестком диске - файл подкачки.

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

Если суммарная виртуальная память меньше чем имеющаяся физическая, то файл подкачки не используется.

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

страницы, которые подлежат вытеснению, группируются и затем сбрасываются на жёсткий диск большими частями за одну операцию ввода\вывода, при этом в файле подкачки выделяется сплошная часть дисковой памяти (Windows может поддерживать до 16 файлов подкачки, которые распределены по нескольким дискам, они имеют минимальный и максимальный размер); размер страницы чаще всего равен 4 Кбайта, однако в некоторых случаях 4 Мбайта;

40. Реализация управления памятью в oc windows Vista. Обработка страничных

прерываний.

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

При создании процесса ему выделяется область ВАП, а также создаётся дескриптор VAD. Данный дескриптор содержит: диапазон отображаемых адресов, секция представления файла резервного хранения (место на жёстком диске) и так далее. При обработке страничных ошибок Windows различает 5 категорий:

  1. страница не зафиксирована;

  2. попытка обращения страницы с нарушением разрешения;

  3. попытка модификации страницы;

  4. необходимость в увеличении стека;

  5. страница зафиксирована, но в данное время не отображена.

«Идея виртуальной памяти»: Изначально программа (процесс) загружаются в ОП не полностью. По мере работы программы (процесса), она подгружает необходимые части. В определенный момент может произойти следующая ситуация: физическая память переполнена и чтобы загрузить следующую необходимую часть программы, необходимо освободить часть памяти (ОП). В этот момент система решает какие из частей программы (процесса) являются менее важными. Их соответственно можно выгрузить на жесткий диск. Основная проблема заключается в том, чтобы определить какие из частей программы (процессов) являются менее важными.

Первая проблема: обмен между оперативной памятью и жестким диском происходит целыми страницами.

Другой проблемой является сам обмен между ОП и жестким диском. Частый обмен приводит к снижению эффективности системы. Медленная работа устройств ввода/вывода.

Основной идеей управления памятью в Windows Vista является концепция рабочего набора. Чтобы свести к минимуму взаимодействие с жестким диском применяется следующая стратегия: в памяти поддерживается определенное количество свободных страниц, которые можно использовать если есть запрос, от какого-либо процесса на подкачку страниц.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]