Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LABA4.doc
Скачиваний:
8
Добавлен:
04.04.2013
Размер:
468.48 Кб
Скачать

Локальность

Большинство стратегий управления памятью базируется на концепции локальности, суть которой заключается в том, что распределение запросов процессов на обращение к памяти имеет, как правило, неравномерный характер с высокой степенью локальной концентрации. Свойство это скорее эмпирическое (наблюдаемое), чем теоретически обоснованное. Локальность никак нельзя гарантировать, однако ее вероятность зачастую весьма велика. Например, в системах со страничной организацией мы наблюдаем, что процессы обычно "оказывают предпочтение" определенным подмножествам своих страниц и что эти страницы обычно размещаются по соседству друг с другом в адресном пространстве процесса. Это не значит, что процесс не будет иметь ссылок на какую-либо новую страницу - если бы это было так, то процессы вообще не могли бы даже начать выполнение. Это просто означает, что процесс будет, как правило, сосредоточивать свои обращения в течение некоторого временного интервала на некотором конкретном подмножестве своих страниц.

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

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

а) программных циклов,

б) подпрограмм,

в) стеков,

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

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

а) организацией данных в виде массивов,

б) последовательным выполнением кода программы,

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

КЭШ память

Память тегов (ассоциативная память) Память данных

о 1 16

Оперативная память

1

Адрес блока ОП Адрес блока КП

Рис. 5 Связь между оперативной памятью и кэш-памятью.

1

о 1 16

0

16382

0

2

2

127

0

1

2

127

0

1

2

16382

16383

Описание обобщенной структуры моделирования

При моделировании использованы модели оперативной памяти и кэш-памяти. На рис. 5 схематично показана связь между оперативной памятью и кэш-памятью.

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

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

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

Для реализации стратегии выталкивания дольше всего не использовавшейся страницы (LRU) используется стек, который изображен на рис.6. В стек закладываются адреса (номера) блоков оперативной памяти, присутствующие в кэш-памяти. Если блок оперативной памяти, к которому обращается процесс, присутствует в кэш-памяти, то его адрес (номер) переписывается в вершину стека, а содержимое стека сдвигается вниз на одну ячейку (это проиллюстрированно на рис. 6а). Если блок оперативной памяти, к которому обращаятся процесс, отсутствует в кэш-памяти, то его адрес (номер) записывается в вершину стека, все содержимое стека сдвигается вниз на одну ячейку, а самый нижний элемент стека удаляется из стека (см. рис. 6б). Адрес (номер), который содержит нижний элемент стека (удаляемый) и является адресом (номером) выталкиваемого блока.

a)

6)

Рис.6 Организация стека LRU

Соседние файлы в предмете Организация ЭВМ