Лекция N 14 Общие принципы функционирования операционной системы MS DOS

 

В настоящее время одной из наиболее распространенной ОС является однопользовательская и однозадачная MS DOS, используемая в ЭВМ с ЦП 8086 или 80х86, где х > 1. Рассмотрим основные принципы построения этой ОС.

Перечислим основные модули, входящие в состав MS DOS и расположенные в момент загрузки этой ОС на гибком или жестком диске:

1. блок начальной загрузки (Boot Record);

2. модуль расширения базовой системы ввода-вывода (io.sys);

3. модуль обработки прерываний (msdos.sys);

4. командный процессор (command.com);

5. утилиты DOS (format.com, chkdsk.com и др.).

Кроме того, к модулям, входящим в состав MS DOS, можно также отнести еще 3 модуля. Первым из них является модуль базовой системы ввода-вывода (basic input/output system, сокращенно BIOS). Хотя этот модуль формально не входит в состав MS DOS и располагается не в дисковой памяти, а в микросхеме постоянного запоминающего устройства, поставляемой в составе ЭВМ, но выполняемые им функции являются прерогативой ОС. Двумя другими модулями являются файл автозапуска (autoexec.bat) и файл конфигурации (config.sys).

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

1. Модуль BIOS.

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

Второй важной функцией модуля BIOS, начинающей выполняться после окончания тестирования, является организация начальной загрузки MS DOS, в том числе формирование начальной части таблицы векторов прерываний для номеров 0 Ў 31. Поскольку эта ОС является достаточно большой программой, состоящей из нескольких модулей, загрузка ее в ОП происходит в две ступени: сначала BIOS загружает с системного диска специальный блок начальной загрузки, а затем уже передает на него управление, и тот, в свою очередь, осуществляет загрузку других модулей ОС. В качестве системного диска может использоваться как гибкий, так и жесткий диск. В настоящее время гибкий диск обычно используется только для первоначальной установки ОС на ЭВМ, а загрузка ОС при последующих включениях ЭВМ производится с жесткого диска.

Третьей важной функцией модуля BIOS является обработка прерываний с номерами 0 Ў 31. Эта функция реализуется с помощью специальных программ, жестко реализованных в рассматриваемом модуле.

2. Блок начальной загрузки (БНЗ)

БНЗ - это небольшая программа, единственная функция которой заключается в считывании с диска в ОП двух других частей ОС – модуля расширения базовой системы ввода-вывода и модуля обработки прерываний (io.sys и msdos.sys соответственно). Сам БНЗ размещается на системном диске всегда на одном и том же месте - на нулевой стороне, в 1-м секторе дорожки 00. Длина БНЗ составляет всего 512 байт, т.е. содержащаяся в нем программа является достаточно простой. Поэтому дальнейшая загрузка MS DOS производится с помощью других модулей этой ОС, функции которых будут описаны далее. После окончания своих действий по загрузке ОС управление от БНЗ передается модулю расширения базовой системы ввода-вывода (МР BIOS).

3. Модуль расширения базовой системы ввода-вывода

Рассмотрим сначала те функции, которые возлагаются на МР BIOS в в процессе загрузки MS DOS. Этот модуль обрабатывает специальный текстовый файл конфигурации config.sys, в результате чего загружаются и подключаются новые драйверы внешних устройств и производится подстройка прерываний и других параметров ОС в соответствии с заданными в файле config.sys командами конфигурирования. Затем управление передается на загруженный в ОП к этому моменту модуль обработки прерываний, в котором устанавливаются внутренние рабочие таблицы, инициируются векторы прерываний с номерами 32 и более и производится подготовка к загрузке командного процессора, находящегося пока на системном диске.

После этого управление возвращается в МР BIOS, который производит загрузку резидентной части командного процессора с диска в ОП и передает ему управление. На этом работа МР BIOS по загрузке ОС завершается.

Основная функция МР BIOS, реализуемая в процессе выполнения программ пользователя под управлением MS DOS, заключается в расширении набора обработчиков прерываний, содержащихся в BIOS, путем подключения нового обработчика, например, с помощью замены вектора прерываний, указанного в таблице векторов прерываний для соответствующего номера в диапазоне от 0 до 31, на новый вектор. Это придает гибкость ОС, давая возможность пользователю учитывать конфигурацию ЭВМ, на которой он работает.

4. Модуль обработки прерываний (МОП)

В отличие от описанных выше модуля BIOS и МР BIOS, имеющих дело с так называемыми прерываниями нижнего уровня, которым соответствуют номера прерываний 0 Ў 31, МОП образует верхний уровень системы, с которым взаимодействует большинство прикладных программ. Этот файл является набором программ-обработчиков прерываний с номерами от 32 и выше, в частности прерывания с номером 33, используемого для выполнения нескольких десятков самых разнообразных функций. Все эти функции вызываются программным путем из программ пользователей.

5. Командный процессор (КП)

Отметим сначала, что модуль КП в процессе загрузки ОС исполняет так называемый файл автозапуска autoexec.bat, создавая для пользователя удобную среду общения с ЭВМ; на этом процесс загрузки MS DOS завершается. В итоге общая последовательность действий, происходящих при начальном пуске ЭВМ и загрузке MS DOS, может быть представлена в виде, изображенном на рис.1. В случае, если возникает необходимость перезапуска MS DOS, это можно выполнить двумя способами. При первом из них, так называемом холодном способе, выключают и снова включают электропитание ЭВМ; очевидным недостатком способа является дополнительное воздействие еще одного броска электрического напряжения на аппаратуру ЭВМ. Другой, так называемый теплый способ, реализуется при нажатии на кнопку "reset", если таковая имеется на передней панели процессорного блока, или, при отсутствии таковой, одновременным нажатием клавиш Ctrl, Alt и Del на клавиатуре ЭВМ; в этом случае электропитание ЭВМ не выключается, а организуется программная передача управления к той части BIOS, которая производит загрузку БНЗ, т.е. тестирование аппаратуры ЭВМ с помощью BIOS не производится, а сразу начинается процесс загрузки MS DOS.

 

Рис.1. Последовательность действий при начальном пуске ЭВМ и загрузке MS DOS

 

Рассмотрим теперь остальные основные функции КП, содержащегося в файле command.com, которые заключаются в следующем:

1. Прием и разбор команд, полученных с клавиатуры или из командного файла.

2. Исполнение встроенных команд MS DOS, находящихся внутри файла command.com.

3. Загрузка и исполнение внешних команд ОС и прикладных программ, находящихся в исполняемых файлах с расширением com и exe. Запуск прикладной программы производится также, как обращение к внешней команде ОС (утилите), поскольку те и другие реализованы одинаково; КП не отличает их друг от друга. Когда КП в качестве команды ОС встречает имя файла, не совпадающее с именами встроенных команд, производится анализ типа этого файла, указанного в каталоге. Файлы типа COM и ЕХЕ считаются загрузочными и обрабатываются соответствующим образом, а файл типа ВАТ трактуется как командный. В этом случае КП начинает читать и интерпретировать содержащиеся в нем строки, каждая из которых может содержать одну команду, метку или комментарий. Если в очередной строке стоит команда, осуществляющая вызов некоторой программы, то интерпретация командного файла приостанавливается и начинается работа вызванной программы. После ее завершения управление возвращается КП. КП состоит из двух частей. Первая из них, резидентная, загружается в ОП в процессе начальной загрузки ОС. Эта часть содержит следующие составляющие:

подпрограммы стандартной обработки прерываний с десятичными номерами 34 Ў 36;

программу подзагрузки нерезидентной части КП в ОП;

подпрограмму инициализации, которая при начальной загрузке ОС обрабатывает файл autoexec.bat.

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

6. Утилиты MS DOS

Утилитами обычно называют внешние команды (программы), входящие в стандартный комплект MS DOS в виде отдельных загрузочных файлов и выполняющих сервисные функции. В эту ОС входит более десятка утилит, предназначенных для разных целей. При практической работе наиболее часто используются лишь некоторые из них - format.com для форматирования дисков, print.com для вывода на печать и т.д. Достоинством MS DOS является то обстоятельство, что любая программа может играть роль сервисной наравне со стандартными утилитами, поскольку ее запуск не отличается от вызова утилит ОС.

7. Файл config.sys

Файл config.sys представляет собой текстовый файл, предназначенный для определения конфигурации MS DOS, а также для загрузки драйверов и резидентных программ. Он создается автоматически программой установки MS DOS и затем при необходимости редактируется пользователем. Для редактирования файла можно использовать текстовый редактор edit, который входит в состав MS DOS.

С помощью файла конфигурации можно расширять ОС и изменять некоторые параметры, влияющие на работу внешних устройств (ВУ). Одно из важнейших свойств этой ОС состоит в возможности добавления новых ВУ и подключения новых специальных программ, обеспечивающих управление их работой. Эти программы, называемые драйверами ВУ, можно включить в систему, перечислив их в файле config.sys с помощью команды device, например, строка device=с:sysmouse.sys означает, что должен быть подключен драйвер манипулятора "мышь", находящийся в файле mouse.sys на диске С в каталоге SYS.

Помимо этого в файле конфигурации с помощью строки

files=12

можно указать, сколько файлов в системе может быть открыто одновременно (в данном примере 12), задать количество буферов с внешними накопителями с помощью строки

buffers=30

(в данном случае число буферов равно 30), а также задать некоторые другие параметры.

8. Файл autoexec.bat

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

Резидентные программы

 

Обычные программы MS DOS удаляются из ОП сразу после своего завершения. В отличие от них резидентные программы (РП) остаются в памяти и могут быть активизированы в процессе исполнения другой пользовательской программы или в то время, когда ЦП находится в состоянии ожидания. Такие программы называют еще TSR-программами (Terminate and Stay Resident). Активизация РП осуществляется при нажатии заранее заданной комбинации клавиш, по инициативе другой программы либо в результате выполнения аппаратного прерывания, например, от таймера. Для того, чтобы оставить себя резидентной в ОП, программа может использовать соответствующие прерывания MS DOS. РП могут использоваться для различных целей, например:

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

ü для использования РП в качестве так называемой оболочки, контролирующей работу MS DOS, например, при использовании на ЭВМ, подключенной к локальной вычислительной сети в качестве рабочей станции, оболочки сетевой ОС NetWare версий 3.х и выше.

 

Проблема реентерабельности MS DOS

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

Аналогичные затруднения могут иметь место при повторном вызове функций BIOS, так как далеко не все они реентерабельны. Те же затруднения могут возникнуть и при использовании программ, написанных на языке высокого уровня (ЯВУ), так как программы библиотек этого ЯВУ могут содержать вызовы функций MS DOS и BIOS.