Лекция: Управление памятью в ОС Windows.
ДВП представляет набор базовых сервисов, при помощи которых процесс может напрямую управлять своей виртуальной памятью.
Эти сервисы позволяют процессу:
- Выделять память в два этапа.
- Выполнять чтение и запись в виртуальную память
- Фиксировать виртуальные страницы в физическую память.
- Получать информацию о виртуальных страницах.
- Защищать виртуальные страницы.
- Сбрасывать содержимое виртуальных страниц на диск.
ДВП устанавливает двухфазный способ выделения памяти — это резервирование памяти (1), а затем ее передача (2).
Зарезервированная память — это набор виртуальных адресов, которые ДВП зарезервировал для использования процессом.
Переданная память — это память, для которой ДВП выделил место в файле подкачки.
Файл подкачки — это дисковый файл, в котором записываются виртуальные страницы, когда их надо удалить из памяти. Поток может либо сразу зарезервировать и передать виртуальную память, либо вначале лишь зарезервировать, передавая по мере необходимости.
Совместное использование памяти.
Виртуальная память представляет собой удобный механизм совместного использования ФАП.
Т.к. у каждого процесса есть отдельное виртуальное адресное пространство, ОС достаточно загрузить в ФАП один раз ту программу, которую используют оба процесса => ДВП будет отображать виртуальные адреса первого или второго процесса на физические фреймы, в которых находится требуемая программа.
Защита памяти.
Существует 4 формы защиты памяти, которые используются в современных ОС:
- Отдельное адресное пространство для каждого процесса.
Аппаратура не позволяет потоку обращаться по виртуальным адресам другого процесса. - Два режима работы: режим ядра, в котором потоки имеют доступ к системному коду и данным; пользовательский режим, потоки которого такого доступа не имеют.
- Механизм постраничной защиты, т.е. с каждой виртуальной страницей связан набор флажков, определяющий какие типы доступа к ней разрешены в пользовательском режиме и какие в режиме ядра.
- (для WinNT) Пообъектная защита памяти. Всякий раз, когда процесс открывает описатель объекта, справочный монитор защиты WinNT проверяет, имеет ли процесс, пытающийся выполнить операцию соответствующие права доступа.