Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСиС.doc
Скачиваний:
13
Добавлен:
25.08.2019
Размер:
1.59 Mб
Скачать

9.2.4 Ассоциативная память.

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

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

Естественное решение -  снабдить компьютер  аппаратным устройством для отображения виртуальных  страниц в физические без обращения к таблице страниц,  то есть иметь небольшую, быструю  кэш-память,  хранящую необходимую на данный момент часть таблицы страниц.  Это устройство называется ассоциативная память,  иногда также употребляют термин ассоциативные регистры (иногда translation lookaside buffer (TLB)).

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

Отображение виртуальных страниц, хранимых в ассоциативной памяти, осуществляется быстро, однако кэш память является дорогостоящей и имеет ограниченный размер. Число  записей в TLB от 8 до 2048

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

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

 

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

Процент раз, когда номер страницы находится в ассоциативной памяти, называется hit (совпадение) ratio (пропорция, отношение). Таким образом, hit ratio - часть ссылок, которая  может быть сделана с использованием  ассоциативной памяти. Обращение к одним и тем же страницам повышает hit ratio.

Например,  предположим, что для доступа к таблице страниц необходимо 100 нс, а для доступа к ассоциативной  памяти 20 нс. С 90% hit ratio среднее  время доступа - 0.9*20+0.1*100 = 28 нс.

Вполне приемлемая производительность современных ОС доказывает эффективность использования ассоциативной памяти.  Высокое значение вероятности нахождения данных в ассоциативной памяти связано с наличием у данных объективных свойств: пространственной и временной локальности.

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