Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VSiS.docx
Скачиваний:
123
Добавлен:
31.03.2015
Размер:
404.2 Кб
Скачать

1.3. Состав и общая схема работы ms-dos

Для того чтобы правильно работать с системным программным и аппаратным обеспечением, вы должны понимать механизм взаимодействия прикладной программы с операционной системой MS-DOS и аппаратурой компьютера.

Как мы уже говорили, в идеальном случае программа MS-DOS обращается к портам аппаратуры компьютера при помощи многоступенчатой схемы, в которую входит базовая система ввода/вывода BIOS, драйверы и программные прерывания MS-DOS (рис. 1.1).

Рис.1.1. Схема взаимодействия программы с MS-DOS, BIOS и аппаратурой компьютера

Из рис. 1.1 видно, что программа MS-DOS может обращаться к ядру MS-DOS (вызывая программные прерывания MS-DOS), к базовой системе ввода/вывода BIOS, а также непосредственно к портам ввода/вывода аппаратуры. Однако программа не может непосредственно вызывать драйверы MS-DOS.

Ядро MS-DOS вызывает драйверы и прерывания BIOS, а также может работать с аппаратурой. В свою очередь, драйверы могут вызывать программные прерывания BIOS и работают с портами ввода/вывода.

Как правило, ядро MS-DOS разделяют на несколько систем, каждая из которых отвечает за выполнение той или иной задачи. Обычно выделяются следующие системы:

  • файловая;

  • управления памятью;

  • управления программами;

  • связи с драйверами устройств;

  • обработки ошибок;

  • службы времени;

  • ввода/вывода для консоли оператора.

Эти системы общаются с аппаратурой через прерывания BIOS, драйверы или напрямую. Прикладное программное обеспечение может вызывать системы MS-DOS, работать с BIOS или непосредственно с аппаратурой. Еще раз обращаем ваше внимание на то, что прикладные программы могут обращаться к драйверам только через соответствующую систему MS-DOS.

Рассмотрим системы MS-DOS отдельно.

Файловая система

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

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

Файловая система работает с дисками через драйверы. Драйверы, в свою очередь, пользуются сервисом BIOS.

На уровне BIOS выполняются элементарные операции с диском, такие как чтение/запись секторов, форматирование и т. п. Этот низкий уровень доступен и прикладной программе, но обычно она пользуется функциями прерывания MS-DOS, выполняющими все необходимые действия по обслуживанию каталогов и таблицы размещения файлов (File Allocation Table - FAT). Программы защиты от несанкционированного доступа или копирования вынуждены обращаться к средствам более низкого уровня, вызывая прерывания BIOS, или даже работать с контроллером диска через порты ввода/вывода.

10. В процессе создания любой программы можно выделить несколько этапов.

1. Постановка задачи — выполняется специалистом в предметной области на естественном языке (русском, английском и т. д.). Необходимо определить цель задачи, ее содержание и общий подход к решению. Возможно, что задача решается точно(аналитически), и без компьютера можно обойтись. Уже на этапе постановки надо учитывать эффективность алгоритма решения задачи на ЭВМ, ограничения, накладываемые аппаратным и программным обеспечением (АО и ПО).

2. Анализ задачи и моделирование — определяются исходные данные и результат, выявляются ограничения на их значения, выполняется формализованное описание задачи и построение (выбор) математической модели, пригодной для решения на компьютере.

3. Разработка или выбор алгоритма решения задачи — выполняется на осно­ве ее математического описания. Многие задачи можно решить различными способами. Программист должен выбрать оптимальное решение. Неточности в постановке, анализе задачи или разработке алгоритма могут привести к скрытой ошибке — программист получит неверный результат, считая его правильным.

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

5. Кодирование — запись алгоритма на языке программирования. Современные системы программирования позволяют ускорить процесс разработки программы, автоматически создавая часть ее текста, однако творческая работа по-прежнему лежит на программисте. Для успешной реализации целей проекта программисту необходимо использовать методы структурного программирования.

6. Отладка и тестирование программы. Под отладкой понимается устранение ошибок в программе. Тестирование позволяет вести их поиск и, в конечном счете, убедиться в том, что полностью отлаженная программа дает правильный результат. Для этого разрабатывается система тестов — специально подобранных контрольных примеров с такими наборами па­раметров, для которых решение задачи известно. Тестирование должно охватывать все возможные ветвления в программе, т. е. проверять все ее инструкции,и включать такие исходные данные, для которых решение невозможно. Проверка особых, исключительных ситуаций, необходима для анализа корректности. Например, программа должна отказать клиенту банка в просьбе выдать сумму, отсутствующую на его счете. В ответст­венных проектах большое внимание уделяется так называемой "защите от дурака" подразумевающей устойчивость программы к неумелому обращению пользователя. Использование специальных программ — отладчиков, которые позволяют выполнять программу по отдельным шагам, просматривая при этом значения переменных, значительно упрощает этот этап.

7. Анализ результатов — если программа выполняет моделирование какого-либо известного процесса, следует сопоставить результаты вычислений с результатами наблюдений. В случае существенного расхождения необ­ходимо изменить модель.

8. Публикация результатов работы, передача заказчику для эксплуатации.

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

Программные модули

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

Модули должны использовать мнемонические имена для определяемых ими объектов, что облегчает понимание их назначения и запоминание, удовлетворяет требованию наглядности программ.

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

Модули, приводимые в данном учебнике, ориентированы на некоторый вид работ (алгоритмов) или обработку типичных объектов.

К ним относятся модули:

Inputs - содержит подпрограммы контролируемого ввода данных разных типов; Files - содержит вспомогательные операции для работ с файлами.

 

Состав и структура модуля

Модуль в системе Турбо Паскаль состоит из нескольких следующих друг за другом частей:

-           заголовок модуля, -           интерфейсная часть (секция межпрограммного интерфейса), -           реализационная часть (секция реализации), -           инициализационная часть.

Ниже приведена схема структуры модуля с комментариями относительно состава и назначения каждой части:

unit {заголовок модуля) <имя модуля>; uses <перечень модулей, объекты которых используются в секция межпрограммного интерфейса>; interface {секция межпрограммного интерфейса} <Спецификация (объявление) экспортируемых объектов модуля, т.е. доступных (видимых) использующим его модулям и программам> implementation {секция реализации экспортируемых функций и процедур} Описание локальных объектов модуля, используемых в последующих описаниях экспортируемых функций и процедур модуля> <Описание указанных в секции интерфейса экспортируемых функций и проце- дур> begin {секция инициализации) <операторы, исполняемые при вызове модуля> end.

Именем модуля может быть идентификатор содержащий не более 8 символов. Ограничение на длину объясняется тем, что имя файла, в который модуль будет записан при компиляции, совпадает с именем этого модуля.

Интерфейсная часть модуля содержит всю информацию, необходимую для использования экспортируемых им объектов. Спецификация констант, типов и переменных имеет тот же вид что и описания объектов подобного вида в программе, а спецификация функций и процедур имеет вид заголовков функций и процедур. Реализационная часть содержит полное описание этих функций и процедур. Пользователю объектов модуля, как правило, не нужно разбираться в этих описаниях.

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

В качестве примера рассмотрим следующий фрагмент пользовательского модуля.

unit Inputs; {модуль содержит ряд модификаций операции ввода данных разных типов, которые в целях надежности программы выполняют: а)         запрос значения данного с подсказкой его имени или назначения, б)         контроль правильности представления значения рассматриваемого типа в)         контроль задания значения в допустимом диапазоне, г)         программное сообщение о неправильном значении, д)         повторный запрос значения.} {------секция интерфейса------} interface procedure InputInt(var р: integer);  {ввод integer с контролем} procedure inputNamlnt(s: string; var p: integer); {ввод integer с указанием имени и контролем} procedure InputNamReal(s:string; var p: real); {ввод real с указанием имени и контролем} procedure InpNamlntCont(s:string; var p; integer; nl, n2: integer);  {ввод integer с указанием имени и в интервале [nl, п2]} procedure InpNamRealCont(s: string; var p: real; nl, n2: real);  {ввод real с указанием имени и в интервале [nl, п2]} procedure InpRealCont(var р: real; nl, n2: real); {ввод real с контролем в интервале [nl, п2]} {------секция реализации-------}

implementation {------в этой секции описываются указанные выше процедуры------} (------здесь их описание не приводится------} {------секция инициализации------}             begin end. {Unit Inputs}

 11. Команды MS DOS бывают двух типов:

  1. Внутренние команды, их выполняет командый процессор COMMAND.COM (например, dir, copy).

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

Команды состоят из имени команды и, возможно, параметров, разделенных пробелами. Скобками будут отмечены необязательные элементы команд.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]