- •Структурная схема пэвм
- •3. Внешние устройства пэвм
- •Архитектура локальных сетей
- •Краткая классификация лвс
- •Способ управления
- •Архитектура сети
- •Методы доступа в локальных вычислительных сетях
- •1.2. Защита локальной сети
- •9.1. Структура и принципы работы ms-dos
- •1.1. Основные компоненты операционной системы
- •Драйверы
- •Внешние команды
- •Подготовка системной дискеты
- •Программа fdisk
- •Резидентные программы
- •1.2. Процесс загрузки операционной системы
- •1.3. Состав и общая схема работы ms-dos
- •Файловая система
- •Работа с файлами
- •Работа с каталогами
- •Командная строка
- •1.4.1.3. Защита от компьютерных вирусов Компьютерные вирусы и их методы классификации
- •Признаки заражения пк вирусом
- •Краткая сводка рабочих клавиш Norton Comander
- •Меню norton commander
- •Использование манипулятора "Мышь"
- •Перемещение окна
- •Изменение размера окна
- •Закрытие окна
- •Переключение между окнами
- •Упорядочение окон при помощи привязки
- •Чтобы расположить окна рядом, выполните следующие действия.
- •Чтобы развернуть окно по вертикали, выполните следующие действия.
- •Чтобы полностью развернуть окно, выполните следующие действия.
- •Управление файлами и папками
- •Чтобы предоставить общий доступ к папке или диску
- •Чтобы включить теневые копии общих папок
- •Чтобы изменить параметры теневых копий общих папок
- •Сведения о функциональных различиях
- •23. Команды пересылки данных на языке ассемблер
- •Команды пересылки данных общего назначения
- •Команды ввода-вывода в порт
- •Команды работы с адресами и указателями памяти
- •Команды преобразования данных
- •Xlat [адрес_таблицы_перекодировки]
- •Команды работы со стеком
- •25. Команды передачи управления
- •Безусловные переходы
- •Команда безусловного перехода jmp
- •Процедуры
- •Условные переходы
- •Команда сравнения cmp
- •Команды условного перехода и флаги
- •Команды условного перехода и регистр ecx/cx
- •Организация циклов
- •26. Организация циклов
- •1.6. Система прерываний
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 бывают двух типов:
Внутренние команды, их выполняет командый процессор COMMAND.COM (например, dir, copy).
Внешние команды - программы, поставляемые вместе с ОС в виде отдельных файлов. Они размещаются на диске и выполняют действия обслуживающего характера (например, форматирование диска, очистка экрана, проверка диска).
Команды состоят из имени команды и, возможно, параметров, разделенных пробелами. Скобками будут отмечены необязательные элементы команд.