Управление памятью в MS-DOS

MS-DOS – это ОС, работающая в реальном режиме процессора i86, что предполагает использование адресного пространства размером всего лишь 1 Мб. На самом деле, в компьютерах IBM гарантируется наличие лишь 640 Кб основной памяти, старшие же адреса памяти заняты под BIOS и видеопамять, хотя среди них попадаются разрозненные куски оперативной памяти, называемые UMB (верхний блок памяти).

Адрес в реальном режиме записывается в формате [сегмент : смещение], однако здесь сегмент – это не селектор, адресующий строку таблицы сегментов, а просто номер параграфа памяти (1 параграф = 16 байт). Поэтому можно считать, что в MS-DOS используются только физические адреса.

В принципе, программы, работающие в MS-DOS, могут получить доступ к памяти за пределами 1 Мб, но для этого требуется специальный драйвер расширенной памяти.

Поскольку делить имеющуюся память между несколькими процессами не приходится, распределение получается бесхитростное. Основные области памяти показаны на рис. 1.

 

Рис. 1

Нижнюю часть памяти занимают модули ОС: обработчики прерываний, резидентная чисть интерпретатора команд, драйверы устройств. Некоторые системные программы могут быть ради экономии загружены в верхний блок памяти (выше 640 Кб). Все, что остается в середине, может быть предоставлено процессу пользователя.

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

Часть системной памяти и вся область пользователя разбита на прилегающие друг к другу блоки, размер которых кратен параграфу. Перед началом каждого блока памяти размещается блок управления памятью (MCB, Memory Control Block), который занимает один параграф и содержит следующие данные:

· признак, определяющий, последний ли это блок памяти или за ним будут еще блоки (соответственно буква ‘Z’ или ‘M’, это, видимо, опять Марк Збиковский отметился);

· адрес PSP программы, владеющей этим блоком (0 означает свободный блок);

· размер блока в параграфах;

· имя программы-владельца (до 8 символов); это поле избыточно (зная PSP программы, можно найти имя ее файла), оно было добавлено, вероятно, чтобы хоть как-то занять пустующие байты параграфа MCB.

Когда система должна выделить блок памяти для собственных нужд или по запросу программы пользователя, она просматривает список блоков от начала, перемещаясь от одного MCB к следующему. Найдя свободный блок достаточного размера, система отмечает его как занятый соответствующим владельцем. Если выделяется не весь свободный блок, то после выделенного блока система записывает еще один MCB, описывающий свободный остаток блока.

При освобождении блока система записывает 0 в поле владельца MCB. Если с одной или с двух сторон от освобождаемого блока лежат свободные блоки, то два или три свободных блока сливаются в один.

При запуске программы система выделяет ей два блока памяти: сначала небольшой блок для переменных среды, затем самый большой среди оставшихся свободных блоков для самой программы. Обычно этот блок занимает всю свободную память. Такое решение приемлемо, поскольку других претендентов на память нет.

MS-DOS предоставляет в распоряжение пользователя функции, позволяющие выполнять основные действия с блоками памяти.

· Выделение блока указанного размера. Если свободного блока достаточной величины не имеется, то система возвращает максимальный размер, который может быть выделен.

· Освобождение ранее выделенного блока.

· Изменение размера блока. Уменьшение блока возможно всегда, увеличение – только в том случае, если после данного блока расположен свободный блок достаточного размера.

 

Одним из немногих случаев, когда эти функции оказываются полезны, является запуск порожденного процесса. Система должна иметь достаточно свободного места, чтобы разместить блок среды и блок PSP загружаемой программы. Однако, как было сказано выше, вся свободная память обычно отдается под блок PSP текущей программы. Поэтому прежде чем запускать порожденный процесс, программа должна уменьшить свой собственный блок PSP, оставив себе необходимый минимум.

Тема: Конфигурирование операционной системы. Файл CONFIG.SYS

Для того чтобы компьютерная система работала оптимально, необ­ходимо выполнить тщательную ее настройку — сконфигурировать под конкретную аппаратуру.

 

Под конфигурированиемпонимают настройку операционной системы для работы с конкретным типом процессора и периферийными устройствами:

ü дисплеем,

ü клавиатурой,

ü дисководом,

ü принтером,

ü дополнительными устройствами указания, например, мышью,

ü расширителями памяти.

 

Обычно в понятие конфигурирования включают также и адаптацию операционной системы к индивидуальным пожеланиям и потребностям пользователя.

 

После включения компьютер сначала ищет дискету с операционной системой в дисководе А:. Если на вставленной в него дискете DOS отсутствует, выдается сообщение об ошибке. Если же в дисководе А: вовсе нет дискеты или дисковод не был закрыт, персональный компью­тер загружает операционную систему с винчестера (дисковод С:), если он имеется. Если и это не удается или если винчестер отсутствует, выдается сообщение об ошибке, в котором пользователь приглашается вставить в дисковод дискету с операционной системой.

 

Если операционная система найдена, она загружается и начинает работать, т.е. управлять компьютером.

 

После загрузки обоих скрытых системных файлов разыскивается файл по имени CONFIG.SYS, т.е. файл конфигурации. Этот файл управляет настройкой операционной системы под индивидуальные требования или пожелания пользователя.

 

Файл CONFIG.SYS должен находиться в корневом каталоге той дискеты (носителя) или того винчестера, с которого компьютер запускается. Только там компьютер может искать и находить этот файл.

 

Если CONFIG.SYS отсутствует, то компьютер продолжает работу со стандартными парамет­рами (параметрами по умолчанию), заданными разработчиками опера­ционной системы. Эти параметры различаются в зависимости от того, работаете ли Вы с компьютером типа ХТ или с компьютером типа АТ.

Через файл CONFIG.SYS можно сообщить операционной системе свои пожелания в отношении конфигурации и загрузить дополнительные драйверы (программы управления периферийными устройствами).

Вслед за этим загружается интерпретатор команд. В стандартном варианте это файл СОММАND.COM.

Примечание

 

Благодаря использованию команды SHELL в файле CONFIG.SYS может быть загружен и другой интерпретатор команд, например 4DOS, однако эта возможность используется весьма редко. Если до сих пор все прошло гладко, то МS-DOS ищет файл по имени АUTОЕХЕС.ВАТ (англ. АИТО-ЕХЕСUТЕ — выполнять автоматически). В нем содержится подлежащая выполнению последовательность команд МS-DOS. Речь идет о командах, которые должны выполняться при каждом запуске компьютера.


 

Тема: Файл автозапуска АUTОЕХЕС.ВАТ

 

Установки, сделанные в файле CONFIG.SYS, сохраняют свое дей­ствие до следующего запуска системы, т.е. их нельзя изменить без перезагрузки компьютера. Большинство настроек, которые выполнены с помощью файла АUTОЕХЕС.ВАТ, можно изменять в пределах одного сеанса работы. Это обусловлено тем, что файл CONFIG.SYS модифици­рует/настраивает операционную систему, а в файле АUTОЕХЕС.ВАТ только вызывается по очереди любое число программ или команд.

 

Так как некоторые из программ управле­ния периферийными устройствами, например стандартный драйвер клавиатуры, можно загрузить через файл CONFIG.SYS с помощью команды INSTALL, то файл АUTОЕХЕС.ВАТ нужен лишь для автоматической загрузки оболочки пользователя, редактора командной строки (DOSKEY) или необходимых дополнитель­ных вспомогательных программ (например, программ защиты от виру­сов), При работе с кириллицей здесь также часто загружается кириллизованный драйвер клавиатуры.

 

В системах без встроенных часов текущую дату и время суток необходимо каждый раз заново вводить после каждого запуска системы. Команды DАТЕ и ТIМЕ приводят к тому, что на экране дисплея автоматически появляются два соответствующих запроса. (Если в файле CONFIG.SYS была предпринята соответствующая настройка (СОUNTRY=049), то запрос о дате и времени суток появляется в немецком варианте, т.е. последовательно день/месс/год.

 

Кроме этого, в файле АUTОЕХЕС.ВАТ обычно содержится и коман­да вида РROMPT $Р$С. Благодаря этой команде более информативным становится приглашение к вводу (РRОМPТ), т.е. сигнал готовности компьютера. Теперь это приглашение вместо индикации одного лишь имени текущего дисковода информирует Вас дополнительно и об имени активной в данный момент директории.

 

В файле АUTОЕХЕС.ВАТ можно размещать достаточно большое число команд, каждая из которых должна выполняться после каждого запуска системы.

 

Пример файла АUTОЕХЕС.ВАТ

 

@ECHO OFF

C:\DOS\SMARTDRV.EXE C D 912

PATH C:\DOS; D:\TOOLS; C:\DOS\BATCH

PROMT $P$G

SET TEMP=C:\

SET DIRCMD=/P

DOSKEY

CLS

Где:

@ECHO OFF Последующие команды не будут отображаться на экране
C:\DOS\SMARTDRV.EXE C D 912 Устанавливает размер кэша 912 Кбайт
PATH C:\DOS; D:\TOOLS; C:\DOS\BATCH Задает пути доступа к каталогам
PROMT $P$G Включает приглашение к вводу
SET TEMP=C:\ Устанавливает переменную для размещения временных файлов
SET DIRCMD=/P Позволяет не вводить каждый раз ключ Р
DOSKEY Устанавливает резидентную программу
CLS  

 

Тема: Создание системной дискеты

 

 

Так как основным видом блочных устройств являются магнитные и другие диски, то процесс форматирования и подготовки системной дискеты начнем с рассмотрения структуры диска.

 

 

 

Поверхность нового магнитного диска покрыта однородным слоем магнитного материала. У дискеты используется либо одна поверхность, либо (чаще) обе поверхности. Число поверхностей жесткого дискового тома определяется количеством дисков, из которых собран том.

Первой операцией, которая должна быть проделана с диском, является низкоуровневое форматирование. Оно заключается в разметке поверхности на дорожки магнитной записи, разделенные на секторы. Расстояние между дорожками определяется шагом перемещения головок чтения/записи, а разбиение на секторы выполняется программно, путем записи данных на дорожки в моменты, рассчитанные на основании известной скорости вращения диска. Для всех операций с диском, кроме низкоуровневого форматирования, сектор является минимальной единицей чтения или записи данных.

Совокупность дорожек одинакового радиуса на всех поверхностях диска называется цилиндром.

Форматирование дискеты используется для подготовки нового диска к использованию в среде DOS или для быстрого удаления с диска имеющихся файлов.

Форматирование – это разбиение дискеты на определенное количество концентрических окружностей – дорожек. Каждая дорожка разбивается на сектора.

Форматирование дискеты осуществляется с помощью команды FORMAT, содержащейся в файле format.exe.

Формат команды: FORMAT _дисковод:

Если в команде указать параметр /S, то будет подготовлена системная дискета, т.е. дискета, с которой можно загрузить MS DOS

Пример: format a: - форматирование диска a:

format a:/s – форматирование диска a с перенесением на него следующих файлов DOS: io.sys – модуль расширения BIOS, ms.sys – ядро DOS, command.com командный процессор, также и драйвер для обработки «сжатых» дисков – drvspase.bin или dblspase.bin

Если возникла необходимость в отмене форматирования дискеты, необходимо набрать команду Ctrl+C или Ctrl+Break.


Тема: Командные файлы

 

При загрузке операционной системы осуществляется ее настройка на работу с различными внешними устрой­ствами компьютера: дисководами, дисплеем, принтером, мышью и т. д. Процесс согласования работы ОС с устройствами компьютера называют конфигурировани­ем системы.

 

За конфигурирование системы отвечают системные файлы: IO.SYS, МSDOS.SYS, Comman.com, которые в основном выполняют стандартную настройку. Однако пользователям это бывает часто недостаточно, в связи с этим ими создаются специальные файлы СОNFIG.SYS и АUTOEХЕС.ВАТ, которые выполняются при загрузке МS DOS.

 

 

Файл СОNFIG.SYS представляет собой обычный тек­стовый файл, в котором непосредственно задаются:

ü режим прекращения работы прикладных программ;

ü число буферов в оперативной памяти, используемых при записи информации на диски в качестве промежу­точных хранителей информации;

ü количество одновременно открываемых файлов;

ü специальные программы драйверы для настройки на внешние устройства и т. д.

 

Пример 1.

Фрагмент содержания файла СОNFIG.SYS:

Вreak on — режим прекращения работы прикладных программ при

нажатии Сtrl+Break;

buffers =13 — количество буферов;

files = 28 — количество файлов;

 

device = c:\DOS\mouse.sys — подключение драйве­ра мыши mouse.sys.

 

Файл АUTOEХЕС.ВАТ называют командным фай­лом. Он содержит в основном команды MS DOS, кото­рые пользователь хотел бы выполнить сразу при загруз­ке, чтобы создать для себя удобную среду для работы.

В файле АUTOEХЕС.ВАТ задаются:

ü режим включения или выключения сообщений, кото­рые выдаются командами МS DOS, запускаемыми в файле;

ü вид приглашения в командной строке МS DOS;

ü команды МS DOS и др.

 

Пример 2.

Фрагмент содержания файла АUTOEХЕС. ВАТ:

@echo off — выключение режима выдачи сообщений;

promt $p$g — задание приглашения DOS-“>”:

nc — запуск Norton Commander


 

Тема: Установка MS DOS. Разбиение жесткого диска.

 

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

Для это го необходимо иметь:

ü версию MS DOS,

ü около 450 Кбайт ОЗУ,

ü как минимум 10 Мбайт свободного объема памяти винчестера (для полной инсталляции) или 4,5 Мбайт для минимальной.

Вначале как обычно запустите свой компьютер с винчестера, а затем с помощью команды

А: «Еnter»

перейдите на дисковод А:, в котором должна находиться инсталляцион­ная дискета (DISK 1).

Запустите процесс установки (инсталляции) с помощью команды SETUР «Еnter»

Вначале автоматически вызывается программа МSD, формирующая файл протокола обследования Вашего компьютера BEFSETUP.MSD, размещаемый в корневом директории диска С:. После завершения инсталляции просмотрите содержимое этого файла — и Вы узнаете о своем компьютере немало интересного: начиная от родословной и кончая конфигурацией памяти. По истечении некоторого времени на экране появится изображение-приветствие.

Особое внимание следует обратить на самую нижнюю строку, в которой содер­жится информация о назначении клавиш.

Примечание:

Если вдруг программа SETUР не запускается, тогда либо переименуйте с помощью команды RENAME файлы СОNFIG.SYS и АUTOEХЕС.ВАТ, нахо­дящиеся на том диске, с которого Вы запустили свой компьютер, либо скопируйте оба файла с помощью команды СОРУ на какую-либо дискету, а затем удалите исходные файлы. После этого запус­тите свой компьютер заново.

Возможно, что свободной памяти на диске С: слишком мало. В этом случае программа SETUР попросит Вас почистить его, указав, сколько свободного места ей необходимо.

Для выполнения инсталляции надлежит нажать «Еnter», для отказа от инсталляции — «FЗ», для получения справочной информации — «F1».