Работа в операционных системах и средах
ОС MS DOS. Однопользовательская, однозадачная
Краткая история MS-DOS
Краткая история MS-DOS, используемой в кол-ве 100-150 млн. экземпляров, начинается со скромной 86-DOS, написанной в середине 80-х годов Т. Петерсоном для компании Seattle Computer Products. При разработке 86-DOS были учтены требования совместимости с популярной в то время ОС CP/M-80 для восьмиразрядных микрокомпьютеров на базе процессоров Intel 8080 и Zyloy z-80.
В июле 1981 г. Microsoft приобрела право на 86-DOS, существенно переработала и выпустила на рынок под названием MS_DOS (Microsoft Disk Operating System). Когда осенью 1981 г. Появились первые ПК фирмы IBM, система MS_DOS 1.0 и её аналог фирмы IBM PC-DOS 1.0 быстро стали основными ОС для этих машин. В то же время непрерывное развитие аппаратных средств компьютеров привело к необходимости непрерывного совершенствования исходных систем MS-DOS и PC-DOS. В дальнейшем они развивались параллельно и их новые версии соответствовали друг другу. К настоящему времени выпущено уже 6 версий MS-DOS.
1983г. - MS-DOS 2.0
1984г. - MS-DOS 3.0
1988г. - MS-DOS 4.0
В MS-DOS 5.0 существенно улучшена поддержка расширенной и дополнительной памяти, включён улучшенный интерпретатор QBASIC (вместо BASIC), добавлен ряд новых команд, утилит и драйверов. Пожалуй, наиболее привлекательной чертой MS-DOS явилась возможность организации на компьютерах с расширенной памятью специальных областей – области старшей памяти (HMA) и блоков верхней памяти(UBA), куда можно загружать устанавливаемые драйверы, резидентные программы и большую часть самой DOS.
Типы памяти.
Логическая структура адресного пространства.
BIOS |
ОКНО |
Видеопамять |
Стандартная память |
XMA
расшир-
енная
UMA
верхняя
CMA
Рисунок 1. Типовая структура памяти с м/п 80286
Исторически сложилось так, что адресное пространство делится на 3 области UMA размером 384 Кбайт зарезервированных для организации доступа к таким разновидностям памяти, как видеопамять, память BIOS, постоянная память адаптеров периферийных устройств, выполняющая роль расширения BIOS. UMA используется не полностью – в ней имеются ничем не занятые дыры. XMA заполняется оперативной памятью, получившей название расширенной памяти (extended memory). Размер XMA = размеру адресного пространства микропроцессора за вычетом 1 Мбайт, отводимого под CMA и UMA. М/п 8088 поддерживает 1 Мбайт адресное пространство 4 Гбайт, кот. используется не полностью.
Все м/п, используемые в IBM- совместимых ПК, способны имитировать м/п 8088, с разработкой которого связано появление на свет компьютеров IBM PC. Такой режим работы наз-ся реальным. Поскольку DOS была создана для м/п 8088 и с тех пор радикально не изменила свои привязанности, работа в ее среде возможна лишь тогда, когда м/п находится в реальном режиме. По сути, в среде DOS полностью доступен лишь первый Мбайт памяти. Размера стандартной памяти для современных программ явно не хватает, поэтому особый интерес проявляется к имеющимся в UMA «дырам». Вся память, находящаяся за пределами первого Мбайт, оказывается доступной только в другом из основных режимов работы, наз. защищённым. Когда проблема доступа к расширенной памяти ещё не возникала, фирмами Lotus, Intel и Microsoft была предложена концепция отображаемой памяти(expanded memory). Принцип действия отображаемой памяти основан на техническом приёме, известном как замещение страниц. В пределах UMA, используемой не полностью, выделяется 64 Кбайт окно, в котором отображаются четыре произвольных 16 Кбайт страницы дополнительной оперативной памяти, имеющейся в компьютере. Тем самым м/п «вводится в заблуждение», поскольку он, обращаясь к окну, на самом деле получает доступ к памяти, физические адреса которой вовсе не принадлежат адресному пространству м/п.
1 М UMA отображаемая память
Память BIOS |
////////////////////////// |
////////////////////////// |
////////////////////////// |
/////////////////////////\ |
видеопамять |
\\\\\\\\\\\\\\\\\\\\\\\ |
\\\\\\\\\\\\\\\\\\\\\\\\ |
\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |
\\\\\\\\\\\\\\\\\\\\\\\ |
\\\\\\\\\\\\\\\\\\\\\\\ |
\\\\\\\\\\\\\\\\\\\\\\\ |
\\\\\\\\\\\\\\\\\\\\\\\ |
окно
Рисунок 2. Отображаемая память
Доступ ко всей отображаемой памяти можно осуществить, последовательно меняя страницы, отображаемые в окне UMA.
Описанная концепция была оформлена в виде спецификации отображаемой памяти(EMS – Expanded Memory Specification). Реально отображаемая память помещается на отдельную плату, которая устанавливается в ПК. Компьютеры с м/п 80386 (SX или DX) и выше не требуют специальных плат, т.к. эти процессоры обладают встроенными возможностями переадресации (отображение логических адресов в физические). Поэтому при наличии в компьютере расширенной памяти и специального драйвера можно осуществить имитацию отображаемой памяти, используя в качестве расходного материала для нерасширенную память. Функции эмулятора отображаемой памяти в DOS возлагается на драйвер emm 386.exe. Отображаемая память может быть использована для размещения данных, создания виртуального диска. Отображаемая память отдаётся программам не автоматически – программа должна сама запросить ее использование.
В настоящее время отображаемая память выходит из употребления, поскольку вместо неё лучше использовать расширенную память. Отображаемая память может оказаться необходимой, только если вы работаете устаревшими программами, требующими её наличие.
Проблема использования расширенной памяти возникла в связи с появлением на рынке компьютеров с м/п 80286, которые уже способны её иметь. DOS могла создавать в расширенной памяти виртуальные диски. В 1988г. Фирмой Microsoft совместно с фирмами Lotus, Intel и AST была предложена спецификация расширенной памяти (XMS – extended memory specification), которая стандартизует правила доступа, как к самой расширенной памяти, так и к памяти двух других типов.
Наиболее известным драйвером, обеспечивающим управление расширенной памятью в соответствии со спецификацией XMS, явл. драйвер HIMEM.SYS, включенный в комплект поставки DOS.
Расширенная память может использоваться только для хранения данных, необходимых выполняемым программам; организация копий для ускорения доступа к дискам.
Как и отображаемая, расширенная память автоматически каждой программе не предоставляется – программа должна её запросить.
Нужно различать расширенную память, которая в компьютере изначально, и расширенную память, доступную в соответствии со спецификацией XMS после подключения к системе драйвера типа HIMEM.SYS. в настоящее время под расширенной памятью понимают именно XMS – память. Иногда называют базовой расширенной памятью, которая без всяких программных ухищрений.
XMS-память |
Высокая память |
Память BIOS |
видеопамять |
Стандартная память |
XMS-память | |
Высокая память | |
Память BIOS | |
Регион UMB-памяти | |
окно | |
Регион UMB | |
видеопамять | |
Стандартная память |
XMA
HMA 1M+64K
1M
UMA
640K
CMA
Рисунок 3. Структура памяти с м/п Рисунок 4. Структура памяти с м/п 80286 и
80386 и выше выше
При проектировании микропроцессора 80286 была допущена ошибка, в результате которой он оказался способным адресовать в реальном режиме на 64 Кбайт память больше, чем 8088. Возможность доступа к первым 64 Кб базовой расширенной памяти учтена в спецификации XMS, а функция управления адаптером возложены в DOS на драйвер HIMEM.SYS. Расширенную память, попадающую в эту область, называют высокой памятью.
М/п 80386 и выше способны к переадресации (отображение логических адресов в физические). Поэтому появилась возможность заполнять расширенной памятью все дыры, имеющиеся в UMA. Расширенная память, перемещенная в UMA, называется верхней памятью или UMB-памятью (блоки верхней памяти). Описанная техника аналогична эмуляции отображаемой памяти, но имеются два существенных отличия: 1.невозможно использовать память, объем которой превышает размеры «дыр» - механизм переключения страниц не поддерживается. 2.в верхнюю память можно загружать не только данные, но также драйверы и резидентные программы.
Загрузка драйверов и резидентных программ в верхнюю память осуществляется специальными командами DOS.
Разновидность верхней памяти, о которой рассказано, является программной, поскольку она формируется программными средствами.
Некоторые модели ПК самых различных классов имеют аппаратную верхнюю память, т.е. оперативную память объёмом 384 Кб, заполняющую UMA. В этом случае регионы верхней памяти доступны изначально. Распознать наличие аппаратной верхней памяти проще всего можно, узнав общий размер оперативной памяти из сообщений при её тестировании во время загрузки DOS и сравнив с количеством, указанным в документации на ПК. Аппаратная верхняя память имеется, если протестированной памяти на 384 Кб меньше, чем указано в документации. BIOS не тестирует память, логически размещенную в UMA.