Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Системи, керовані потоком даних. Мова "Dataflow Graph Language"

Реферат Системи, керовані потоком даних. Мова "Dataflow Graph Language"





Id: word;

14 CONST

15 N: word = 10;

16 BEGIN

17 Send (exportNUM_ITER, 0, N, SizeOf (word));

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/N;

23 Receive (importDEMAND_LIST, WrkId, SizeOf (word));

24 Send (exportWORKER, WrkId, Task, SizeOf (Task));

25 END;

26 Task.N: = 0;

27 FOR i: = 1 TO exportWORKER.NChannels DO

28 Send (exportWORKER, i, Task, SizeOf (Task));

29 END;



Файл ManagerBody.pas: тіло процесу Manager


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


На початку роботи посилаємо процесу Summer число розбиття N (Рядок 17). У рядку 23 чекаємо запиту від одного з робочих процесів. Запит являє собою ідентифікатор запитуючої процесу. Отримавши запит, відсилаємо чергове завдання відповідному робочому (рядок 24).


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




30 PROCEDURE Body;

31 VAR

32 Task: RECORD N: word; a, b: real; END;

33 S: real;

34 i: word;

35 FUNCTION f (x: real): real;

36 BEGIN

37 Result: = 4/(1 + x * x);

38 END;

39 BEGIN

40 Send (ExportDEMAND, 0, GetProcessId, SizeOf (TProcessId));

41 WHILE (true) DO WITH Task DO BEGIN

42 Receive (importARG, Task, SizeOf (Task));

43 IF (Task.N = 0) THEN EXIT;

44 h: = (b-a)/N;

45 S: = 0;

46 FOR i: = 1 TO N DO

47 S: = S + f (a + (i-0.5) * h);

48 S: = h * S;

49 Send (exportPART_SUM, 0, S, SizeOf (S));

50 Send (exportDEMAND, 0, GetProcessId, SizeOf (TProcessId));

51 END;

52 END;



Файл WorkerBody.pas: тіло процесу Worker


Нескінченний цикл 41-51 забезпечує роботу процесу до отримання сигналу завершення від розподільника робіт Manager. br/>

У рядку 42 чекаємо чергове завдання Task. Якщо число інтервалів у завданні дорівнює 0, то завершуємо роботу. В іншому випадку обчислюємо часткову суму на інтервалі (Task.a; Task.b) і відсилаємо її суммирующему процесу (рядки 44-49). У рядку 50 звертаємося до розподільника робіт за черговим завданням.





53 PROCEDURE Body;

54 VAR

55 N: word;

56 i: word;

57 TotalSum, S: real;

58 BEGIN

59 Receive (ImportNUM_ITER, N, SizeOf (N));

60 TotalSum : = 0;

61 FOR i: = 1 TO N DO BEGIN

62 Receive (ImportPART_SUM, S, SizeOf (S...


Назад | сторінка 4 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Creation of control system by a personnel how to begin with a zero
  • Реферат на тему: Система лабораторно-практичних робіт з MS Word
  • Реферат на тему: Методи роботи з Текстовий процесор Microsoft Word
  • Реферат на тему: Windows та Word
  • Реферат на тему: Розробка системи автоматичного заповнення анкети у форматі MS Word