Главная arrow Операционные системы arrow Управление памятью
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Управление памятью Печать

Оперативная (или рабочая) память компьютера - ОЗУ (Оперативное Запоминающее Устройство) - собрана на полупроводниковых кристаллах (чипах - chip) и хранит информацию, только пока компьютер включен. При выключении питания ее содержимое теряется. Иногда эту память называют еще памятью с произвольным доступом (Random Access Memory - RAM). Память размещается в компьютере на главной системной плате или на отдельных платах памяти. Перед обработкой и выводом на экран данные сначала помещаются в память. Например, файлы прикладных программ обычно располагаются на жёстком диске. Когда Вы запускаете программу, её файлы загружаются в память для дальнейшей обработки. Также память обеспечивает временное хранение данных и прикладных программ. В общем случае, чем больше памяти установлено в компьютере, тем более сложные прикладные программы могут выполняться Вашим компьютером. Количество памяти в компьютере можно увеличить, вставив плату памяти в специальный разъём внутри компьютера или добавив дополнительные модули на уже имеющуюся плату памяти. Например, можно вставить плату памяти 16 Мb в компьютер, уже имеющий 8 Мb памяти, или вставить на свободные места платы памяти Вашего компьютера дополнительные микросхемы памяти. Память служит для хранения данных (документов), обрабатываемых в текущий момент компьютером. Выполняемая программа, как и значительная часть операционной системы DOS, хранится в оперативной памяти. С точки зрения внутренних механизмов оболочки оперативная память делится на две части: основную и расширенную. Оперативная память Вашей системы может быть следующих видов:

Базовая память

Операционная система MS DOS, а, следовательно, и подвляющее большинство работающих под ее управлением программ могут использовать лишь первый мегабайт памяти, который часто называют базовой памятью. Эта память в рамках ДОС поделена на две неравные части: первые 640 К (1К = 1024 байт) отводятся для программ пользователя и отдельных частей самой ДОС и называются стандартной памятью (conventional memory). Для использования стандартной памяти не нужны никакие дополнительные драйверы, поскольку операционная система MS-DOS изначально создана для работы в адресах 0-640 Кбайт. Оставшиеся 384 К зарезерервированы для памяти видеоадаптеров и ПЗУ и называются верхним блоком памяти (UMB - Uper Memory Block). В то же время в компьютерах IBM AT имеется возможность адресовать память объемом до 16 Mb, если в них используется микропроцессор 80286, или до 4 Gb, если используется микропроцессор 80386 или 80486.

Объем непосредственно адресуемой оперативной памяти определяется разрядностью адресной шины микропроцессора. Микропроцессоры 8088 и 8086 имеют 20-разрядную шину, поэтому адресуют 2 в степени 20 = 1048576 байт = 1 Мb. Микропроцессор 80286 оснащен 24-разрядной шиной и адресует 2 в степени 24 = 16 777 216 байт = 16 Mb. 32-разрядная шина 80386 и 80486 микропроцессоров адресует 2 в степени 32 = 4294967296 байт = 4Gb.

Дополнительная память

Память ПК, остающаяся за вычетом первого мегабайта (т.е. за вычетом базовой памяти), называется дополнительной (Extended Memory). Дополнительная память является естественным дополнением к обычной (базовой) памяти компьютера, на что и указывает само её название. Однако единственный (но, к сожалению, определяющий) факт, в котором нет никакой естественности, заключается в том, что подавляющему большинству программ MS DOS она не доступна! Чтобы использовать дополнительную память, процессор компьютера должен работать в специальном режиме, называемом защищённым. А операционнная система MS DOS не поддерживает этого режима процессора. Таким образом, владелец современного компьютера IBM AT, оснащенного памятью, скажем, в 8 Mb, часто либо вообще не использует дополнительные 7 Mb, либо размещает в них электронный диск или буферную кэш-память для дисков. В версии Турбо Паскаля 7.0 (точнее, в пакете Borland Pascal with Objects 7.0) введена поддержка защищенного режима микропроцессоров 80286/ 80386/80486, в котором используется дополнительная память. Однако эта подцержка не касается стандартных средств работы с дополнительной памятью.

Тем не менее отдельные программы MS DOS применяют технологию "расширения MS DOS", которая позволяет им воспользоваться преимуществами дополнительной памяти. Примером таких программ служат Lotus 1-2-3 (Lotus Development Corporation) и Paradox 386 (Borland International).

Компьютеры же на базе микропроцессоров Intel 8086 и 8088 не могут иметь дополнительную память, т.к. не имеют защищённого режима. Эти микропроцессоры функционируют исключительно в реальном режиме и поэтому не годятся для работы с программами, использующими дополнительную память.

Дополнительную память иногда называют XMS-памятью; XMS - сокращение от eXtended Memory Specification (спецификация дополнительной памяти). Не путайте эту аббревиатуру с другой - EMS (Expanded Memory Specification), которая относится к расширенной памяти.

Для использования дополнительной памяти в системе должен быть установлен соответствующий драйвер управления дополнительной памятью. Файл этого драйвера называется HIMEM. SYS, а подключается он к системе с помощью командной строки, размещаемой в файле CONFIG.SYS.

Расширенная память

Ранние IBM-совместимые ПК типа IBM PC/XT оснащались микропроцессорами 8088 или 8086, способными работать с оперативной памятью емкостью не более 1 Мбайт. Несмотря на значительные размеры этой памяти, в ряде прикладных программ ее оказывается недостаточио. Такие программы вынуждены интенсивно использовать диск для размезщения больших объемов данных, что сильно снижает их производительность. Поэтому почти одновременно с появлением компьютеров IBM PC/XT начались поиски путей повышения производительности крупных прикладных пропоим (табличных процессоров, систем управления базами данных и т.п.) за счет использования оперативной памяти большего чем 1 Мбайт размера. Эти поиски привели к выработке соглашения между ведущими фирмами-разработчиками программно-аппаратных средств, которое известно как EMS LIM (от Expanded Memory Specification - спецификация расширенной памяти, удовлетворяющая стандарту фирм Lotus-Intel-Microsoft). В соответствии с этим стандартом ПК оснащаются специальными EMS -платами, содержащими собственно расширенную память н микросхемы, обеспечивающие доступ к ней. Память, организованная по принципам спецификации 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.

Таким образом, дополнительная память - это просто добавочная память. Расширенная память - это специальная добавочная память, удовлетворяющая требованиям спецификации EMS.

Следует отметить, что термины "дополнительная" и "расширенная" память применяются только в операционной системе DOS. В других операционных системах, например, в OS/2, Unix или Windows NT можно использовать всю память компьютера. В этих операционных системах память называется просто "памятью".

Верхняя память

Помимо базовой, расширенной и дополнительной памяти, в ПК существует еще так называемая верхняя память (не путайте с верхним блоком памяти!). Как известно, 20-разрядный адрес при работе ПК в реальном режиме образуется путем сложения двух 16-разрядных слов - сегмента и смещения. Перед сложением сегмент смещается на 4 разряда влево (умножается на 16), что и обеспечивает 20-разрядный результат сложения - адрес конкретного байта. Формальное сложение сегмента и смещения может привести к переполнению 20-разрядной адресной сетки. Действительно, если, например, сегмент S=$FFFF, а смещение O=$0010, то сложение $FFFF*16 + $0010 дает значение $100000, для представления которого требуется уже 21 разряд.

Поскольку в ПК применяется 20-разрядная шина, переполнение результата не может использоваться, и "лишний" 21-й разряд просто теряется, т.е, адресация с сегментом S= $FFFF и смещением O> $000F эквивалентна адресации с сегментом S= $0000 и смещением O= O - $0010. В адресной шине IBM AT имеется 21-й разряд, но его использование обычно запрещено. Однако в таких компьютерах предусмотрена возможность программного управления 21-м разрядом. Если этот разряд разблокировать, программе, работающей в реальном режиме процессора, станут доступны еще почти 64 К (без 16 байт). Эта часть памяти и называется верхней (High Memory Area). MS DOS версии 5.0 и некоторые совместимые с ней операционные системы других фирм (например, DR-DOS фирмы Digital Research версии 4.0 и выше) могут размещать в верхней памяти свои резидентные части, тем самым освобождая драгоценную стандартную память для программ пользователя.