Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

14.2. Внешняя память и кэширование 675

Кэширование и блокирование

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

Временная местность: Если программа получает доступ к определенному местоположению памяти, то

это, вероятно, получит доступ к этому местоположению снова в ближайшем будущем. Например, это

довольно распространенный, чтобы использовать ценность встречной переменной в нескольких отличающихся экс-pressions, включая один, чтобы увеличить стоимость прилавка. Фактически, общая пословица среди компьютерных архитекторов - то, что «программа тратит 90 процентов своего времени в 10 процентах ее кодекса».

Пространственная местность: Если программа получает доступ к определенному местоположению памяти, то это

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

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

Программисты и инженеры выполнили обширное программное обеспечение, представляющее экс-periments, чтобы оправдать требование, что большая часть программного обеспечения обладает обоими из этих видов местности ссылки. Например, для петли раньше просматривал через множество экс-hibits оба вида местности.

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

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

Второй выбор дизайна мотивирован пространственной местностью. Определенно, если к данным, хранившим в местоположении памяти вторичного уровня l, получают доступ, то мы приносим в память основного уровня, большой блок смежных местоположений, которые включают lo - катион l. (См. рисунок 14.4.) Это понятие известно как блокирование, и это мотивировано ожиданием, что к другим местоположениям памяти вторичного уровня близко к l скоро получат доступ. В интерфейсе между кэш-памятью и внутренней памятью, такие блоки часто называют линиями тайника, и в интерфейсе между внутренней памятью и внешней памятью, такие блоки часто называют страницами.