Тема

“Разработка программы создания

параллельно взаимодействующих вычислительных процессов в ОС UN

Цель :

Разработать программу создания взаимодействующих вычислительных процессов.

1

Задание

Работа посвящена разработке программы создания параллельно взаимодействующих процессов на языке С.

В работе рассмотрен метод создания многопоточного приложения на языке С. Разработан алгоритм и его программная реализация на языке С.

Приложение демонстрирует принципы взаимодействия и механизмы синхронизации процессов в операционной системе UNI

Выполнили:

Студенты группы Севрюкова О. Сорокина Е.

Вензель

2

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

Разработать программу создания параллельно взаимодействующих вычислительных процессов.

Процесс A запускает задачи С и Е. Время завершения задач С и В приблизительно одинаковое.

Поток F запускается тем, кто завершается первым, но только после завершения 2-х остальных, приходящих в точку синхронизации.

Задача G запускается последним закончившим работу потоком D, E или F.

3

СТРУКТУРА ПРОГРАММЫ

В соответствии с техническим заданием программа должна реализовывать следующие функции:

•Расчет факториала

•Расчет бесконечно убывающей геометрической прогрессии

•Расчет суммы числового ряда

4

Структурная схема программы

 

Main()

 

 

[ thread_A ]

 

thread_func_B

 

 

 

thread_func_C

thread_func_E

thread_func_D

thread_func_F

 

 

 

thread_func_G

5

Алгоритм главной функции

 

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Очистка

 

 

 

 

 

 

экрана

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Инициализ.

 

 

 

 

 

 

cемафоров

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Создание

 

 

 

 

 

 

потока B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поток B

 

 

 

 

 

 

создан?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Создание

 

 

 

 

 

 

потока C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поток C

 

 

 

 

 

 

создан?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Создание

 

 

 

 

 

 

потока E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поток E

 

 

Вывод

 

 

 

 

 

 

 

 

сообщения об

 

 

создан?

 

 

 

 

 

 

ошибке

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ожидание

 

 

 

 

 

 

 

 

 

 

 

 

завершения

 

 

 

 

 

 

потока G

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Удаление

 

 

 

 

 

 

семафоров

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конец

6

 

 

 

Алгоритм функции thread_func_F

Bход

Вывод сообщения о начале работы

Ожидание начала потока В

i<33

+

Вычисление i факториала

i=5

+

Создание потока C

+

Поток C создан

Вывод результата вычислений

Вывод сообщения об ошибке Вывод сообщения о конце работы

Bыход

7

 

Алгоритм функции thread_func_E

Bход

Вывод сообщения о начале работы

 

i<10^6

 

+

i=i+1

sum=sum+1/(i*2)

 

Вывод результата вычислений

 

Сигнал потоку D о конце работы

Bыход

8

Вывод

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

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

Разаработка завершена составлением технической документации :

Спецификация Текст программы

Руководство пользователя

9