Разделение команд DOS на внутренние и внешние

При разбиении всего набора команд интерпретатора командной строки на внутренние и внешние (по отношению к командному процессору COMMAND.COM) возникает противоречивая задача. Признак окончания процесса ввода команды оператором - нажатие клавиши (ввод).

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

Для понимания логики образо вания классов внутренних и внешних команд проанализируем их различия:

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

- обращение к внешней команде требует дополнительных операций обмена с магнитным диском, что в некоторых случаях существенно увеличивает время ее выполнения;

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

- команда применяется наиболее часто (например, DIR);

- при использовании команды неудобно указывать диск и маршрут каталога, в котором находится файл загрузочного модуля, интерпретирующего эту команду (например, CHDIR);

- программа, интерпретирующая команду, занимает незначительный объем оперативной памяти (например, VOL или VER) или в большой степени использует внутренние подпрограммы ОС, т.е. оригинальная часть программы также занимает незначительный объем оперативной памяти (например, TYPE). Кроме того, при выборе варианта реализации команды играют роль соображения наиболее "бескровной" модификации, так как легче добавить в систему новый автономный файл, чем модифицировать уже существующий программный модуль.


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

 

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