.

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

Язык: русский
Формат: реферат
Тип документа: Word Doc
73 488
Скачать документ

Aaaaeaiea

I?ia?aiiiia iaania/aiea

Nenoaia i?aaeiacia/aia aeey ?aaiou a naoe, a eioi?ie ethaua aeaa
eiiiuethoa?a iiaoo iaiaieaaoueny aeaiiuie ae?oa n ae?oaii. Ia ethaii
eiiiuethoa?a iiaeao auoue caiooaiii ianeieueei i?ioeannia. Eaaeaeue
i?ioeann iieo/aao aeaiiua /a?ac ii?ou eiii?oa e iiaeao ioneaoue aeaiiua
/a?ac ii?ou yenii?oa ii aeoaai aeaiiuo ae?oaei i?ioeannai.

Caione i?ia?aiiu inouanoaeyaony iiae oi?aaeaieai aeeniao/a?a, eioi?ue
?ani?aaeaeyao i?ioeannu ii eiiiuethoa?ai e onoaiaaeeaaao nayce iaaeaeo
i?ioeannaie. Aeey ii?iaeueiie ?aaiou aeeniao/a?a ia anao eiiiuethoa?ao
aeieaeia auoue caiouaia niaoeeaeueiay i?ia?aiia – iiieoi?. Iiieoi? ii
cai?ino aeeniao/a?a caioneaao i?ioeann, oeacaiiue a cai?ina, ia naiai
eiiiuethoa?a.

Ii?ou eiii?oa eniieuecothony eae i/a?aaee, e iie, iiaeiaii eaiaeai a IN
UNIX, aooa?ecotho iaeii eee iaeieueei niiauaiee aei oao ii?, iiea eo ia
iieo/eo aae?anao. Iauai aooa?a ia?aie/ai aeieueei aeinooiiie aieinoueth
iaiyoe. Eaaeaeue ii?o eiii?oa iiaeao auoue naycai n ianeieueeeie ii?oaie
yenii?oa.

Ii?ou yenii?oa iiaoo eiaoue ianeieueei eaiaeia, /enei eioi?uo
ii?aaeaeyaony aeeniao/a?ii iinea aiaeeca a?aoa aeaiiuo ia yoaia caionea
i?ioeanna. Eaaeaeue eaiae iaycaoaeueii naycai oieueei n iaeiei ii?oii
eiii?oa.

Iiaeaioiaea i?eeeaaeiie i?ia?aiiu e auiieiaieth ninoiec ec neaaeothueo
oaaia:

eiino?oe?iaaiea a?aoa iioiea aeaiiuo i?ia?aiiu

caienue a?aoa iioiea aeaiiuo ia ycuea a?aoia aeaiiuo DGL

ia?aaioea caiene ia ycuea DGL

iaienaiea i?eeeaaeiuo i?ia?aii aeey oceiauo i?ioeannia

eiiieeyoeey oceiauo i?ioeannia a oi?iao DLL

caione oceiauo i?ioeannia aeeniao/a?ii ia iniiaa DGL

I?eia? ia?aeeaeueiie i?ia?aiiu

A ea/anoaa i?eia?a ?aniio?ei caaea/o i?eaeeaeaiiiai au/eneaiey /enea Ie
n eniieueciaaieai i?aaeea i?yiioaieueieeia aeey au/eneaiey
ii?aaeaeaiiiai eioaa?aea

Niaeanii i?aaeeo i?yiioaieueieeia,

.

Neaaeoao ioiaoeoue, /oi yoi «i?ioeanni?iay» i?ia?aiia. Iia ia
cao?aaeaaao iiiaea i?iaeaiu ia?aeeaeueiiai i?ia?aiie?iaaiey, iai?eia?
e?eoe/aneia aeeyiea i?ioeannia aaiaea-auaiaea. Oai ia iaiaa yoa caaea/a
iiiiaeao iciaeiieony n iniiaiuie i?eioeeiaie iino?iaiey i?ia?aii,
?aaioathueo a niioaaonoaee n iaoiaeii oi?aaeaiey iioieii aeaiiuo.

Nouanoaoao iiiaeanoai iiaeoiaeia e ?aoaieth eiio?ieueiie caaea/e.
?aoaiea, i?eaaaeaiiia ieaea, eeethno?e?oao ana iniiaiua oaae ?ac?aaioee
i?ia?aiiu.

Eiino?oe?iaaiea a?aoa iioiea aeaiiuo i?ia?aiiu

A?ao iioiea aeaiiuo i?ia?aiiu (eee a?ao aeaiiuo) ii?aaeaeyao nayce
iaaeaeo i?ioeannaie e aeoaaie aeaiiuo. A?ao aeaiiuo niaoeeoeoee?oao ana
iineaaeoauaa eiino?oe?iaaiea i?ia?aiiu i?eeeaaeiie caaea/e. Aai
nicaeaiea iiaeao iio?aaiaaoue iaiaei oneeee aeey ii?aaeaeaiey oiai, eae
?acaeoue i?ia?aiio ia aeoeaece?oaiua aeaiiuie i?ioeannu, /oiau aeinoe/ue
iaeneiaeueiiai oaaee/aiey nei?inoe auiieiaiey.

A i?aaeaea ?ac?aaaouaaaiay i?ia?aiia iiaeao auoue nicaeaia a aeaea
iaeiiai i?ioeanna, ii i?e yoii oa?yaony ia?aeeaeaeeci. Iiaeii nicaeaoue
iiiaeanoai iaeeeo i?ioeannia, oaeeo eae iaeei iia?aoi? eee aeaaea iaeia
a?eoiaoe/aneay iia?aoeey, /oi i?eaaaeao e ?aceiio oaaee/aieth ?anoiaeia,
naycaiiuo n caioneii eaaeaeiai i?ioeanna e iaiaiii aeaiiuo iaaeaeo ieie.
Neaaeoao ioiaoeoue, /oi no?oeoo?a ?aoaaiie caaea/e /anoi iaaiaeeo ia
oi?ioaa ia?aia i?eaeeaeaiea.

Iinea oiai, eae a?ao aeaiiuo ia?eniaai, eaaeaeue i?ioeann, ia/aei e
eiiaoe eaaeaeie aeoae iiia/athony aoeaaiii-oeeo?iaui eiaiai, eioi?ia
eniieuecoaony a ycuea DGL.

Aeey iiaen/aoa /enea Ie eniieuecoaony ianeieueei ?aai/eo i?ioeannia,
eioi?ua au/eneytho naie /anoe eioaa?aea e ia?anueatho ?acoeueoao
noiie?othuaio i?ioeanno. ?aai/ea i?ioeannu ia?auathony ca i/a?aaeiui
caaeaieai e i?ioeanno ?ani?aaeaeaiey ?aaio. Any ?aaioa ia
?ani?aaeaeyaony ca?aiaa ?aaiiia?ii iaaeaeo i?ioeannaie: iaeei ?aai/ee
i?ioeann, anee ii caiouai ia aieaa auno?ie iaoeia, iiaeao auiieieoue
eueaeioth aeieth ?aaiou.

Caienue a?aoa iioiea aeaiiuo ia ycuea Data Graph Language

Ia?aaiae a?aoa iioiea aeaiiuo a ycue DGL niaa?oaaony iaeiicia/iui
ia?acii. A caiene ia DGL eaaeaeue i?ioeann i?aaenoaaeai caaieiaeii e
nieneii aoiaeiuo e auoiaeiuo ii?oia.

11 DATAFLOW GRAPH Pi;

12

13 NW = nprocs – 2

14

15 PROCESS Manager

16 EXPORT:

17 worker [NW] –> Worker [c]:arg;

18 num_iter –> Summer:num_iter;

19 IMPORT:

20 demand_list;

21 END

22

23 PROCESS Worker [NW]

24 EXPORT:

25 demand –> Manager:demand_list;

26 result –> Summer:part_sum;

27 IMPORT:

28 arg;

29 END

30

31 PROCESS Summer

32 IMPORT:

33 num_iter;

34 part_sum;

35 END

Caienue i?ia?aiiu au/eneaiey Ie ia ycuea DGL

Iinea ia?aaioee a?aoa i?ia?aiiie dglc, ia aeenea aoaeoo nicaeaiu
neaaeothuea oaeeu: Manager.dpr, Worker.dpr, Summer.dpr, ManagerUnit.pas,
WorkerUnit.pas, SummerUnit.pas. I/a?aaeiay caaea/a ninoieo a iaienaiee
i?eeeaaeiuo caaea/ aeey anao oceiauo i?ioeannia. Aeey yoiai ioaeii
nicaeaoue oaeeu ManagerBody.pas, WorkerBody.pas, SummerBody.pas.

Iaienaiea oaea aeey eaaeaeiai i?ioeanna

Eaaeaeue i?ioeann caienuaaaony a aeaea i?ioeaaeo?u ia ycuea Ianeaeue.
Eiy i?ioeaaeo?u – Body – oeene?iaaii e ia iiaeao auoue eciaiaii. Eiy
oaeea i?ia?aiiu ia/eiaaony n eiaie i?ioeanna e caeai/eaaaony neiaii
Body.

10 PROCEDURE Body;

11 VAR

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

13 i,WrkId : 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 expWORKER.NChannels DO

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

29 END;

Oaee ManagerBody.pas : oaei i?ioeanna Manager

Ia?aiaiiay Task iienuaaao caaeaiea aeey ?aai/aai i?ioeanna: a,b –
a?aieoeu, N – /enei eioa?aaeia. Eiinoaioa N, iienaiiay a no?iea 15,
?aaia /eneo ?acaeaiee io?acea [0;1].

A ia/aea ?aaiou iinueaai i?ioeanno Summer /enei ?acaeaiee N (no?iea 17)
. A no?iea 23 aeaeai cai?ina io iaeiiai ec ?aai/eo i?ioeannia. Cai?in
i?aaenoaaeyao niaie eaeaioeoeeaoi? cai?aoeaathuaai i?ioeanna. Iieo/ea
cai?in, ionueaai i/a?aaeiia caaeaiea niioaaonoaothuaio ?aai/aio (no?iea
24).

Iinea oiai, eae caaeaiey ?ani?aaeaeaiu, ioaeii niiaueoue ia yoii anai
?aai/ei i?ioeannai. Aeey yoiai neoaeao no?iee 26-28: ii anai eaiaeai
ii?oa expWORKER iinueaai caaeaiea n ioeaaui /eneii eioa?aaeia – neaiae i
caaa?oaiee ?aaiou.

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;

Oaee WorkerBody.pas : oaei i?ioeanna Worker

Aaneiia/iue oeeee 41-51 iaania/eaaao ?aaioo i?ioeanna aei iieo/aiey
neaiaea caaa?oaiey io ?ani?aaeaeeoaey ?aaio Manager.

A no?iea 42 aeaeai i/a?aaeiia caaeaiea Task. Anee /enei eioa?aaeia a
caaeaiee ?aaii 0, oi caaa?oaai ?aaioo. A i?ioeaiii neo/aa au/eneyai
/anoe/ioth noiio ia eioa?aaea (Task.a; Task.b) e ionueaai aa
noiie?othuaio i?ioeanno (no?iee 44-49). A no?iea 50 ia?auaainy e
?ani?aaeaeeoaeth ?aaio ca i/a?aaeiui caaeaieai.

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));

63 TotalSum := TotalSum + S;

64 END;

65 END;

Oaee SummerBody.pas : oaei i?ioeanna Summer

A no?ieao 61-64 niae?athony /anoe/iua noiiu io anao ?aai/eo i?ioeannia e
noiie?othony a ia?aiaiiie TotalSum. *enei /anoe/iuo noii caienuaaai a
ia?aiaiio N ec ii?oa impNUM_ITER (no?iea 59).

Eiiieeyoeey oceiauo i?ioeannia

A n?aaea Delphi iaiaoiaeeii ioeiiieee?iaaoue oaeeu Manager.dpr,
Worker.dpr e Summer.dpr. Iinea eiiieeyoeee aeieaeiu iiyaeony o?e iiauo
oaeea: Manager.dll, Worker.dll, Summer.dll.

Caa?ocea e auiieiaiea i?ia?aiiu

Nia/aea ia eiiiuethoa?ao naoe ioaeii caionoeoue i?ia?aiio-iiieoi?.
Ia?aieoai ioeiiieee?iaiiua oaeeu e oaee Pi.dgl n oaenoii a?aoa iioiea
aeaiiuo ia ycuea DGL a iaeei eaoaeia e caionoei aeeniao/a?, oeacaa
Pi.dgl a ea/anoaa ia?aiao?a.

I?eeiaeaiea A

Neioaenen ycuea DGL

DGL = [“DATAFLOW GRAPH” [identifier] “;”]

{Definitions}

{ProcessDecl}

Definitions = identifier “=” ConstExpr

ProcessDecl = “PROCESS” identifier [“AT” path]

[“[” ConstExpr “]” ]

{“EXPORT:”{ExportDecl} |

“IMPORT:”{ImportDecl}

}

“END”

ExportDecl = identifier [“[” ConstExpr “]”]

“–>”

identifier [“[” Expression “]”]

“:”

identifier “;”

ImportDecl = identifier “;”

ConstExpr = Expression

Expression = Term [AddOp Term]

Term = Fact [MulOp Fact]

Fact = number | identifier | “(” Expression “)”

AddOp = “+” | “-”

MulOp = “*” | “/”

Caia/aiey:

number – oeaeia iieiaeeoaeueiia /enei

ana iia?aoeee ycuea oeaei/eneaiiua

PAGE

PAGE 5

PAGE \# “‘No?: ‘#’

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Ответить

Курсовые, Дипломы, Рефераты на заказ в кратчайшие сроки
Заказать реферат!
UkrReferat.com. Всі права захищені. 2000-2020