16 lines
1.7 KiB
Markdown
16 lines
1.7 KiB
Markdown
![]() |
#### Принцип локальности. Два вида локальности.
|
|||
|
|
|||
|
Программы обычно обращаются к относительно небольшой области адресного пространства (инструкции и данных) в любой момент времени - к рабочему набору (working set)
|
|||
|
**Working set** - набор адресов, с которыми программа работала в течение небольшого интервала времени.
|
|||
|
Два вида локальности доступа:
|
|||
|
|
|||
|
- **Временная**
|
|||
|
|
|||
|
Обращение к элементу (инструкции или данным) имеет тенденцию повторяться.
|
|||
|
Пример: инструкции во вложенном цикле.
|
|||
|
|
|||
|
- **Пространственная**
|
|||
|
|
|||
|
После обращения к некоторому элементу скорее всего вскоре произойдет обращение к другим элементам с близкими адресами.
|
|||
|
Примеры: последовательное выполнение инструкций, последовательный доступ к элементам массива.
|
|||
|
Пример программы, где нет временной локальности: поиск максимума в несортированном массиве, так как нам в любом случае придется просматривать содержимое массива от начала и до конца. Кэширование в этом случае практически бесполезно.
|