- •Пояснительная записка
- •Оглавление
- •Введение
- •1 Постановка задачи
- •2 Выбор решения
- •2.1 Проектирование структуры системы
- •2.2 Проектирование протокола взаимодействия
- •2.3 Определение модулей программы
- •2.5 Проектирование серверного приложения
- •3 Описание разработки программы
- •4 Отладка и тестирование
- •Заключение
- •2.4 Проектирование интерфейсной части
- •Список используемых источников
- •Приложение а Листинги программы Приложение а.1 Файл «Program.Cs»
- •Приложение а.2 Файл «Message.Cs»
- •Приложение а.3 Файл «Form1.Cs»
- •Приложение а.4 Файл «Server.Cpp»
- •Приложение а.5 Файл «Processor.Cpp»
1 Постановка задачи
Целью курсового проектирования является разработка системы программ обработки графической информации.
Необходимо разработать программное приложение параллельной обработки графической информации. Для параллельной обработки графического файла определенного формата программа-сервер выполняет прием команд с интерфейса пользователя, создание и запуск заданного количества процессов, которые выполняют параллельную обработку некоторой части графического файла. После обработки всех частей файла, программа сервер выполняет сбор результатов в один общий результирующий файл и выдача его пользователю. Работа с файлом и его частями ведется в асинхронном режиме. Количество запускаемых процессов и имя файла вводится через интерфейс пользователя.
Способ взаимодействия процессов – почтовый ящик (mailslot). Синхронизация процессов – с помощью критических секций на основе семафоров. Устройство ввода-вывода – клавиатура и мышь. Необходимо научится анализировать и различать события, возникающие, при работе с клавиатурой и мышью. Необходимо однозначно идентифицировать и выполнять те или иные действия в зависимости от действий пользователя.
Разработка будет производиться на языках программирования C, C++, С# в среде разработки Microsoft Visual Studio 2013.
2 Выбор решения
2.1 Проектирование структуры системы
Системы программ параллельной обработки графической информации имеет клиент-серверную архитектуру. Передача данных организована на основе mailslot. Общая схема системы представлена ниже.
Процесс 1
Команды
Интерфейс
Сервер
Данные
Процесс N
Рисунок 1 - Общая схема системы.
Интерфейс взаимодействуют с сервером по разработанному протоколу. Подробно разработка протокола взаимодействия описана в разделе 2.2. Интерфейс имеет оконный интерфейс, принятый в ОС Windows, сервер и процессы обработки – консоль.
2.2 Проектирование протокола взаимодействия
Для взаимодействия между интерфейсом, сервером и процессами обработки был разработан протокол взаимодействия.
Разработанный протокол взаимодействия обеспечивает:
Подключение и отключение интерфейса и сервера;
Передачу команд между интерфейсом и сервером;
Передачу частей картинки между сервером и обработчиками;
Передачу команд между сервером и обработчиками.
Таблица 1 - Описание протокола взаимодействия.
Название переменной |
Пояснения |
connect |
Подключение интерфейса к серверу |
disconnect |
Отключение интерфейса от сервера |
file |
Передача команды на изменение файла |
file_to_proccessor |
Передача части картинки |
kill_proccessor |
Уничтожение обработчика |
error |
Отправка ошибки интерфейсу |
2.3 Определение модулей программы
Каждый модуль отвечает за набор определенных действий:
Program.cs (Главная точка входа для приложения Интерфейс);
Form1.cs (Основной исходный код программы Интерфейс);
Message.cs (Протокол взаимодействия программы Интерфейс);
Server.cpp (Основной исходный код программы Сервер);
Processor.cpp(Основной исходный код программы Обработчик);
Program
Server
Form1
Message
Processor
Рисунок 2 - Структура модулей программы.
