Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[Проектирование операционных систем] - Курс лек....doc
Скачиваний:
22
Добавлен:
14.11.2018
Размер:
347.14 Кб
Скачать

Организация виртуальной памяти

Целью организации виртуальной памяти является:

Обеспечение пользователя (точнее его программы) оперативной памяти практически не ограниченного объема (на практике – очень большого) с добавлением новых свойств:

  • Упрощенный доступ

  • Защита от других пользователей (программ)

  • и тд.

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

Говоря о виртуализации памяти нельзя не говорить об адресных пространствах.

Дадим определение адресного пространства:

Доступное множество адресов элементов хранения информации, упорядоченное по какому либо признаку, называется адресным пространством.

Элементы адресного пространства (адреса) однозначно идентифицируют расположение элемента информации среди других элементов. Необходимо помнить, что адресация элементов – аппаратная функция, а не программная.

В том случае, когда пользователь имеет дело не с действительным адресом, а с некоторым его обозначением, например идентификатором или символом, имеет место виртуальная память, а используемый, в качестве адреса, символ, называется виртуальным адресом.

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

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

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

Структуризация адресных пространств

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

Схемы страничной структуризации.

Есть некоторое адресное пространство.

A – адрес.

N – размер адресного пространства.

0≤AN-1, Ai+1=Ai+1.

  • Сгруппируем адреса по страницам. Все группы будут содержать одинаковое количество адресов (L=2m). Обычно N=2n. Очевидно, что количество страниц равно 2n-m. Группировку делают последовательно, начиная с адреса 0. Нумерация будет последовательной. В этом случае индекс последнего адреса будет: x = 2n-m-1.

K=0,1,2,… 2n-m-1 – страницы АП

AK0=K·L=K·2m.

  • Перенумеруем адреса в пределах каждой страницы, рассматривая ее как отдельное адресное пространство. Полученные адреса будут находится в пределах от 0 до 2m-1. Будем называть такие адреса смещением, обозначать буковкой R: 0≤R≤2m-1.

На этом структуризация адресного пространства закончена. Из одномерного адресного пространства мы получили двумерное.

Для примера возьмем адресное пространство, состоящее из 8 адресов. (N=8, n=3)

Разобьем адресное пространство на страницы с m=2 (L=4).

А

Страница

Смещение

0

0

0

1

0

1

2

0

2

3

0

3

4

1

0

5

1

1

6

1

2

7

1

3

Для перевода пары Страница/Смещение будем использовать следующую формулу: AK=K·L+R. На практике никакого сложения выполнять не надо, производят просто конкатенацию битовых строк.

Рассмотренный нами вариант структуризации адресного пространства называют «структуризацией фиксированными страницами». Помимо страниц фиксированного размера, для структуризации адресного пространства могут применяться и страницы переменного размера. В этом случае размер каждой страницы не превосходит максимального размера страницы. В этом случае адресная пара состоит из начального адреса страницы и смещения (Ai0, R).