Оскільки розмір логічного адресного простору процесу може бути більше, ніж розмір виділеного йому розділу (або більше, ніж розмір найбільшого розділу), іноді використовується техніка, звана оверлей (overlay) або організація структури з перекриттям. Основна ідея – тримати в пам'яті тільки ті інструкції програми, які потрібні в даний момент.
Потреба в такому способі завантаження з'являється, якщо логічний адресний простір системи малий, наприклад 1 Мбайт (MS-DOS) або навіть всього 64 Кбайта (PDP-11), а програма відносно велика. На сучасних 32-розрядних системах, де віртуальний адресний простір вимірюється гігабайтами, проблеми з браком пам'яті вирішуються іншими способами (див. розділ "Віртуальна пам'ять").
Рис. 9.5. Організація структури з перекриттям. Можна по черзі завантажувати в пам'ять гілки A-B, A-C-D і A-C-E програми
Коди гілок оверлейної структури програми знаходяться на диску як абсолютні образи пам'яті і прочитуються драйвером оверлеїв при необхідності. Для опису оверлейної структури зазвичай використовується спеціальна нескладна мова (overlay description language). Сукупність файлів виконуваної програми доповнюється файлом (зазвичай з розширенням .odl), що описує дерево викликів усередині програми. Для прикладу, приведеного на мал. 8.5, текст цього файлу може виглядати так:
A-(B,C)
C-(D,E)
Синтаксис подібного файлу може розпізнаватися завантажувачем. Прив'язка до фізичної пам'яті відбувається у момент чергового завантаження одного з гілок програми.
Оверлеї можуть бути повністю реалізовані на призначеному для користувача рівні в системах з простий файловою структурою. ОС при цьому лише робить дещо більше операцій введення-виводу. Типове рішення – породження лінкером спеціальних команд, які включають завантажувач кожного разу, коли потрібне звернення до однієї з гілок програми, що перекриваються.
Ретельне проектування оверлейної структури віднімає багато часу і вимагає знання пристрою програми, її коди, даних і мови опису оверлейної структури. З цієї причини застосування оверлеїв обмежене комп'ютерами з невеликим логічним адресним простором. Як ми побачимо надалі, проблема оверлейних сегментів, контрольованих програмістом, відпадає завдяки появі систем віртуальної пам'яті.
Відмітимо, що можливість організації структур з перекриттями багато в чому обумовлена властивістю локальності, яка дозволяє зберігати в пам'яті тільки ту інформацію, яка необхідна в конкретний момент обчислень.