на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Курсовая работа: Разработка вспомогательной системной программы в системе программирования Delphi с использованием средств WinApi


Курсовая работа: Разработка вспомогательной системной программы в системе программирования Delphi с использованием средств WinApi

Министерство образования и науки Российской Федерации

Государственное образовательное учреждение высшего профессионального образования

РЯЗАНСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра ЭВМ

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ

по дисциплине “Операционные системы”

по теме “Разработка вспомогательной системной программы в системе программирования Delphi с использованием средств WinApi”

Выполнил студент группы 742

Шипилов Д.А.

Руководитель Доц. Каф. ЭВМ

Засорин С.В.

 

 

 

 

 

Рязань 2010


Содержание

Введение

1. Техническое задание

1.1 Основания для разработки программы

1.2 Назначение разработки

1.3 Требования к программам

1.4 Требования к надежности

1.5 Требования к программной документации

1.6 Текст задания по варианту

2. Описания разработанных программ

2.1 Общие сведения

2.2 Функциональное назначение

2.3 Описание логической структуры

2.3.1 Логическая структура программы

2.3.2 Логическая структура справочной системы

2.3.3 Создание программы-инсталлятора

2.4 Используемые технические средства

2.5 Вызов и загрузка

2.6 Входные данные

2.7 Выходные данные

3. Программа и методика испытаний

3.1 Объект испытаний

3.2 Цель испытаний

3.3 Требования к программе

3.4 Требования к программной документации

3.5 Средства и порядок испытаний

3.6 Методы испытаний

3.6.1 Тестирование программы методом белого ящика

3.6.2 Тестирование программы методом чёрного ящика

4. Эксплуатационные документы

4.1 Руководство программиста

4.1.1 Общие сведения о программе

4.1.2 Структура программ

4.1.3 Проверка программ

4.1.4 Дополнительные возможности

4.1.5 Сообщения системному программисту

4.2. Руководство оператора (пользователя)

4.2.1 Назначение и условия применения программ

4.2.2 Обращение к программам для запуска

4.2.3 Входные и выходные данные

4.2.4 Сообщения оператору

Приложение

Список литературы


Введение

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


1. Техническое задание

1.1 Основания для разработки программы

Основанием для разработки программы являлось задание для курсового проекта (вариант 21).

Содержание задания:

Разработать многопоточное приложение, выполняющее различные операции:

1)Обмен данными между двумя процессами с помощью файла проецируемого в память.

2)Анализ содержимого служебной области системного диска.

 

1.2 Назначение разработки

Программа служит для обмена текстовыми сообщениями между копиями этой программы, а также для анализа активных носителей, присутствующих в системе. Конкретно, происходит анализ блока параметров BIOS выбранного логического диска на носителе, и считывание и анализ таблицы разделов этого носителя.

 

1.3 Требования к программам

Приложение должно удовлетворять следующим требованиям:

1)  Обеспечивать указание данных для обмена в одном из процессов

2)  Выполнять чтение и анализ содержимого служебной области, расшифровку её содержимого и представление результатов в виде таблицы на устройство стандартного вывода или в файле.

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

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

1.4 Требования к надежности

Программа должна выдавать сообщения об ошибках в следующих случаях:

1)Если не удалось создать проекцию файла

2)Не удалось синхронизировать приложение с другими копиями приложения

3)Не удалось осуществить обмен данными

4) Если не введено имя при регистрации пользователя в системе

1.5 Требования к программной документации

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

1.6 Текст задания по варианту

Разработать многопоточное приложение, выполняющее операции.

1)Обмен данными между двумя процессами с помощью файлов проецируемых в память.

2)Анализ содержимого служебной области системного диска.

Исходные данные:

Для выполнения первой операции использовать прикладные программы типа простых текстовых редакторов или графических редакторов.

Имя системного диска.

Полное имя файла для вывода результатов.

Технические требования и условия:

Приложение должно выполнять следующие операции:

Обеспечивать возможность указывать данные для обмена в одном из процессов.

Выполнять чтение и анализ служебной области , расшифровку её содержимого и представление результатов в виде таблицы на устройстве стандартного вывода или в файле.


2. Описания разработанных программ

2.1 Общие сведения

Для выполнения программы необходима ОS Windows 9x/2000/XP, а также более поздние модели такие как Windovs Vista или Windows7/

Программы написаны на языке программирования Object Pascal в среде разработки Delphi 7.

2.2 Функциональное назначение

Программа предназначена для обмена данными между пользователями, работающими на одной вычислительной системе под ос Windows на разных терминалах. Также программа осуществляет анализ служебной области системного диска (Partition Table носителя и блока параметров Bios логического диска того же носителя )

2.3 Описание логической структуры

2.3.1 Логическая структура программы

Этап1

Работа программы начинается с запуска приложения OffClient.exe. Перед переходом на главную форму программы появляется окно регистрации (рисунок 1.).


Рисунок 1. Окно регистрации в программе.

На этом этапе возможно наступление следующих событий :

1) «Событие1» – Кнопка «Войти»;

2) «Событие2» – Кнопка «Закрыть»;

Алгоритмы обработчиков событий этой формы.

Глобальные переменные:

Form2: TForm2 – переменная класса формы, отвечающая за её состояние

formClose:boolean – булевская переменная отвечающая за проверку разрешения закрытия формы.

Также есть возможность обращаться к объекту TForm1 через подключение к модулю этой формы модуля главной формы (в рабочем каталоге приложения главный модуль имеет имя «Unit1»).

1)  Описание события «Событие1»:

Выполнение обработчика начинается при нажатии кнопки «Войти».

Для успешного выполнения обработчика события «Событие1» необходимо ввести псевдоним в соответствующее поле. После нажатия на кнопку «войти» происходит проверка поля ввода псевдонима, если поле пустое , то выводится сообщение о том, что необходимо ввести псевдоним, если поле псевдонима не пустое, то специальной переменной булевского типа, которая сигнализирует о том, что форма регистрации может быть закрыта присваивается значение TRUE. После этого, происходить передача псевдонима в основную форму программы. Очистка поля Memo1 на главной форме программы. Далее происходит вызов процедуры из главного модуля программы WriteDatainMMF для оповещения других пользователей о том что подключился новый пользователь. Далее происходит закрытие данной формы и переход к основной форме программы.

Алгоритм обработки данного события представлен на схеме – (блок схема1)

Блок схема 1 Алгоритм обработки события «Событие 1»

Данный алгоритм реализует процедуру регистрации пользователя в системе под определённым именем «NICKNAME», которое он вводит в поле псевдонима. При этом программа оповещает других пользователей, которые уже зарегистрированы, о подключении ещё одного пользователя с именем «NICKNAME». После регистрации каждое отправленное сообщение будет маркировано как сообщение от определённого пользователя с именем «NICKNAME».

2)  Описание события «Событие2»:

Выполнение обработчика события начинается при нажатии кнопки «Закрыть».

Алгоритм выполнения обработчика представлен на схеме «блок схема 2».


Этап 2

На этом этапе происходит переход к главной форме приложения(рисунок2). и происходит обмен сообщениями помощью файла , проецируемого в память. Также на этой форме имеются кнопки для перехода к окну информации о системных носителях. Это сделано исходя из задания на курсовой проект

Рисунок2. Форма основного приложения.(программно Form2).

На этом этапе возможны следующие события:

1)  «Событие1» при на жатии на кнопку «ОТПРАВИТЬ»

2)  «Событие2»при нажатии кнопку «Отсоединиться»

3)  «Событие3» при нажатии на кнопку «Соединиться»

4)  «Событие4» при нажатии на кнопку с изображение каталога.

5)  «Событие5» при нажатии на кнопку с изображением дискеты

6)  «Событие6» при нажатии на кнопку с изображением восклицательного занка.

7)  «Событие7» при нажатии на кнопку «Закрыть»

8)  «Событие8» при нажатии на кнопку с изображением жёсткого диска.

Алгоритмы обработчиков событий для основной формы программы:

Глобальные переменные:

TxtFile:TextFile; Файл для сохранения и загрузки истории переписки

St:PansiChar; .// строка для хранения текста сообщений об ошибках и программных сообщениях.

lincInt:Boolean; переменная для проврки правильности соединения

TxtContaningStr:String;// строка , содержащая текст. Используется для хранения текста загружаемой и сохраняемой ситории сообщений.

userName:string; Переменная хранящая имя пользователя, работающего с программой.

Также в программе используются публичные переменные , доступные во всей сборке(всех модулях данного приложения):

HMutex:THandle; - дескриптор объекта типа

ThreadRec:TThreadReceiver;-дескриптор объекта типа поток, для принятия сообщений посланных из первичного потока приложения.

HEvent:THandle;- дескриптор объекта типа событие. Необходим для сообщения вторичным потокам об отправке данных из первичного потока

HFileSender:Thandle;-Дескриптор файла , проецируемого в память, необходим для обращения к файлу ,проецируемому в память, и обмена через него информацией с другими приложениями.

1)  Описание события «Событие1»:

Наступление события происходит при нажатии на кнопку «ОТПРАВИТЬ». После нажатия на кнопку «ОТПРАВИТЬ» происходит проверка присутствия данных в поле ввода сообщения , если данные отсутствуют, то происходит выход из процедуры, если данные присутствуют, то происходит вызов процедуры WriteDataInMMF. В данной процедуре происходит ожидания объекта типа Mutex в течении бесконечного интервала времени. Это необходимо для реализации обмена сообщениями между несколькими копиями приложения. В данный момент происходит попытка захвата разделяемого ресурса - файа, проецируемого в память. После захвата объекта типа MUTEX происходит проецирование файла на адресное пространство основного процесса. Если файл спроецирован успешно, то происходит запись данных в этот файл, которые становятся доступны для чтения другим процессам, а затем проекция удаляется. Если проекцию создать не удалось, то выводится сообщение: «Не удалось создать проекцию файла». Алгоритм представлен на схемеах(блок схема 2.1, блок схема 2.2).

Блок схема 2.1 Алгоритм обработки события «Событие1».


Блок схема 2.2 Алгоритм процедуры передачи данных.

Данный алгоритм реализуется при нажатии на кнопку «ОТПРАВИТЬ» . В теле обработчика события «Событие1» вызывается данная процедура.(передачи данных. Программно «WriteDataInMMF»)

2)  Описание события «Событие2»:

Данное событие происходит при нажатии на кнопку «Отсоединиться». После нажатия на кнопку «Отсоединится» происходит вызов метода Terminate для потока, который осуществляет приём данный, то есть считывание их из проецируемого файла. Далее , пока поток не остановлен, В проецируемый файл, с помощью рассмотренной выше функции WriteDataInMMF Записываются данные о том, что пользователь отключился. Далее происходит ожидание завершения потока и освобождение ресурсов памяти выделенных этому потоку. После этого происходит уничтожение дескрипторов всех объектов необходимых для обмена информацией таких как: файл проецируемый в память , обьект типа mutex и объект типа, событие, который необходим, для оповещения вторичных потоков приложений о том, что данные записаны в проецируемый файл. Алгоритм работы представлен на схеме (блок схема 2.3).

Блок схема 2.3 Алгоритм обработчика события «Событие2».

3)  Описание события «Событие3». Событие происходит при нажатии на кнопку «Соединится». При нажатии на данную кнопку происходит создание дескрипторов объектов , необходимых для обмена, эти дескрипторы были рассмотрены выше. Далее происходит запуск на выполнение вторичного потока приложения, который осуществляет считывание данных из проецируемого файла после их записи. Далее происходит запись данных в проецируемый файл с помощью функции. Алгоритм работы представлен на схеме(блок схема 2.4).


Блок схема алгоритма события «Событие3».

4)  Описание события «Событие4».

Загрузка истории сообщений пользователей Событие наступает при нажатии на кнопку:  . После нажатия на данную кнопку происходит запуск объекта Open Dialog, в котором выбирается файл для загрузки, далее происходит создание файловой переменной и ассоциирование её с выбранным в Open Dialog файлом, далее в цикле происходит считывание строк из файла и последовательная запись их в поле истории переписки. После считывания файла целиком цикла завершается и происходит закрытие файла. Алгоритм обработки данного события представлен на схеме (блок схема 2.5).


Блок схема 2.5 Обработчик события «Событие4».

5)  Описание события «Событие 5». Сохранение истории переписки участников чата.

Событие наступает при нажатии на кнопку: . При нажатии на эту кнопку появляется диалоговое окно , где предлагается задать имя файлу и каталог, в котором этот файл будет сохранён, далее происходит ассоциирование созданного файла с файловой переменной и открытие этого файла для записи. Построчно текст из поля истории переписки заносится в строковую переменную , а затем в файл. Алгоритм обработчика события данной процедуры представлен на схеме(блок схема 2.6).


Блок схема 2.6. Алгоритм обработчика события «Событие 5».

6)  Описание события «Событие 6». Это событие происходит по нажатию кнопки. При этом происходит вызов предметного указателя файла справки, который находится в рабочем каталоге приложения.

7)  Описание события «Событие7». Происходит по нажатию на кнопку «Закрыть».Алгоритм обработчика представлен на схеме (блок схема 2.7).


Блок схема 2.7 обработчик события «Событие7».

8)  Описание события «Событие8». Это событие происходит по нажатию на кнопку: . При этом происходит создание третьей формы приложения, переход на которую является третьим этапом построения приложения. Алгоритм обработчика события представлен на схеме (блок схема 2.8).

Блок схема 2.7.

Этап3

На этом этапе происходит переход к третьему окну приложения. На данном этапе реализуется вторая часть задания на курсовой проект – анализ служебной области системного диска: Форма3 приложения OffClient имеет заголовок «Служебная информация о системных носителях» её вид представлен на рисунке 3.


Рисунок 3. Окно отображения служебной информации о носителе.

При работе с данной формой возникает 4 события:

С1-начать работу с диском

С2-Считать BPB (Блок параметров BioS)

C3-Счтать Partition Table.(Таблицу разделов диска).

С4-Закрытие формы. Данное событие имеет стандартный обработчик. Его описание опущено.

Алгоритм обработки событий для третьей формы приложения.

Глобальные переменные:

hDrive,hMBRDrive: THandle; - Дескрипторы дисков для работы с главной загрузочной записью носитель и блоком параметров Bios.

DiscGeometry:TDiscGeometry; - Структрура DiscGeometry Имеет в своём составе такие поля как количество секторов на дорожке , количество дорожек на носителе , количество байт в секторе,

1)  Описание события С1. Данное событие происходит при нажатии на кнопку

«Начать работу с диском». Если дескрипторы дисков уже существуют, то происходит их уничтожение. Далее происходит создание новых дескрипторов дисков. Если дескрипторы создаются успешно, то происходит заполнение структуры Disk Geometry, в полях которой содержатся данные о диске и вывод их в соответствующее поле. Если дескрипторы создать не удалось, то выводится сообщение об ошибке.

Алгоритм обработки данного события представлен на схеме1.

Схема 1 - Алгоритм работы обработчика события С1.

2)  Описание события С2: Данное событие происходит по нажатию на кнопку

«Считать BPB», после этого происходит обработка этого события. Данные из дескриптора диска читаются в буфер, эти данные располагаются в первом секторе логического диска. Если данные считаны, то происходит заполнение специальных таблиц данными из этого буфера, если нет, то выводится специальное сообщение о том, что данные прочитать не удалось.

Алгоритм обработчика этого события представлен на схеме2.


Схема2 –Обработчик события С2. «Считывание блока параметров BIoS»

3)  Описание события С3. Данное событие аналогично предыдущему, за исключением сектора который необходимо прочитать. Данное событие реализуется при нажатии на кнопку «считать Partition Table». Конструктивно данный алгоритм идентичен предыдущему – данные из первого сектора носителя данных читаются в буфер, если они успешно прочитаны происходит заполнение соответствующих страниц данными, если нет, то выводится сообщение о том, что данные не удалось считать в буфер. Алгоритм обработчика события представлен на схеме3.


Дополнительные структуры и алгоритмы

В данном разделе будут рассмотрены дополнительные логические структуры приложения:

1)  Алгоритм работы потока «приёмника» (программно ThreadReceiver)

2)  Алгоритм работы модуля, определяющего все активные носители, присутствующие в системе.(программно расположена в модуле HDDInfo).

1)  Алгоритм работы потока «приёмника» представлен на схеме 4. Описание алгоритма: В потоке организуется бесконечный цикл(пока поток не остановлен) в этом цикле проверяется некоторое событие, сигнализирующее потоку о том, что данные записаны в файл. После того как событие перешло в сигнальное состояние происходит его обратный сброс в несигнальное состояние. Затем происходит проецирование файла, переменная которого уже создана при запуске основной программы, на адресное пространство процесса. Если проекция создана, то данные читаются из файла и передаются в основную форму программы, а точнее в поле истории переписки. Если создать проекцию не удалось то появляется соответствующее сообщение.

Схема 4 – Алгоритм работы потока «приёмника».


2)  Описание алгоритма работы модуля, определяющего все активные носители в системе. Алгоритм работы представлен на схемах 5,6,7 и 8.

1. Описание алгоритма (схема5): При выполнении функции, реализующей данный алгоритм, в её теле происходит создание массива имён диско – массив латинских букв A-Z. После этого в цикле происходит считывание имён дисков присутствующих в системе и сравнивание этих имён с именами из массива. Если носитель с данным именем присутствует, то это имя возвращается в качестве результата работы функции.

Схема 5 –Алгоритм получения имени носителя, присутствующего в системе.

2. Описание алгоритма (схема6 ): Данный алгоритм необходим для верного определения номера системного носителя. Входными параметрами для этой функции является номер логического диска полученный с помощью API функции GetVolumeInformation. Данный номер считывается в строку и длина этой строки присваивается специальной переменной. Если значение этой переменной не равно восьми, происходит выход из процедуры, если и значение номера не меняется, если длина равна 8, то в цикле происходит изменение номера, считанного с помощью функции GetVolumeInformation, на правильный. В семействе ОС Windows в поздних версиях таких как «XP», «Vista» и «7» номер, полученный с помощью функции GetVolumeInformation является общим для всех носителей присутствующих в системе, хотя на практике это не является таковым.

Схема 6 –алгоритм работы функции, определяющей верный номер логического диска.


Данная функция необходима для правильного определения номера логического диска, если программа запущена под операционной системой Windows Xp , или более поздних.

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


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.