Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 4 МП ЭВС.doc
Скачиваний:
36
Добавлен:
06.12.2018
Размер:
683.01 Кб
Скачать

Тема 4.9. Виртуальный режим работы мп

    1. Виртуальная память. Средства поддержки виртуальной памяти

    2. Пространство виртуальных адресов. Механизм преобразования адресов

  1. Виртуальная память. Средства поддержки виртуальной памяти

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

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

Виртуализация оперативной памяти осуществляется совокупностью программных модулей ОС и аппаратных схем процессора и включает решение следующих задач:

  1. размещение данных в ЗУ разного типа, например, часть кодов программы в оперативной памяти, а часть – на диске,

  2. выбор программ или их частей для перемещения из оперативной памяти на диск и обратно,

  3. преобразование виртуальных адресов в физические.

В настоящее время все множество реализаций виртуальной памяти может быть представлено тремя классами;

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

  • сегментная виртуальная память предусматривает перемещение данных сегментами - частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных,

  • сегментно - страничная виртуальная память использует двухуровневое деление: адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения данных здесь является страница.

Для временного хранения сегментов и страниц на диске отводится либо специальная область, либо специальный файл.

Типичная машинная команда требует 3-4 обращений к памяти и при каждом обращении происходит преобразование виртуального адреса в физический. Для уменьшения времени преобразования адресов во всех процессорах предусмотрен аппаратный механизм получения физического адреса по виртуальному.

  1. Пространство виртуальных адресов. Механизм преобразования адресов

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

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

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

Максимальный размер сегмента определяется разрядностью виртуального адреса. Например, при 32-разрядной организации процессора он равен 4 Гбайт. Сегменты не упорядочиваются относительно друг друга. Виртуальный адрес задается номером сегмента и линейным виртуальным адресом внутри сегмента.

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

На этапе создания вычислительного процесса во время загрузки программы в оперативную память ОС создает таблицу сегментов программы (аналогичную таблице страниц), в которой для каждого сегмента указывается:

  • базовый физический адрес сегмента в оперативной памяти,

  • размер сегмента,

  • правила доступа к сегменту,

  • признаки присутствия, модификации и обращения к данному сегменту.

Преобразование виртуального адреса в физический при сегментной организации памяти:

Рисунок 2 – Преобразование виртуального адреса в физический при сегментной организации памяти

Недостатки сегментного распределения:

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

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

Преимущества сегментного распределения над страничным: возможность задания прав доступа к сегменту («только чтение», «чтение и запись» и т. д.)