Введение

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

Модель

Алгоритмы внешней памяти анализируются в идеализированной модели вычислений, называемой моделью внешней памяти (или моделью ввода-вывода, или моделью доступа к диску). Модель внешней памяти – это абстрактная машина, подобная модели оперативной памяти, но дополненная кэшем. Модель отражает тот факт, что операции чтения и записи значительно быстрее выполняются в кэше, чем в основной памяти, и что чтение длинных непрерывных блоков происходит быстрее, чем случайное чтение с использованием головки чтения и записи диска. Время работы алгоритма в модели внешней памяти определяется количеством операций чтения и записи в память. Модель была предложена Алоком Аггарвалом и Джеффри Виттером в 1988 году. Модель внешней памяти связана с моделью, не учитывающей кэш, однако алгоритмы в модели внешней памяти могут учитывать как размер блока, так и размер кэша. По этой причине модель иногда называют моделью, учитывающей кэш. Модель состоит из процессора с внутренней памятью или кэшем размером M, подключенного к неограниченной внешней памяти. Как внутренняя, так и внешняя память разделены на блоки размером B. Одна операция ввода-вывода или передачи данных состоит в перемещении блока из B смежных элементов из внешней во внутреннюю память, а время работы алгоритма определяется количеством таких операций ввода-вывода. Первое использование термина "out-of-core" (вне оперативной памяти) по отношению к алгоритмам зафиксировано в 1971 году.