Организация диалога с оператором в системах DOS

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

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

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

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

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

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

Асинхронные оказываются весьма полезными для обеспечения возможности вмешательства в ход выполнения команд, заданных в синхронном режиме (к ним относятся такие функции, как перезагрузка ОС. остановка экрана и т.п.), или для запуска параллельных процессов (например, вывод твердой копии экрана, запуск эхо-печати и т.д.). В DOS существуют также вспомогательные команды- функции редактирования командной строки, реализующиеся с помощью набора функциональных клавиш общего назначения (клавиши Fl - F5), а также специальных клавиш BACKSPACE, DEL, ESC и др. Дополнительное преимущество асинхронных команд - их независимость от состояния большей части резидента ОС.

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

Процесс взаимодействия оператора с интерпретатором командной строки ОС можно представить в виде совокупности элементарных шагов диалога. Процесс - зацикленный. Выход из цикла происходит при выключении питания компьютера, но.шикпонсиии прерывания от внешнего устройства или сбойной ситуации, повлекшей зависание системы. После загрузки система выдает подсказку на экран дисплея и ожидает ввода очередной команды с клавиатуры. Структура подсказки DOS изменяема (см. описание команды PROMPT в БИТ-2)*, но чаще всего она имеет вид

Вводятся и интерпретируются команды оператора с помощью комплекса программ, называемого интерпретатором командной строки. Ядро интерпретатора - файл COMMAND.COM, содержащий программу анализа командной строки и набор подпрограмм, реализующих внутренние команды DOS. Загрузчик программных модулей (задач) - реализация внутренней команды, принятой в качестве команды по умолчанию (в большинстве ОС она называется RUN).

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


Обсудить вопрос в студенческом форуме

 

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