Распределение оперативной памяти в MS DOS

Как известно, MS DOS1 — это однопрограммная операционная система для персо­нального компьютера типа IBM PC. В ней, конечно, можно организовать запуск резидентных, или TSR-задач2, в результате которого в памяти будет находиться не одна программа, но в целом система MS DOS предназначена для выполнения толь­ко одного вычислительного процесса. Поэтому распределение памяти в ней по­строено по схеме простого непрерывного распределения. Система поддерживает механизм распределения памяти с перекрытием (оверлейные структуры).

Как известно, в IBM PC использовался 16-разрядный микропроцессор i8088, который за счет введения сегментного способа адресации позволял указывать

1 Версий однопрограммных дисконых операционных систем (Disks Operating System, DOS) для пер­
сональных компьютеров было много. Одних только MS DOS (систем от Microsoft) более 10. Однако
несмотря на существенные различия все их чаще всего именуют одинаково — MS DOS.

2 TSR (Terminate and Stay Resident) — резидентная в памяти программа, которая благодаря измене­
ниям в таблице векторов прерываний позволяет перехватывать прерывания и в случае обращения к
ней выполнять необходимые действия. Подробно об этом можно прочесть, например, в [3,23, 24,35].


Простое непрерывное распределение и распределение с перекрытием____________ 79

адрес ячейки памяти в пространстве объемом до 1 Мбайт. В последующих пер­сональных компьютерах (IBM PC AT, AT386 и др.) было принято решение под­держивать совместимость с первыми, поэтому при работе в DOS прежде всего рассматривают первый мегабайт. Вся эта память разделялась на несколько об­ластей, что иллюстрирует рис. 3.2. На этом рисунке показано, что памяти мо­жет быть и больше, чем 1 Мбайт, но более подробное рассмотрение этого во­проса мы здесь опустим, отослав желающих изучить данную тему глубже к монографии [2].

Если не вдаваться в детали, можно сказать, что в состав MS DOS входят следую­щие основные компоненты.

- Подсистема BIOS (Base Input-Output System — базовая подсистема ввода-вы­вода), включающая в себя помимо программы POST (Power On Self Test — са­мотестирование при включении компьютера)1 программные модули обработки прерываний, с помощью которых можно управлять основными контроллерами на материнской плате компьютера и устройствами ввода-вывода. Эти модули часто называют обработчиками прерываний. По своей функциональной сути они представляют собой драйверы. BIOS располагается в постоянном запоми­нающем устройстве компьютера. В конечном итоге почти все остальные моду­ли MS DOS обращаются к BIOS. Если и не напрямую, то через модули более высокого уровня иерархии.

- Модуль расширения BIOS — файл IO.SYS (в других DOS-системах он может называться иначе, например _ВЮ.С0М).

- Основной, или базовый, модуль обработки прерываний DOS — файл MSDOS.SYS. Именно этот модуль в основном реализует работу с файловой системой.

- Командный процессор (интерпретатор команд) — файл COMMAND.COM.

- Утилиты и драйверы, расширяющие возможности системы.

- Программа загрузки MS DOS — загрузочная запись (Boot Record, BR), распо­ложенная на дискете или на жестком диске (подробнее о загрузочной записи и о других загрузчиках см. главу 6).

Вся память в соответствии с архитектурой IBM PC условно может быть разбита на следующие три части.

- В самых младших адресах памяти (первые 1024 ячейки) размещается таблица векторов прерывания (см. раздел «Система прерываний 32-разрядных микро­процессоров i80x86» в главе 4). Это связано с аппаратной реализацией процес­сора i8088. В последующих процессорах (начиная с i80286) адрес таблицы пре­рываний определяется через содержимое соответствующего регистра, но для обеспечения полной совместимости с первым процессором при включении или аппаратном сбросе в этот регистр заносятся нули. При желании, однако, в слу­чае использования современных микропроцессоров i80x86 вектора прерыва­ний можно размещать и в других областях.

1 После выполнения программы POST, входящей в состав ROM BIOS, опрашиваются устройства, которые могут содержать программы для загрузки операционной системы.


80______________________ Глава 3. Управление памятью в операционных системах

Рис.3.2. Распределение оперативной памяти в MS DOS

- Вторая часть памяти отводится для программных модулей самой системы MS DOS и для программ пользователя. Эту область памяти мы рассмотрим чуть


Простое непрерывное распределение и распределение с перекрытием____________ 81

позже, здесь только заметим, что она называется основной, или стандартной, памятью (conventional memory).

- Наконец, третья часть адресного пространства отведена для постоянных запо­минающих устройств и функционирования некоторых устройств ввода-выво­да. Эта область памяти получила название UMA (Upper Memory Area — об­ласть памяти, адрес которой выше основной).

В младших адресах основной памяти размещается то, что можно условно назвать ядром этой операционной системы — системные переменные, основные программные модули, блоки данных для буферизации операций ввода-вывода. Для управления устройствами, драйверы которых не входят в базовую подсистему ввода-вывода, загружаются так называемые загружаемые, или устанавливаемые, драйверы. Перечень устанавливаемых драйверов определяется специальным конфи­гурационным файлом CONFIG.SYS. После загрузки расширения BIOS — файла IO.SYS — последний (загрузив модуль MSDOS.SYS) считывает файл CONFIG.SYS и уже в соот­ветствии с ним подгружает в память необходимые драйверы. Кстати, в конфи­гурационном файле CON FIG.SYS могут иметься операторы, указывающие на количество буферов, отводимых для ускорения операций ввода-вывода, и на количество файлов, которые могут обрабатываться (для работы с файлами необходимо зарезервировать место в памяти для хранения управляющих структур, с помощью которых выполняются операции с записями файла). В случае использования микропроцессоров i80x86 и наличия в памяти драйвера HIMEM.SYS модули IO.SYS и MSDOS.SYS могут быть размещены за пределами первого мегабайта в области, которая получила название НМA (High Memory Area — область памяти с большими адресами).

Память с адресами, большими чем lOFFFFh, может быть использована в DOS-программах при выполнении их на микропроцессорах, имеющих такую возможность (например, микропроцессор i80286 имел 24-разрядную шину адреса, а i80386 — уже 32-разрядную). Но для этого с помощью специальных драйверов необходимо переключать процессор в другой режим работы, при котором он сможет использовать адреса выше lOFFFFh. Широкое распространение получили две основные спецификации: XMS (Extended Memory Specification) и EMS (Expanded Memory Specification). Последние годы система MS DOS практически перестала применяться. Теперь ее используют в основном для запуска некоторых утилит, с помощью которых подготавливают дисковые устройства, или для установки других операционных систем. И поскольку основным утилитам, необходимым для обслуживания персонального компьютера, спецификации EMS и XMS, как правило, не нужны, мы не будем здесь их рассматривать.

Остальные программные модули MS DOS (в принципе, большинство из них является утилитами) оформлены как обычные исполняемые файлы. Например, утилита форматирования диска представляет собой и двоичный исполняемый файл, и команду операционной системы. В основном такого рода утилиты являются транзитными модулями, то есть загружаются в память только на время своей работы, хотя среди них имеются и TSR-программы.

Для того чтобы предоставить больше памяти программам пользователя, в MS DOS применено то же решение, что и во многих других простейших операционных


82 Глава 3. Управление памятью в операционных системах

системах, — командный процессор COMMAND.COM состоит из двух частей. Первая часть является резидентной и размещается в области ядра, вторая часть транзитная и размещается в области старших адресов раздела памяти, выделяемой для программ пользователя. И если программа пользователя перекрывает собой область, в которой была расположена транзитная часть командного процессора, то последний при необходимости восстанавливает в памяти свою транзитную часть, поскольку после выполнения программы она возвращает управление резидентной части C0MMAND.COM.

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








Дата добавления: 2016-09-20; просмотров: 814;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.