Реклама



  • Командный процессор

     

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

    В первый момент после включения питания "интеллектуальность" IBM PC невысока: возможно и имеется большой потенциал, но способностей хоть как-то реализовать его немного. В постоянной памяти ЭВМ хранятся программы тестирования компонентов системы - POST (Power=On Self=Test - самопроверка при включении) и установки в начальное состояние устройств ввода-вывода. Остальная часть записанной в ПЗУ базовой системы ввода-вывода BIOS (Basic Input Output System) предоставляет программисту, работающему с языком ассемблера, набор средств, которые помогают ему обращаться к аппаратным средствам, не беспокоясь о том, как технически они реализованы. Но этого не достаточно, чтобы обеспечить среду для выполнения серьезных прикладных программ.

    Последнее является функцией DOS. После установки ЭВМ в начальное состояние программа POST выполныет загрузку DOS с диска или дискеты в оперативную память. Этот процесс называется загрузкой системы. Первое, что делает DOS, - загружает минимальную программу, необходимую для загрузки остальной части DOS. По окончании процесса загрузки на дисплей выводтися название операционной системы и указание на авторские права. Помимо всего прочего в названии указан номер соответствующей версии операционной системы. Иногда этот номер играет важную роль, так как каждая новая версия означает дополнительные функциональные возможности операционной системы. После операции загрузки система готова к приему команд от оператора (за исключением специального случая, о котором будет сказано ниже). На этом этапе управление передается командному процессору - DOS произвела загрузку в память командного процессора, файловой системы и других служебных программ, и все они готовы выполнять свои функции. Передача управления командному процессору индицируется им следующим запросом к оператору

    A>

    Этот запрос содержит двоякий смысл. Символ ">" означает готовность командного процессора к приему команды. Префикс "A" указывает на выбранный по умолчанию дисковод с гибким диском. Так как DOS может обрабатывать файлы, расположенные только на каком-то одном диске, то в случае одновременной работы с несколькими дисками или дискетами пользователь должен указать, к какому из дисководов следует обратиться системе. В персональной ЭВМ дисководы обозначаются буквами латинского алфавита. У вычислительной системы с двумя накопителями на гибких дисках имеется дисковод A: и дисковод B. Жесткий диск обычно обозначается C: (После наименования дисковода следует двоеточие.) Обычно файлы, используемые системой DOS, считываются с дисковода, выбранного системой по умолчанию, если только оператор не изменит этот порядок. Для того чтобы считать файл с выбранного по умолчанию дисковода, системе требуется только имя этого файла. Для считывания файла с любого другого дисковода нужно кроме имени файла указать DOS наименование дисковода.

    Только в ответ на команды, которые поступают от пользователя DOS выполняет какие-то действия. Все команды, относящиеся к DOS, вводятся в ответ на запрос с ее стороны, индицируемый символом ">". Пользователь вводит имя нужной ему команды, после чего поступившая заявка обрабатывается командным процессором. Как он обрабатывает эту заявку, зависит от команды, которую ввел пользователь. Имеются встроенные, или резидентные команды, которые всегда доступны. Либо команда может инициировать нерезидентное, или транзитное выполнение. Для выполнения таких команд должен существовать определенный файл на диске.

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

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

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

    Но не каждый файл может быть загружен с помощью командного процессора. Тип файла должен быть либо. COM, либо. EXE, что соответствует либо файлу команды, либо выполняемому файлу. Конечным продуктом выполнения операций ассемблирования и редактирования связей является файл типа. EXE. Отсюда вытекает возможность написания собственной системной команды. Если написали, странслировали и скомпоновали программу на языке ассемблера, а затем оставили эту программу на дискете, то ее можно загружать и выполнять так же, как и любую другую программу DOS. Именно это позволяет писать программы, которые будут выполняться под управлением DOS.

    Существуют различия между файлами типа. COM и типа. EXE. Они имеют различные структуры и управление им передается по-разному. Хотя обычно после этапа редактирования связей получаются файлы типа. EXE, существуют некоторые причины для использования и файлов типа. COM. В следующем разделе будут обсуждаться различия между типами файлов и тем, как преобразовывать файл типа. EXE в файл типа. COM.

    Рассмотрим теперь пример вызова программы. Хорошей иллюстрацией здесь может служить ассемблер. Чтобы вызвать ассемблер, нужно ввести команду

    A>ASM

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

    A>B:ASM

    Префикс B: указывает DOS, что файл находится на дискете в дисководе B. Файл полностью определяется не только указанием его имени, но и дисковода, с которого он будет считан. Одного имени файла достаточно только при считывании файла с дисковода, выбранного по умолчанию. Для того чтобы оттранслировать файл, расположенный на носителе в дисководе B: с помощью ассемблера, который находится на дискете в дисководе A. нужно ввести следующую команду:

    A>ASM B:FILE. ASM

    В этой команде одновременно задаются программы ASM, считываемые с дисковода, который выбран по умолчанию, и исходный файл FILE. ASM, считываемый с дисковода B:.

    Это можно сделать и другим способом: задать команду B. которая предписывает DOS сделать дисководом, выбираемым по умолчанию, дисковод B:.

    A>B:

    B>A:ASM FILE. ASM

    Заметьте, что после этого запрос со стороны системы меняется на B>. Приведенная в этом примере команда по своему действию полностью идентична команде из предыдущего примера.

    Кроме того, интерпретатор командных строк может работать с файлом, называемом файлом с пакетом команд, с расширением имени. BAT. Этот тип файла совершенно отличен от файлов типа. COM и типа. EXE. Файл типа. BAT не содержит выполняемого машинного кода, а состоит из нетранслированных команд, которые интерпретируются командным процессором. Все содержащиеся в этом файле команды выполняются DOS по очереди. Можно считать, что файл типа. BAT заменяет процедуру ввода команд с клавиатуры, так как они содержатся непосредственно в соответствующем файле. После того, как система закончила обработку пакетного файла, она обращается за следующей командой к клавиатуре. Все эти особенности делают файл типа. BAT удобным средством выполнения повторяющихся заданий. После того, как такой файл уже создан, единственная команда обращения к нему заменяет ввод всех содержащихся в нем команд.

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

     



  • На главную