Lectures / 20
.pdfОрганизация ЭВМ и систем
Лекция 20
Виртуальная память
Разбиение программы на оверлеи
Программа
1 ОП
2
3
4
V
ОП
|
2 |
|
|
|
|
|
|
|
|
3 |
|
1 |
|
|
|
1 |
|
|
|
|
|||
4 |
4 |
|
t |
||||
|
|
|
|
|
|
|
Отображение виртуальных адресов:
Пример
Адресное
пространство
Адрес
8191 |
|
|
|
|
4К основной |
|||
|
|
|
|
памяти |
||||
|
|
|||||||
|
|
|
|
|||||
4096 |
|
|
|
|
|
|
|
4095 |
|
|
|
||||||
|
|
|
|
|
|
|||
|
|
|
||||||
0 |
|
|
|
Отображение |
|
|
|
0 |
|
|
|
|
|
||||
|
|
|
|
|||||
|
Преобразование адресов
Виртуальный |
Шина адреса |
||
|
адрес |
|
|
|
|
|
|
ЦП |
Диспетчер |
ОП |
|
памяти |
|||
|
Физический
адрес
Страничная организация памяти
Виртуальная память
№
страницы
15
14
13
...
4
3
2
1
0
Виртуальный
адрес
61440…65535
57344…61439
...
16384…20479
12288…16383
8192…12287
4096…8191
0…4095
Основная память
№ странично- |
Физический |
го кадра |
адрес |
7 28672…32767
... ...
2 8192…12287
1 4096…8191
0 0…4095
Таблица страниц
Таблица страниц
№ Бит при- № страничностраницы сутствия го кадра в ОП
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
|
|
|
|
|
0 |
х |
|
|
|
0 |
х |
|
|
|
0 |
х |
|
|
|
0 |
х |
|
|
Основная память |
1 |
7 |
|
|
|
0 |
х |
|
|
№ страничного кадра |
1 |
5 |
|
|
|
0 |
х |
|
|
|
0 |
х |
|
|
7 |
0 |
х |
|
|
6 |
1 |
3 |
|
|
5 |
1 |
4 |
|
|
4 |
|
|
|||
1 |
0 |
|
|
3 |
1 |
6 |
|
|
2 |
1 |
1 |
|
|
1 |
|
|
|||
1 |
2 |
|
|
0 |
Преобразование адреса
|
Виртуальный |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
адрес на входе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
15 |
0 |
ххх |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
0 |
ххх |
|
№ страницы |
|
|
|
|
|
Смещение внутри |
|||||||||
13 |
0 |
ххх |
|
(n-k битов) |
|
|
|
|
страницы (k битов) |
||||||||||
12 |
0 |
ххх |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
1 |
111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
0 |
ххх |
|
|
|
|
Используется |
|
|
|
|
|
|
|
|
||||
9 |
1 |
101 |
|
|
|
как индекс в |
|
|
|
|
|
|
|
|
|||||
8 |
0 |
ххх |
|
|
|
|
таблице |
|
|
|
k битов смещения |
||||||||
7 |
0 |
ххх |
|
|
|
|
страниц |
|
|
|
копируются из |
|
|||||||
6 |
0 |
ххх |
|
|
|
|
|
|
|
|
|
|
входного адреса в |
||||||
5 |
1 |
011 |
|
|
|
|
|
|
|
|
|
выходной |
|
|
|||||
4 |
1 |
100 |
|
|
n=16 длина виртуального адреса |
||||||||||||||
3 |
1 |
000 |
|
|
|||||||||||||||
2 |
1 |
110 |
|
|
|
k=12 смещение внутри страницы |
|||||||||||||
001 |
|
|
|||||||||||||||||
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
0 |
1 |
010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Бит при- |
№ кадра |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сутствия |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Физический |
|
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
адрес на выходе |
Трансляция адреса с использованием TLB |
||||||
|
Виртуальный адрес |
ОП |
Вторичная |
|||
№ страницы |
Смещение |
память |
||||
|
||||||
Смещение |
|
|||||
|
|
|
TLB |
|
||
|
|
|
|
|
||
Страницынет в ОП |
|
|
|
№ |
Загрузка страницы |
|
|
|
|
кадра |
|||
№ № кадра |
Страница |
|
||||
есть в ОП |
|
|||||
неуспешенTLBвПоиск |
|
TLBвПоиск успешен |
|
|||
|
стр. |
|
|
|
|
|
|
|
|
№ кадра |
Смещение |
|
|
|
|
|
Физический адрес |
|
Схема трансляции адреса с TLB
|
ЦП просматривает TLB |
|
|
|
|
Запись таблицы |
Да |
|
|
|
|
|
|
страниц в TLB? |
|
Программа обработки |
|
Нет |
|
прерывания обращения |
|
Обращение к таблице |
|
к странице |
|
страниц |
|
ОС считывает |
Нет |
Таблица |
|
страницу таблицы |
|
||
|
страниц в ОП? |
|
|
страниц с диска в ОП |
|
Да |
|
|
|
|
|
Обновление таблицы |
|
Обновление TLB |
|
страниц |
|
|
|
|
|
ЦП генерирует |
|
|
|
физический адрес |
|
Двухуровневая иерархическая
таблица страниц в МП Pentium
4-Кбайтная корневая таблица страниц
4-Мбайтная таблица страниц пользователя
4-Гбайтное адресное пространство пользователя
Страницы Страницы PTE