Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы ОТВЕТЫ.doc
Скачиваний:
215
Добавлен:
02.04.2015
Размер:
965.63 Кб
Скачать
  1. Сегментно-страничная организация памяти.

Компилятор подготавливает задачу в виде совокупности виртуальных сегментов, в общем случае, различной длины. Каждый сегмент состоит из целого числа виртуальных страниц. Виртуальные страницы имеют одинаковую фиксированную длину. Адресация внутри виртуальных страниц носит непрерывный характер. Виртуальные адреса представляются в виде троек (S,P,I), гдеS– виртуальный номер сегмента,P– виртуальный номер страницы,I– смещение относительно начала страницы. Физическая память представляет собой множество физических страниц того же размера, что и виртуальные страницы. Отображение виртуальных адресов в физические адреса показано на рис.

При загрузке задачи в оперативную память ОС, совместно с аппаратурой, создаёт в памяти таблицу дескрипторов сегментов задачи, а для каждого сегмента – соответствующую таблицу дескрипторов страниц. Загружаемым объектом в память является страница. Каждый дескриптор сегмента содержит начальный адрес соответствующей таблицы дескрипторов страниц (поле А) и размер сегмента в страницах (поле L). Каждый дескриптор страницы содержит признак присутствия/отсутствия страницы в оперативной памяти (полеPr) и физический номер страницы в памяти (полеF). Перед выполнением задачи, в специальный регистр процессора заносится начальный адрес таблицы дескрипторов сегментов текущей выполняемой задачи. Отображение виртуальных адресов в физические производится во время выполнения задачи и требует трёх обращений к памяти (к таблице дескрипторов сегментов, к таблице дескрипторов страниц, к самой странице), что видно на рис. Такая схема отображения имеет существенный недостаток – низкое быстродействие из-за большого числа обращений к памяти. Для устранения данного недостатка используется дополнительный аппаратно-программный механизм кэш памяти, функционирующей на основе ассоциативного принципа.

Каждая ячейка кэш памяти состоит из двух полей (см. рис.) – поля аргумента (X) и поля функции (Y). При использовании кэш памяти на все её ячейки параллельно подаётся значение ключа (Key). Если значение ключа совпадает со значением аргумента, то на выходные шины кэш памяти выдаётся значение функции.

Y X

Key

Использовать кэш память для ускорения отображения виртуальных адресов в физические адреса можно следующим образом. Выберем в качестве аргумента пару (S,P), а в качестве функции –F. Предположим, что произошло первое обращение к новой странице. Тогда физический адрес определится по основной схеме, но параллельно в ячейку кэш памяти занесутся значенияS,P– в поле аргумента, иF– в поле функции. Вероятность того, что следующее обращение будет к той же самой странице очень велика. Поэтому, при следующем обращении, скорее всего, сработает быстрый механизм кэш памяти и выдастся значениеF, после чего, быстро выполнится операция приписывания и физический адрес будет определён. Механизм кэш памяти для определения физического адреса будет срабатывать до тех пор, пока не произойдёт обращение к следующей странице.

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