Розширена пам'ять
Expanded Memory Specification; EMS; Розши́рена па́м'ять (англ. expanded memory) — апаратно-програмна система, специфікація комп'ютерної платформи x86, що надає доступ DOS-програмам до пам'яті, недоступної через адресний простір основної пам'яті. Розширена пам'ять адресується сторінково через «вікно», що знаходиться у верхній зарезервованій області пам'яті (Upper memory area). Специфікація розширеної пам'яті (англ. Expanded Memory Specification , EMS) була розроблена в 1984 році спільно Lotus Software, Intel і Microsoft, тому часто зустрічається скорочення LIM EMS. З кінця 1980-х до середини 1990-х EMS активно використовувалася в іграх і комерційних застосунках, проте з приходом специфікацій додаткової пам'яті (XMS) стала використовуватися рідше.
Історія
Ранні IBM-сумісні ПК типу IBM PC/XT оснащувалися мікропроцесорами 8088 чи 8086, здатними працювати з оперативною пам'яттю ємністю не більше 1 Мбайт. Незважаючи на значні розміри цієї пам'яті, у ряді прикладних програм її виявляється недостатньо. Такі програми змушені інтенсивно використовувати диск для розміщення великих обсягів даних, що сильно знижує їх продуктивність. Тому майже одночасно з появою комп'ютерів IBM PC/XT почалися пошуки шляхів підвищення продуктивності великих прикладних програм (табличних процесорів, систем управління базами даних тощо) за рахунок використання оперативної пам'яті більшого ніж 1 Мбайт розміру. Ці пошуки привели до вироблення угоди між провідними фірмами - розробниками програмно-апаратних засобів, яке відоме як EMS LIM. Відповідно до цього стандарту ПК оснащуються спеціальними EMS-платами, що містять власне розширену пам'ять і мікросхеми, що забезпечують доступ до неї.
На комп'ютерах з мікропроцесорами 80386 і 80486 розширена пам'ять може емулюватися програмно. Починаючи з версії 4.0 операційна система MS DOS поставляється з драйверами розширеної пам'яті XMAEM.SYS і XMA2EMS.SYS. У DOS 5.0 їх функції виконує драйвер EMM386.SYS. Останній на ПК з мікропроцесорами 80386 / 80486 забезпечує емуляцію розширеної пам'яті, тобто програмно реалізує функції EMS - плати і перетворює додаткову пам'ять в розширену. Крім того, драйвер EMM386.SYS створює блоки верхньої пам'яті (UMB). Для функціонування драйвера EMM386.SYS потрібно забезпечити підтримку розширеної пам'яті, яку здійснює драйвер HIMEM.SYS. При цьому драйвер HIMEM.SYS повинен бути завантажений до драйвера EMM386.SYS, тому рядок DEVICE = HIMEM.SYS у файлі CONFIG.SYS повинен передувати рядку DEVICE = EMM386.SYS[1].
Слід зазначити, що терміни «додаткова» і «розширена» пам'ять застосовуються тільки в операційній системі DOS. В інших операційних системах, наприклад, в OS/2, Unix або Windows NT можна використовувати всю пам'ять комп'ютера.