Реферат: Системы, управляемые потоком данных. Язык Dataflow Graph Language.

Для каждого процесса нунжно создать файл-шаблон. Имя такого файла совпадает с именем процесса и имеет расширение frm (можно воспользоваться файлом Process.frm). В нашем случае имеем три файла: Manager.frm, Worker.frm и Summer.frm. В каждом файле есть процедура, имя которой заканчивается на Body. Внутри нее записывается тело процесса.


10 PROCEDURE ManagerBody;

11 VAR

12 Task : RECORD N:cardinal; a,b:real; END;

13 i,WrkId : cardinal;

14 CONST

15 N : cardinal = 10;

16 BEGIN

17 exportNumIter[0].Send (N, SizeOf(N));

18 Task.N := 10*N;

19 Task.b := 0;

20 FOR i := 1 TO N DO BEGIN

21 Task.a := Task.b;

22 Task.b := i * 1.0 / N;

23 importDemandList.Receive (WrkId, SizeOf(WrkId));

24 exportWorker[WrkId].Send (Task, SizeOf(Task));

25 END;

26 Task.N := 0;

27 FOR i := 1 TO exportWorker.NChannels DO

28 exportWorker[i-1].Send (Task, SizeOf(Task));

29 END;


Файл Manager.frm : телопроцесса Manager

Переменная Task описывает задание для рабочего процесса: a,b - границы, N - число интервалов. Константа N, описанная в строке 15, равна числу разбиений отрезка [0;1].

В начале работы посылаем процессу Summer число разбиений N (строка 17) . В строке 23 ждем запроса от одного из рабочих процессов. Запрос представляет собой идентификатор запрашивающего процесса. Получив запрос, отсылаем очередное задание соответствующему рабочему (строка 24).

После того, как задания распределены, нужно сообщить об этом всем рабочим процессам. Для этого служат строки 26-28: по всем каналам порта exportWorker посылаем задание с нулевым числом интервалов - сигнал о завершении работы.


30 PROCEDURE WorkerBody;

К-во Просмотров: 261
Бесплатно скачать Реферат: Системы, управляемые потоком данных. Язык Dataflow Graph Language.