Общие требования к заданию

« Программирование параллельных процессов»

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

- программа должна функционировать в мультизадачной (мультипрограммной) среде (Windows-95,98,2000, OS/2 и т.п.);

- язык программирования – по усмотрению разработчика. Рекомендуемые языки – Delphi, Visual C++;

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

- при проектировании программы необходимо обязательно использовать средства синхронизации доступа к разделяемым объектам и данным;

- результаты выполнения программы ( протокол выполнения задач ) должны отражаться на экране, а также сохраняться в соответствующем файле.

Содержание отчёта

1. Описание задания с указанием конкретного графа задач, функций каждой задачи.

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

3. Текст программы с комментариями на русском языке.

4. Протокол выполнения задач.

Протокол выполнения задач включает следующую информацию ( по каждой задаче):

- время начала выполнения задачи;

- имя задачи, которая инициировала выполнение данной задачи;

- результат выполнения заданной функции;

- имя задачи, которую инициирует данная задача;

- время окончания выполнения задачи.

Пример задания:

B F

Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru A

Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru C E G K

Общие требования к заданию - student2.ru Общие требования к заданию - student2.ru D H

Имя задачи L(длительность) P(приоритет) Функция

A Генерирует массив M[1..n,1..n] - integer
B F1(M)
C F2(M)
D F3(M)
E F4(F2)
F F5(F1,F3,F4)
G F6(F1,F3,F4)
H F7(F1,F3,F4)
K F8(F5,F6,F7)

Примечания:

1. Значения L и P носят условный характер, и определяются в задании только для того , чтобы разработчик программы заранее не мог знать какая задача сможет закончить своё выполнение раньше, например задачи B,D или E. Любая из этих задач может инициировать запуск задач F,G,H, причём, это должна сделать та задача, которая реально будет заканчиваться последней. Для того, чтобы задача В могла инициировать запуск задач F,G и H , она должна точно определить , что задачи D и Е уже закончили своё выполнение. Следовательно, перед своим окончанием, задача В должна определить состояние задач D и Е. Тоже самое можно сказать относительно задач D и Е. Определение состояния задачи можно организовать с помощью введения общих ( разделяемых) переменных, которые по смыслу могут быть счётчиками числа задач или флагами задач.

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

Наши рекомендации