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

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

  1. Выделять память в два этапа.
  2. Выполнять чтение и запись в виртуальную память
  3. Фиксировать виртуальные страницы в физическую память.
  4. Получать информацию о виртуальных страницах.
  5. Защищать виртуальные страницы.
  6. Сбрасывать содержимое виртуальных страниц на диск.

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

Защита памяти.
Существует 4 формы защиты памяти, которые используются в современных ОС:

  1. Отдельное адресное пространство для каждого процесса.
    Аппаратура не позволяет потоку обращаться по виртуальным адресам другого процесса.
  2. Два режима работы: режим ядра, в котором потоки имеют доступ к системному коду и данным; пользовательский режим, потоки которого такого доступа не имеют.
  3. Механизм постраничной защиты, т.е. с каждой виртуальной страницей связан набор флажков, определяющий какие типы доступа к ней разрешены в пользовательском режиме и какие в режиме ядра.
  4. (для WinNT) Пообъектная защита памяти. Всякий раз, когда процесс открывает описатель объекта, справочный монитор защиты WinNT проверяет, имеет ли процесс, пытающийся выполнить операцию соответствующие права доступа.