Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
24
Добавлен:
17.04.2013
Размер:
374.27 Кб
Скачать

8

СПО Лекция15[28.02.17]

Лекция 15. Управления виртуальной памятью на основе рабочих множеств. Виртуальная память вWin32.

  • Рабочее множество

  • Виртуальная память Win32

  • Трансляция адреса в процессорах x86

  • Буфер транслированных адресов (TLB)

  • Механизм загрузки страниц

  • Рабочие множества

  • Адресное пространство процесса

Рабочие множества

Механизм управления виртуальной памятью на основе рабочих множеств предложен Деннингом (Denning) в 60хгодах.

Рабочее множество– это множество страниц, к которым осуществлялось обращение в последниеw единиц времени. Обозначается какW(t,w), гдеt- текущее время, аw- интервал (окно) на котором отслеживается рабочее множество.

Пример. w=4

Время

1

2

3

4

5

6

7

8

Страницы

4

3

2

1

2

3

4

5

t

W(t,w)

Размер РМ

1

{4}

1

2

{3,4}

2

3

{2,3,4}

3

4

{1,2,3,4}

4

5

{1,2,3}

3

6

{1,2,3}

3

7

{1,2,3,4}

4

8

{2,3,4,5}

4

Управление памятью на основе рабочих множеств реализуется в соответствии с локальной (VAX) или глобальной стратегией (UNIX)

Глобальный алгоритм замещения представлен ниже.

Управление виртуальной памятью в Win32.

В Windows NT реализована странично-страничная виртуальная память В NT размер виртуального адресного пространства равен 232 или 4GB (220страниц по 4К). Таким образом теоретически процессу доступно 4GB памяти для программы и данных. Администратор виртуальной памяти NT (VMM) отличается от предыдущих версий Windows и использует линейные 32-х разрядные адреса для доступа к памяти. VMM использует жесткий диск для размещения страниц в страничном файле (pagefile). В оперативную память страницы загружаются по необходимости из страничного файла. Размер страничного файла может динамически изменяться. NT поддерживает до 16 страничных файлов.

Трансляция адреса в процессорах Intel и Alpha

Процессоры типа x86 работают со страницами размером 4К, а процессоры Alpha - 8К.

Каталог таблиц страниц и таблицы страниц содержат до 1024 элементов (по 32 разряда) и размещаются в одной странице памяти.

Адрес каталога страниц активного процесса хранится в регистре (CR3), каждый процесс имеет свой каталог страниц и на этом строится защита адресных пространств. Адрес каталога страниц хранится в блоке управления процессом. При переключении процессов значение CR3 загружается из блока управления процессом.

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

Каталог страниц должен быть полностью определен, таблицы страниц определяются по необходимости.

Формат PDE/PTE

Биты

Назначение

31-27

Защита (PAGE_NOACCESS, PAGE_READONLY, PAGE_READWRITE, PAGE_WRITECOPY, PAGE_EXECUTE)

26-7

Номер физической страницы (20 бит)

6-3

Номер страничного файла (0-15)

2-0

Биты состояния (T-D-P): T- флаг переходной страницы, D – флаг грязной страницы, P –флаг присутствия страницы в памяти

Комбинации битов состояния

T

D

P

Состояние

0

-

0

Invalid page

-

0

1

Valid page

-

1

1

Valid dirty page

1

0

0

Invalid page in transition

1

1

0

Invalid dirty page in transition

Если страница не загружена, то 20 бит используются как смещение в соответствующем страничном файле.

Если страница относится к файлу, отображаемому в память, то 28 бит(4-защиты, 20 – номер страницы и 4 – номер файла) адресуют системную структуру, описывающую отображение.

Соседние файлы в папке вар1