Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SPPO_na_unitaze.doc
Скачиваний:
11
Добавлен:
16.04.2015
Размер:
540.67 Кб
Скачать
  1. Управления оперативной памятью в Windows.

Вся память делится на две части: 2Гб – пользовательская, 2Гб – системная. Системная состоит из подкачиваемой и неподкачиваемой, а пользовательская часть – вся подкачиваемая (состоит только из вытесняемых страниц). Пользовательский процесс использует страницы, монопольно ему принадлежащие и общие (например, *.dll). Для упрощения работы существует каталог страниц и собственная таблица страниц.

Исполнительный адрес (p,s),p= (Ic,It), аs=Ib, гдеIc– индекс каталога,It– индекс таблицы, Ib – индекс байта.


PTE(PageTableEntry) описывает как найти нужную страницу для процесса.

PFN(PageFrameNumber) содержит информацию о блоках.

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

База PFN тоже структурирована. Все блоки в базе разбиты на несколько групп:

  • Свободные блоки (фреймы), т.е. те, в которые не загружена ни одна страница и которые могут быть выделены или требуют загрузки новой страницы

  • Неиспользуемые блоки

  • Модифицированные блоки

Неиспользуемые и модифицированные блоки не принадлежат ни одному процессу, при чем неиспользуемые после загрузки не были модифицированы. Эти два типа страниц появляются из-за того, что Windowsработает с предварительным вытеснением и предварительной загрузкой. Если страница долго не использовалась, то она вытесняется из памяти и помещается в один из этих типов. Если нужно догрузить страницу и нет свободной ОП, то сначала вытесняются неиспользуемые, затем модифицированные страницы.

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

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

свободные

неиспользуемые

модифицированные

активные

PTEa–активный

PTEn– недействительный

PTEs– разделяемый

При необходимости загрузить страницу загружается сразу несколько (кластер). Этим сокращается объем операций I/O. Те страницы, которые загружаются дополнительно к необходимой, помещаются в конец списка неиспользуемых.

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