Overlay (программирование)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Использование[править | править исходный текст]

Метод предполагает разделение программы на фрагменты, называемые оверлеями (overlays). Размер каждого оверлея ограничен, согласно размеру доступной памяти. Место в памяти, куда будет загружен оверлей называется регионом (region, destination region). Хотя часто программы используют только один блок памяти для загрузки различных оверлеев, возможно определение нескольких регионов различного размера. Менеджер оверлеев, иногда являющийся частью ОС, подгружает запрашиваемый оверлей из внешней памяти (НЖМД, флеш-память, ППЗУ) в регион. Некоторые редакторы связей (линкеры) поддерживают работу с оверлеями.[1]

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

Оверлеи в PC/MS DOS[править | править исходный текст]

Во времена DOS, оверлеи были популярны, так как операционные системы и большинство компьютеров не обеспечивали работу с виртуальной памятью. Изначально, IBM PC даже не использовал НЖМД, таким образом единственным вторичным устройством хранения являлся НГМД 5-1/4".

Ранние IBM PC имели очень мало ОЗУ по современным меркам. Тогда как дискеты 5-1/4" могли хранить 360 килобайт, ОЗУ компьютеров 1981—1985 годов было, в основном, еще меньше (64, 128 или 256 килобайт, иногда 384 кб). Первые модели IBM PC имели от 16 до 64 кб. Наибольший объем памяти, который можно было установить в систему без специальных технологий, был ограничен 640K. Для больших объемов требовалось использовать стандарты EMS (expanded memory) и XMS (extended memory) и устанавливать дополнительную память на картах ISA. Таким образом, для больших программ приходилось использовать оверлеи.[2] В DOS двоичные файлы, содержащие оверлеи часто имели расширение .OVL

Примечания[править | править исходный текст]

См. также[править | править исходный текст]