
- •1 Цель курсового проектирования
- •2 Структура курсовой работы
- •3 Задание на курсовую работу.
- •4 Основные разделы пояснительной записки.
- •4.1 Введение
- •4.2 Техническое задание
- •4.3 Этапы разработки программы
- •4.3.1 Разработка макета ядра функций дос
- •4.3.2 Разработка структуры данных и алгоритма функции операционной системы в соответствии с индивидуальным заданием.
- •4.4 Заключение
- •4.5 Список использованных источников
- •5 Список литературы
- •6 Приложение
- •6.1 Варианты индивидуальных заданий на кр:
4.3 Этапы разработки программы
Согласно принятой модели, разработка включает следующие основные этапы :
Разработка и описание макета ядра функций ДОС как совокупности диспетчера функций и множества конкретных функций операционной системы. Осуществляется на основе изучения структуры и внутренней организации данных в ДОС.
Разработка структуры данных и алгоритма функции операционной системы в соответствии с индивидуальным заданием. позволяющей обеспечить требуемые технические характеристики с учётом существующих ограничений.
4.3.1 Разработка макета ядра функций дос
Для того чтобы правильно работать с системным программным и аппаратным обеспечением, нужно четко представлять себе механизм взаимодействия прикладной программы с компьютером. На рис. 1.1 показаны функциональные связи программы с программно-аппаратным обеспечением IBM PC.
Рис.1. Функциональные связи программы для MS-DOS с программно-аппаратным обеспечением ПЭВМ
Ядро функций DOS – это резидентная программа, которая содержит в себе диспетчер функций и библиотеку функций. Связь прикладных программ с ядром осуществляется через программные прерывания.
Диспетчер – таблица из 256 слов, в каждом поле которой содержится короткий адрес одной из функций. Диспетчер нужен для того, чтобы можно было вызывать много функций через 1 вектор прерывания. Все функции прерывания вызываются через 1 вектор прерывания Int 21h.
Функции прерывания INT 21h можно разделить на следующие группы:
получение системной информации;
символьный ввод/вывод;
работа с файловой системой;
управление программами;
управление памятью;
связь с драйверами устройств;
прочий системный сервис.
Полностью информация об использовании функций прерывания DOS INT 21h (и других прерываний DOS) приведена в [2].
Номер функции задается при вызове прерывания INT 21h в регистре AH.
Когда программа обращается к DOS для выполнения какой-либо операции, она должна вызвать соответствующее прерывание, загрузив перед вызовом прерывания все необходимые операнды в регистры процессора. Если выполнение операции невозможно по каким-то причинам (неправильные операнды, устройство неработоспособно, запрашиваемая операция не поддерживается текущей версией DOS и т.д.), то для большинства функций DOS устанавливается признак ошибки - флаг переноса CARRY. Для DOS версии 2.0 и более поздних версий регистр AX при этом содержит код ошибки.
Приведем коды ошибок, возвращаемые программе через регистр AX:
1 Неправильный код функции
2 Файл не найден
3 Путь не найден
4 Слишком много открытых файлов
5 Доступ запрещен
6 Неправильный идентификатор файла
7 Разрушен блок управления памятью
8 Недостаточно памяти
9 Неправильный адрес блока памяти
10 Неправильная среда
11 Неправильный формат
12 Неправильный код доступа
13 Неправильные данные
14 Зарезервировано
15 Ошибка при указании дисковода
16 Невозможно удалить текущий каталог
17 Другое устройство
18 Больше нет подходящих файлов
Если прикладная программа составлена на языке ассемблера, то после обращения к DOS через прерывание следует проверить состояние флага переноса:
int 21h
jc error
Программы, составленные на языке Си, обращаются к прерываниям DOS обычно с помощью таких функций, как intdos, int86, intdosx и т.д. Для передачи параметров используются структуры REGS, WORDREGS, BYTEREGS, SREGS.
Рекомендуемая структура ядра функций приведена на рис.2
Рис.2 Структурная схема ядра функций