Программы DOS

Командный процессор DOS обрабатывает команды, вводимые пользователем. Командный процессор находится в дисковом файле COMMAND.СОМ на диске, с которого загружается ОС. Некоторые команды пользователя, например Type, Dir или Сор командный процессор выполняет сам. Такие команды называются внутренними.

Для выполнения остальных (внешних) команд пользователя командный процессор ищет на дисках прогр

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

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

Драйверы устройств — это специальные программы, которые дополняют систему ввода-вывода DOS и обеспечивают обслуживание новых или нестандартное использование имеющихся устройств. Например, с помощью драйверов возможна работа с «электронным диском» т.е. частью памяти компьютера, с которой можно работать так же, как с диском. Драйверы загружаются в память компьютера при загрузке операционной системы, их имена указываются в специальном файл CONFIG.SYS. Такая схема облегчает добавление новых устройств позволяет делать это, не затрагивая системные файлы DOS [5, c. 71].

Глава 2. Прикладные программы в среде DOS

2.1 Структура прикладных программ в среде DOS

Программы, которые выполняются под управлением системы МS DOS, делятся на два основных типа: программы с расширением .СОМ, которые имеют максимальный размер около 64 К, и программы с расширением .ЕХЕ, которые могут иметь размер наибольшей доступной памяти. На языке микропроцессора Intel 8086 это означает, что программы типа .СОМ соответствуют минимальной модели, в которой все регистры сегмента содержат одну и ту же величину, т.е. программа и данные объединены. В противоположность этому программы типа .ЕХЕ образуют малую, среднюю или большую модели, в которых регистры сегмента содержат различные величины, т.е. программа, данные и стек постоянно находятся в отдельных сегментах. Программы типа .ЕХЕ могут иметь много сегментов программ и данных, адресация к которым осуществляется при помощи длинных вызовов и манипуляций е регистром сегмента данных DOS [6, c. 29].

Программа типа .СОМ постоянно хранится на диске в виде абсолютного образа памяти в файле с расширением .СОМ. У файла отсутствуют заголовок или какая-либо другая внутренняя служебная информация. С другой стороны, программа типа .ЕХЕ постоянно находится на диске в файле специального типа, который имеет индивидуальный заголовок, карту настройки, контрольную сумму и другую информацию, используемую системой МS DOS.

Оба типа программ с расширением .СОМ и .ЕХЕ переносятся в память для выполнения с помощью одного и того же механизма, а именно функции ЕХЕС, которая образует загрузчик системы МS DOS. Функция ЕХЕС может вызываться с именем файла программы, загружаемой СОММАND.СОМ (обычным интерпретатором командной строки системы МS DOS) либо другой оболочкой, пользовательским интерфейсом или другой программой, которая была загружена раньше с помощью ЕХЕС. Если в области транзитных программ достаточно свободной памяти, то ЕХЕС выделяет блок памяти под новую программу, строит префикс сегмента программы (РSР) по его базовому адресу, а затем считывает программу в память непосредственно над РSР. В конце своей работы ЕХЕС устанавливает регистры сегмента и стека и передает управление программе.

После активизации программы ЕХЕС может выдавать адреса дополнительной информации, такой, как хвост команды, блоки управления файлами, контекстный блок. При необходимости эту информацию можно передавать другой программе [8. c. 35].

Программы с расширением .СОМ и .ЕХЕ часто называют транзитными программами. Транзитная программа на время своего выполнения "владеет" блоком выделенной ей памяти и имеет почти полный контроль над системными ресурсами. При завершении работы такой программы по любой причине - снятие операционной системой, успешное выполнение и выход в МS-DOS - выделенный ей блок памяти освобождается (отсюда термин "транзитный") и может быть использован следующей загружаемой программой.

2.2 Префикс программного сегмента

МS DOS отводит префиксу сегмента программы область в 256 байт в начале блока памяти, выделяемого транзитной программе. Префикс имеет несколько связей с МS DOS, которые могут использоваться транзитной программой; кроме того, определенную информацию записывает в него МS DOS как для собственных целей, так и для передачи транзитной программе, которая в случае необходимости может информацию использовать.

В префиксе по относительному адресу 0000Н находится команда передачи управления системному обработчику завершения процесса, который удаляет программу после ее выполнения и осуществляет окончательный выход. По относительному адресу 0005Н находится команда связи с диспетчером функций МS DOS, который осуществляет дисковые операции, операции ввода-вывода через консоль и другое сервисное обслуживание по запросу транзитной программы [7, c. 13].

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

Область префикса с адреса 000АН по адрес 0015Н предназначена для предыдущего содержимого векторов прерываний обработчиков завершения Сtг1-С и критической ошибки. Если транзитная программа изменит эти векторы для своих целей, то после ее завершения система DOS восстановит исходные значения векторов, сохраненные в префиксе. Слово префикса с относительным адресом 002СН хранит сегментный адрес блока окружения, в котором находится несколько АSCIIZ-строк (последовательности символов в коде АSCII, заканчивающиеся нулевым байтом). Блок окружения наследуется от программы, которая вызывала функцию ЕХЕС для загрузки выполняющейся в данный момент программы. В блоке находится такая информация, как текущий путь, используемый программами файла СОММАND.СОМ для поиска выполнимых программ, расположение на диске самого файла СОММАND.СОМ, формат запроса пользователя, который выдается СОММАND.СОМ. Хвост команды - это остаток командной строки (после имени программы), запустившей транзитную программу; хвост команды копируется в префикс, начиная с относительного адреса 0081Н. Длина хвоста команды, без учета символа возврата в конце строки, помещается в байт с относительным адресом 0080Н. Параметры перенаправления или конвейеризации и связанные с ними имена файлов не встречаются в той части командной строки (хвосте команды), которая передается транзитной программе, так как операция переназначения прозрачна для прикладных программ [1, c. 75].

Страница:  1  2  3  4  5  6 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы