Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SPO_Lab4.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
221.18 Кб
Скачать

Министерство образования и науки Украины

Запорожский национальный технический университет

Кафедра КСС

Отчет

Лабораторная работа №4

«Управление памятью»

по дисциплине

«Системное программное обеспечение»

Принял: Вершина А.И. Семерюк Т.Н.

2009

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

Лабораторное задание

1. Изучим страничную организацию памяти: кадры, страницы, логические и физические адреса. Рассмотрим компьютерную систему с 32-битной логической адресацией, 25-битной физической адресацией, которая использует страничную организацию при управлении памятью. Кадр страницы содержит 8192 байта оперативной памяти.

1.1. Сколько байт оперативной памяти представлено в компьютерной системе?

Поскольку размер страницы составляет 8192 байта или 213 байт, то программа может состоять максимум из 219 (т.е. 232-13) страниц по 213 байтов каждая (т.е. по 8Кбайт каждая). Итого получим 219*213 байт, т.е. 4 294 967 296 байт оперативной памяти.

1.2. Сколько кадров страниц представлено в компьютерной системе?

Максимальное количество страниц для данной компьютерной системы составляет 232-13 кадров страниц, т.е. 219 = 524288 кадров.

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

Так как поле смещения логического адреса для данной компьютерной системы составляет 13 бит при размере страницы 213 байт, то поле смещения физического адреса также состоит из 13 бит, а поле номера страницы – из (25-13), т.е. 12 бит.

13-битовое смещение

12-битовый номер страницы

25-битовый физический адрес системы

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

Так как размер страницы равен 8192 байта=213 байт, то поле смещения логического адреса системы должно занимать 13 бит, а поле номера страницы = 32-13=19 бит

13-битовое смещение

1 9-битовый номер страницы

32-битовый логический адрес системы

1.5. Сколько входов должно быть в таблице страниц для процесса, заданного 32-битной логической адресацией?

Количество входов в таблице страниц такого процесса равно количеству кадров системы, т.е. имеется 524 288 входа.

2. Изучение алгоритмов замещения страниц процессов при управлении виртуальной памятью: оптимальный алгоритм, алгоритм дольше всех неиспользовавшегося, алгоритм "первым вошел – первым вышел", часовой алгоритм. Рассмотрите пользовательский процесс, состоящий из 7 страниц, для которого выделено 4 кадра виртуальной памяти (все изначально пусты). Для выполнения процесса необходимы страницы в такой последовательности:

1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

2.1. Представьте содержание кадров памяти после каждого обращения к странице при

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

к странице буквой F.

1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

1

1

1

1

1

1

1

1

1

1

1

1

7

7

7

7

1

1

1

1

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

3

3

3

3

3

3

3

3

3

3

3

3

3

4

4

4

5

6

6

6

6

6

6

6

6

6

6

6

6

6

F F F F

2.2. Представьте содержание кадров памяти после каждого обращения к странице при использовании алгоритма замещения дольше всех неиспользовавшегося. Отметьте прерывания обращения к странице буквой F.

1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

1

1

1

1

1

1

1

1

1

1

1

1

1

6

6

6

6

6

6

6

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

3

3

3

3

5

5

5

5

5

3

3

3

3

3

3

3

3

3

4

4

4

4

6

6

6

6

6

7

7

7

7

1

1

1

1

F F F F F F

2.3. Представьте содержание кадров памяти после каждого обращения к странице при использовании алгоритма замещения "первым вошел – первым вышел" (FIFO). Отметьте прерывания обращения к странице буквой F.

1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

1

1

1

1

1

1

5

5

5

5

5

3

3

3

3

3

1

1

1

1

2

2

2

2

2

2

6

6

6

6

6

7

7

7

7

7

7

3

3

3

3

3

3

3

3

2

2

2

2

2

6

6

6

6

6

6

6

4

4

4

4

4

4

1

1

1

1

1

1

2

2

2

2

2

F F F F F F F F F F

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

1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

1*

1*

1*

1*

1*

1*

5*

5*

5*

5*

5*

3*

3*

3*

3*

3*

1*

1*

1*

1*

2*

2*

2*

2*

2*

2

6*

6*

6*

6*

6

7*

7*

7*

7*

7

7

3*

3*

3*

3*

3*

3*

3

3

2*

2*

2*

2

2

6*

6*

6*

6

6

6

6

4*

4*

4*

4

4

4

1*

1*

1

1

1

1

2*

2

2

2

2

F F F F F F F F F F

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

1 2 3 4 2 5 6 3 7 4 5 3 2 5 4

1

1

1

1

1

5

5

5

5

5

5

5

2

2

2

2

2

2

2

2

6

6

6

6

6

6

6

5

5

3

3

3

3

3

3

7

7

7

7

7

7

4

4

4

4

4

4

4

4

4

3

3

3

3

F F F F F F F

Часовой алгоритм

1 2 3 4 2 5 6 3 7 4 5 3 2 5 4

1*

1*

1*

1*

1*

5*

5*

5*

5*

4*

4*

4*

4*

4*

4*

2*

2*

2*

2*

2

6*

6*

6*

6

5*

5*

5*

5*

5*

3*

3*

3*

3

3

3*

3*

3

3

3*

3*

3*

3*

4*

4*

4

4

4

7*

7

7

7

2*

2*

2*

F F F F F F

3. Рассмотрим влияние страничной организации памяти на производительность программ.

3.2. Выполним программу L4_matrix1. Запишем в отчет результаты вывода программы

(размер матрицы, размер страницы в байтах, количество страниц для хранения матрицы, адреса внутри одной строки, адреса внутри одного столбца). Выполним программу L4_matrix1 3 раза и зафиксируйте в отчете время работы программы.

Size of matrix in bytes: 2097152

Size of a page in bytes: 4096

Number of pages to hold matrix: 512

Addresses within one row:

address of x[0][0]: 08049980

address of x[0][1]: 08049988

address of x[0][2]: 08049990

Addresses within one column:

address of x[0][0]: 08049980

address of x[1][0]: 0804a980

address of x[2][0]: 0804b980

Elapsed time: 0.003731 seconds

Во второй раз программа выполнена с результатом:

Elapsed time: 0.003702 seconds

В третий раз программа выполнена с результатом:

Elapsed time: 0.003717 seconds

3.3. Создайте программу L4_matrix2 на основе текста программы L4_matrix1.с,

изменив порядок следования строк и столбцов индексов для ссылки на элементы двумерного массива (в указанные строки внесите изменения).

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

Size of matrix in bytes: 2097152

Size of a page in bytes: 4096

Number of pages to hold matrix: 512

Addresses within one row:

address of x[0][0]: 08049980

address of x[0][1]: 08049988

address of x[0][2]: 08049990

Addresses within one column:

address of x[0][0]: 08049980

address of x[1][0]: 0804a980

address of x[2][0]: 0804b980

Elapsed time: 0.030735 seconds

Во второй раз программа выполнена с результатом:

Elapsed time: 0.030698 seconds

В третий раз программа выполнена с результатом:

Elapsed time: 0.030803 seconds

3.5. Поясните, почему время работы программы L4_matrix2 значительно больше, чем время работы программы L4_matrix1. Нарисуйте диаграмму, как обе программы получают доступ к страницам памяти, которые хранят массив.

Для программы L4_matrix1 диаграмма имеет следующий вид:

0 804:9980 0804:9988 0804:9990 ……. …….. ……… ………

0 804:а980 ………… ………….. ………. ………. …………

0 804:b980 …………. ……………. ………. ………. ………..

Для программы L4_matrix2 диаграмма имеет следующий вид:

0 804:9980 0804:9988 0804:9990 ……. …….. ……… ………

0 804:а980 ………… ………….. ………. ………. …………

0 804:b980 …………. ……………. ………. ………. ………..

Таким образом, поскольку переходы в программе L4_matrix2 осуществляются по столбцам, адреса которых расположены не один за другим, как в строках, а «один выше второго» (см. диаграмму), доступ к элементам в столбцах занимает гораздо больше времени, чем в случае работы со строками.

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