Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈ распрСдСлСнноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 101

Автор Π₯ьюз ΠšΠ°ΠΌΠ΅Ρ€ΠΎΠ½

β€’ local ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π²ΠΈΠ΄ΠΈΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости для Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

β€’ global ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π²ΠΈΠ΄ΠΈΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости для Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

β€’ self ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ собствСнный ΠΌΠ΅Ρ‚ΠΎΠ΄

Помимо пСрСчислСнных, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… стСрСотипов.

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π²Ρ‹Π·ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎ Ρ‰ ью ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ порядковых Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΈ двоСточия, ΠΎΡ‚Π΄Π΅Π»ΡΡŽ Ρ‰ Π΅Π³ΠΎ имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ Ρ‰ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°. ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ порядковых Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. НапримСр, Π½Π° рис. 10.7 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° сотрудничСства, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ порядковыС Π½ΠΎΠΌΠ΅Ρ€Π°.

Рис. 10.7. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° сотрудничСства, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ порядковыС Π½ΠΎΠΌΠ΅Ρ€Π° для обозначСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 10.7, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ MainObject выполняСт Π΄Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² ΡΠ»Π΅Π»ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

1: << create >>

2: Value := performAction(ObjectF)

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ 1 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ MainObject создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Obj ectA. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ObjectA Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ MainObject (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²). Π­Ρ‚ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈ я. Π”Π» я обозначСния всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ этой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ число 1, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт число, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅Π΅ порядок ΠΈΡ… выполнСния. Π˜Ρ‚Π°ΠΊ, пСрвая опСрация ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ 1 Ρ‚Π°ΠΊΠΎΠ²Π°: 1.1: initialize()

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ObjectA Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ собствСнный ΠΌΠ΅Ρ‚ΠΎΠ΄. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ собствСнно Π³ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° выраТаСтся ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ, ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽ Ρ‰ Π΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с самим собой, ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ стСрСотипа {self} ({caΠΌ } ).Onepaция ObjectA::initialize() Ρ‚Π°ΠΊΠΆΠ΅ запускаСт Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий:

1.1.1 : initializeB()

1.1.2: initializeC()

Π’ этой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ObjectA) ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ посрСдством Π²Ρ‹Π·ΠΎΠ²Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ Ρ‰ ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ 2: performAction(ObjectD)

являСтся Π½Π°Ρ‡Π°Π»ΠΎΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ObjectA пСрСдаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ObjectD. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ObjectA Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ ObjectD:

2.1: doAction()

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ObjectA ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ эту ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ObjectD являСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎ ΠΌ (ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎ ΠΌ MainObject), ΠΊΠ°ΠΊ ΠΎΡ‚ ΠΌ Π΅Ρ‡Π΅Π½ΠΎ стСрСотипо ΠΌ {parameter}. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния этой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ObjectA Π²ΠΎΠ·Π²Ρ€Π° Ρ‰ аСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ MainObject Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π° Ρ‰ аСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. По ΠΌ ΠΈ ΠΌ ΠΎ ΠΊΠΎ ΠΌ Π±ΠΈΠ½Π°Ρ†ΠΈΠΉ порядковых Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ², ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этих Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² управлСния ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΈΠ»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π»ΠΈΠ½ΠΈΠΈ с Π·Π°Ρ‡Π΅Ρ€Π½Π΅Π½Π½ΠΎΠΉ стрСлкой, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ выполнСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ

ΠŸΡ€ΠΎΡ†Π΅ΡΡ β€” это Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ (ΠΊΠΎΠ΄Π°), создаваСмая ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², выполняСмых Π² Π΅Π³ΠΎ адрСсном пространствС. Если ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² нСсколько, Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… являСтся основным (main thread). НСсколько процСссов ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. ΠŸΠΎΡ‚ΠΎΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΌ ΠΈ Π΄Ρ€Ρƒ Π³ ΠΈΡ… процСссов.

ΠŸΡ€ΠΈ использовании языка UML Π΄Π» я отобраТСния функционирования процСссов ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ нСзависи ΠΌ Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ выполнСния считаСтся Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Активный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ ΠΌ процСсса ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Π΅ΠΌ ΠΎΠ½ Π²Π»Π°Π΄Π΅Π΅Ρ‚. Активный класс β€” это класс, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ. АктивныС классы ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для модСлирования Π³Ρ€ΡƒΠΏΠΏΡ‹ процСссов ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Ρ‡Π»Π΅Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ систСмы ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠΉ взаимосвязи с Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π² Π³Π»Π°Π²Π°Ρ… 3 ΠΈ 4, ΠΏΡ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° процСссы ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ процСссС ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ…. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ статичСскими ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ взаимодСйствия. Π’ систС ΠΌ Π΅ ΠΌ ΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько PVM- ΠΈΠ»ΠΈ MPI-Π·Π°Π΄Π°Ρ‡, ΠΈΠ»ΠΈ процСссов, ΠΈ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π½ΠΈΡ… ΠΌ ΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ нСпосрСдствСнно ΠΊΠ°ΠΊ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Π―Π·Ρ‹ΠΊ UML позволяСт ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ класс Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ способом, ΠΊΠ°ΠΊ статичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅Π³ΠΎ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ класс, обводится Π±ΠΎΠ»Π΅Π΅ ΠΆΠΈΡ€Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ. Π’ этом случаС ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π° стСрСотипа:

process

thread

Π˜Π½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ этих стСрСотипов ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π°Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². На рис. 10.8 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° PVM-Π·Π°Π΄Π°Ρ‡Π° Π² Π²ΠΈΠ΄Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ класса ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° сотрудничСства ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Рис. 10.8. Активный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ класс

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² выполнСния ΠΈ взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ

Π’ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ распрСдСлСнной систСмС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ сущСствованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² выполнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ относятся ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ нСскольким процСссам. Π­Ρ‚ΠΈ процСссы ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ систСмС с нСсколькими процСссорами Π»ΠΈΠ±ΠΎ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ. Для прСдставлСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° выполнСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ класс ΠŸΡ€ΠΈ создании Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° инициируСтся нСзависимый ΠΏΠΎΡ‚ΠΎΠΊ выполнСния. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° этот ΠΏΠΎΡ‚ΠΎΠΊ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ своС сущСствованиС. ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² систСмС позволяСт ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Π’ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ сотрудничСства для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ числа ΠΈ стрСлки со сплошной Π·Π°Π»ΠΈΠ²ΠΊΠΎΠΉ Π½Π°ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΈΠΊΠ°. Π’ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ сотрудничСства, которая состоит ΠΈΠ· Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ систСмы, имя Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° прСдставляСтся порядковыми числами ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, выполняСмых Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Активный ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, ΠΈ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ. Π‘Ρ‚Ρ€Π΅Π»ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для отобраТСния направлСния Ρ…ΠΎΠ΄Π° выполнСния ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π½ΠΎ ΠΈ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ Π΅Π³ΠΎ повСдСния. Π‘Ρ‚Ρ€Π΅Π»ΠΊΠΈ со сплошной Π·Π°Π»ΠΈΠ²ΠΊΠΎΠΉ Π½Π°ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для прСдставлСния синхронного Π²Ρ‹Π·ΠΎΠ²Π°, Π° стрСлка с ΠΎΠ΄Π½ΠΎΡ€Π΅Π±Π΅Ρ€Π½Ρ‹ΠΌ Π½Π°ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΈΠΊΠΎΠΌ β€” для прСдставлСния асинхронного Π²Ρ‹Π·ΠΎΠ²Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ сразу нСсколькими Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ‚ΠΎ для описания синхронизации этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π΅Π³ΠΎ свойства:

β€’ sequential

β€’ guarded

β€’ concurrent

Рис. 10.9. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° сотрудничСства статичСских ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² систСмС составлСния расписаний

На рис. 10 9 прСдставлСна Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° сотрудничс ства Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ «совмСстными усилиями» ΡΠΎΠ·Π΄Π°ΡŽΡ‚ расписаниС студСнта. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ blackboard ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Π» я Ρ€Π΅ Π³ истрации Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Π΅Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдставлСния ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ расписания, сгСнСрированного Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»ΡΠΌΠΈ Π·Π°Π΄Π°Ρ‡ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡ‹Ρ… Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ (agent).