ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Алгоритмы ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ синхронизации процСссов Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах

Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

РассмотрСнныС Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ хотя ΠΈ ΡΠ²Π»ΡΡŽΡ‚ся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ, Π½ΠΎ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈ ΠΈ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΡΠ»Π΅Π³Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° оТидания Π²Ρ…ΠΎΠ΄Π° Π² ΠΊΡ€ΠΈΡ‚ичСский участок Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ достаточно Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ процСсса Π² ΠΏΡƒΡΡ‚ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅, Π²Ρ…ΠΎΠ»ΠΎΡΡ‚ΡƒΡŽ поТирая Π΄Ρ€Π°Π³ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ врСмя процСссора. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ нСдостатки Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², построСнных срСдствами ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… языков… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Алгоритмы ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ синхронизации процСссов Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования ΠΈ Π½Π°ΡƒΠΊΠΈ Российской Π€Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ

Π€Π“Π‘ΠžΠ£ Π’ΠŸΠž «Π§Π΅Π»ΡΠ±ΠΈΠ½ΡΠΊΠΈΠΉ государствСнный пСдагогичСский унивСрситСт»

ΠšΠΠ€Π•Π”Π Π ИНЀОРМАВИКИ И ΠœΠ•Π’ΠžΠ”Π˜ΠšΠ˜ ΠŸΠ Π•ΠŸΠžΠ”ΠΠ’ΠΠΠ˜Π― ИНЀОРМАВИКИ

ΠšΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°

Алгоритмы ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ синхронизации процСссов Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах

И.ΠΎ. Π·Π°Π². ΠΊΠ°Ρ„Π΅Π΄Ρ€ΠΎΠΉ

… / Π ΡƒΠ·Π°ΠΊΠΎΠ² А.А./

" … " … 2012 Π³.

Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ:

ΠΊ.ΠΏ.Π½., Π΄ΠΎΡ†Π΅Π½Ρ‚

… / Π ΡƒΠ·Π°ΠΊΠΎΠ² А.А./

" … " … 2012 Π³.

Автор Ρ€Π°Π±ΠΎΡ‚Ρ‹:

студСнт Π³Ρ€ΡƒΠΏΠΏΡ‹ 591

Попков Π”Π°Π½ΠΈΠ»Π° Π˜Π³ΠΎΡ€Π΅Π²ΠΈΡ‡ Π Π°Π±ΠΎΡ‚Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π° с ΠΎΡ†Π΅Π½ΠΊΠΎΠΉ

" … " … 2012 Π³.

ЧСлябинск, 2012

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ 2
  • Π“Π»Π°Π²Π° 1. ВСорСтичСскиС основы синхронизации процСссов 6
    • 1.1 НазначСниС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы 6
    • 1.2 ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ процСсса ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° 7
    • 1.3 Бвойства процСссов ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² 7
    • 1.4 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ процСсса ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° 11
    • 1.5 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ процСссов ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² 12
    • 1.6 Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… вычислСний 15
    • 1.7 ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ синхронизации ΠΈ Π³ΠΎΠ½ΠΊΠΈ 17
    • 1.8 ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ 20
    • 1.9 ВрСбования ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ синхронизации 23
    • 1.10 Алгоритмы синхронизации 24
      • 1.10.1 Π—Π°ΠΏΡ€Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ 24
      • 1.10.2 ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ-Π·Π°ΠΌΠΎΠΊ 25
      • 1.10.3 Алгоритм ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π° 25
      • 1.10.4 Алгоритм Π±ΡƒΠ»ΠΎΡ‡Π½ΠΎΠΉ (Bakery algorithm) 27
    • 1.11 Π’Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° 29
    • 1.12 Π’Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ сСмафора 32
    • 1.13 Π‘Π΅ΠΌΠ°Ρ„ΠΎΡ€Ρ‹ Π² Windows 35
  • Π’Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠΎ Π³Π»Π°Π²Π΅ 1 39
  • Π“Π»Π°Π²Π° 2. Π­Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ курс «ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Windows» 40
    • 2.1 ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° изучСния элСктивного курса 40
    • 2.2 ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° элСктивного курса «ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ Π² ΠžΠ‘ Windows» 65
    • 2.3 Апробация Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² исслСдования Π² ΡΡ€Π΅Π΄Π½Π΅ΠΉ школС 69
  • Π’Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠΎ Π³Π»Π°Π²Π΅ 2 70
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ 71
  • Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ 72
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 73

опСрационная систСма windows элСктивный курс

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

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π±Π΅Π·ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ взаимодСйствия процСссов Π±Ρ‹Π»ΠΈ созданы Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ синхронизации, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ собствСнными Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ особСнностями. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ взаимодСйствия процСссов ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ошибки, связанныС с ΠΈΡ… ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ, слСдуСт Π·Π½Π°Ρ‚ΡŒ особСнности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² синхронизации.

ЦСль Ρ€Π°Π±ΠΎΡ‚Ρ‹: ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ понятиями процСсс ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ основныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ синхронизации, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ синхронизации ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ элСктивный курс для изучСния Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹ Π² ΡΡ€Π΅Π΄Π½Π΅ΠΉ школС.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ исслСдования: Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ синхронизации.

ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚ исслСдования: процСсс изучСния взаимодСйствия процСссов Π² ΠΊΡƒΡ€ΡΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ срСднСй ΡˆΠΊΠΎΠ»Ρ‹.

Π’ ΡΠΎΠΎΡ‚вСтствии с Ρ†Π΅Π»ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ поставлСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

1. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ понятиями процСсс ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ.

2. Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ тСорСтичСский ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠΈ процСссов ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ синхронизации, ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ.

3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠΊΠΎΠ»ΡŒΠ½Ρ‹ΠΉ элСктивный курс ΠΏΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ процСссов Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Windows Π² ΡˆΠΊΠΎΠ»Π΅ для 10−11 классов.

4. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ элСктивного курса Π² Π²ΠΈΠ΄Π΅ элСктронного пособия «ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ Π² ΠžΠ‘ Windows».

5. Π‘ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ мСтодичСскиС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΊΡƒΡ€ΡΡƒ для ΡƒΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΉ.

Π“ΠΈΠΏΠΎΡ‚Π΅Π·Π°: Ссли Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΡˆΠΊΠΎΠ»ΡŒΠ½Ρ‹ΠΉ курс Ρ€Π°Π·Π΄Π΅Π»Ρ‹, связанныС с Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ΠΌ процСссов Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, Ρ‚ΠΎ ΡΡ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ΠΌΡƒ пониманию структуры ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Ρ‚Π°ΠΊ ΠΆΠ΅ это повысит ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ учащихся ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π² Ρ†Π΅Π»ΠΎΠΌ.

Научная Π½ΠΎΠ²ΠΈΠ·Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ:

1. РассмотрСны основныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ синхронизации, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ «Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π°», «Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±ΡƒΠ»ΠΎΡ‡Π½ΠΎΠΉ», «ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€» ΠΈ «ΡΠ΅ΠΌΠ°Ρ„ΠΎΡ€».

2. Π‘ΠΎΠ·Π΄Π°Π½Π° программная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ эффСктивноС ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹ Π² ΡˆΠΊΠΎΠ»Π΅.

3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ элСктивный курс «ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Windows» ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-мСтодичСская ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊ Π½Π΅ΠΌΡƒ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ синхронизации. А Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ элСктивный курс ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ знания тСорСтичСских основ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ΠΈΠ½Ρ‚СрСс ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°.

ГЛАВА 1. Π’Π•ΠžΠ Π•Π’Π˜Π§Π•Π‘ΠšΠ˜Π• ΠžΠ‘ΠΠžΠ’Π« БИНΠ₯Π ΠžΠΠ˜Π—ΠΠ¦Π˜Π˜ ΠŸΠ ΠžΠ¦Π•Π‘Π‘ΠžΠ’

1.1 НазначСниС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы

ЀизичСскими ΠΈΠ»ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ рСсурсами ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ физичСскиС устройства, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. К Ρ‚Π°ΠΊΠΈΠΌ устройствам относятся Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ процСссор, опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ, внСшняя ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΡˆΠΈΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ устройства Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ЛогичСскими ΠΈΠ»ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ рСсурсами ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Когда говорят ΠΎΠ±ΠΎ всСх рСсурсах ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠ°ΠΊ физичСскиС, Ρ‚Π°ΠΊ ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ рСсурсы, Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ рСсурсы ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ систСмныС рСсурсы.

Для выполнСния Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° ΠΈΠΌΠ΅Π»Π° доступ ΠΊ Ρ€Π΅ΡΡƒΡ€ΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π­Ρ‚ΠΎΡ‚ доступ обСспСчиваСт опСрационная систСма. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ опСрационная систСма — это комплСкс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт доступ ΠΊ Ρ€Π΅ΡΡƒΡ€ΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ ΠΈΠΌΠΈ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, опСрационная систСма — это администратор ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ рСсурсов ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. НазначСниС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы состоит Π² ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ срСдствами для использования рСсурсов ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ этих рСсурсов ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. ΠžΡ‚ΡΡŽΠ΄Π° слСдуСт, Ρ‡Ρ‚ΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ функциями ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рСсурсами ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ Π΄ΠΈΡΠΏΠ΅Ρ‚чСризация ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этих рСсурсов.

Рис. 1. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы

1.2 ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ процСсса ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°

К ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΡŽΡ‚ Π²Π°ΠΆΠ½ΠΎΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ — ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ: ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ процСссор, Π½ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ рСсурсы ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΈ Π²Π½Π΅ΡˆΠ½ΡŽΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, устройства Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, Π΄Π°Π½Π½Ρ‹Π΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, ОБ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ для сСбя Ρ‚Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒΡΡ процСссор ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ рСсурсы ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π’ Π½Π°ΡΡ‚оящСС врСмя Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Π΅Π΄ΠΈΠ½ΠΈΡ† Ρ€Π°Π±ΠΎΡ‚Ρ‹ — процСсс (process) ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ (thread).

1.3 Бвойства процСссов ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²

Π›ΡŽΠ±Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ систСмы Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π§Ρ‚ΠΎΠ±Ρ‹ этот ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ³ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ мСсто Π½Π° Π΄ΠΈΡΠΊΠ΅ для хранСния Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ доступ ΠΊ ΡƒΡΡ‚ройствам Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ для получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΊ ΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ ΠΌΠΎΠ΄Π΅ΠΌΡƒ; ΠΈ Ρ‚. Π΄. Π’ Ρ…ΠΎΠ΄Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ доступ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ рСсурсам, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΏΠΎΡ€Ρ‚Π°ΠΌ TCP/UPD. И Π΄Π»Ρ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ прСдоставлСниС Π΅ΠΉ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ процСссор выполняСт ΠΊΠΎΠ΄Ρ‹ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах, Π³Π΄Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡΡ‹, ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, процСсс рассматриваСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΊΠ°ΠΊ заявка Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ всСх Π²ΠΈΠ΄ΠΎΠ² рСсурсов, ΠΊΡ€ΠΎΠΌΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ — процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π­Ρ‚ΠΎΡ‚ послСдний ваТнСйший рСсурс распрСдСляСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ — ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ своС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (ΠΏΠΎΡ‚ΠΎΠΊΠΈ выполнСния) ΠΊΠΎΠΌΠ°Π½Π΄.

Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС процСсс состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π’ Ρ‚Π°ΠΊΠΈΡ… систСмах понятиС «ΠΏΠΎΡ‚ΠΎΠΊ» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ поглощаСтся понятиСм «ΠΏΡ€ΠΎΡ†Π΅ΡΡ», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΏΠΎΡ‚рСблСния рСсурсов — процСсс. ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ осущСствляСтся Π² Ρ‚Π°ΠΊΠΈΡ… ΠžΠ‘ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ процСссов.

Π’.Π“.ΠžΠ»ΠΈΡ„Π΅Ρ€ ΠΈ Н. А. ΠžΠ»ΠΈΡ„Π΅Ρ€ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅ «Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы» ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ваТнСйшая Π·Π°Π΄Π°Ρ‡Π° ΠžΠ‘ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒΡΡ Π² Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ рСсурсов, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄Ρ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. Для этого опСрационная систСма обСспСчиваСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ процСсс ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ адрСсным пространством, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ процСсс Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прямого доступа ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ процСсса.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ адрСсноС пространство процСсса — это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ адрСсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ процСсса. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ адрСсноС пространство процСсса Π½Π° ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ процСссу Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

ΠŸΡ€ΠΈ нСобходимости взаимодСйствия процСссы ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, которая, выполняя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ посрСдника, прСдоставляСт ΠΈΠΌ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° мСТпроцСссной связи — ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹, ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ ящики, раздСляСмыС сСкции памяти ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

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

ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах ΠΊΠ°ΠΊ срСдство распараллСливания вычислСний. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π·Π°Π΄Π°Ρ‡Π° распараллСливания вычислСний Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Π° ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ способами.

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

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

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС наряду с ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ°ΠΌΠΈ Π½ΡƒΠΆΠ΅Π½ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ распараллСливания вычислСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π» Π±Ρ‹ тСсныС связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ вСтвями вычислСний ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ прилоТСния. Для этих Ρ†Π΅Π»Π΅ΠΉ соврСмСнныС ΠžΠ‘ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (multithreading). ΠŸΡ€ΠΈ этом вводится новая Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ — ΠΏΠΎΡ‚ΠΎΠΊ выполнСния, Π° ΠΏΠΎΠ½ΡΡ‚ΠΈΠ΅ «ΠΏΡ€ΠΎΡ†Π΅ΡΡ» Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни мСняСт смысл. ΠŸΠΎΠ½ΡΡ‚ΠΈΡŽ «ΠΏΠΎΡ‚ΠΎΠΊ» соотвСтствуСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ процСссора ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ. ОБ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ процСссорноС врСмя ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ. ΠŸΡ€ΠΎΡ†Π΅ΡΡΡƒ ОБ Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ адрСсноС пространство ΠΈ Π½Π°Π±ΠΎΡ€ рСсурсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ всСми Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ.

1.4 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ процСсса ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°

Для систСм, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ многопоточности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ опрСдСлСния:

ΠŸΡ€ΠΎΡ†Π΅ΡΡ — Π΅Π΄ΠΈΠ½ΠΈΡ†Π° активности ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, создаваСмая ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰Π°Ρ свойствами:

Β· ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ адрСсноС пространство

Β· Код выполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ Π² Π°Π΄Ρ€Π΅ΡΠ½ΠΎΠ΅ пространство процСсса

Β· ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запуска — Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ запуска, Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ ΠΈ Ρ‚. ΠΏ.

Β· Набор ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Π½Π° Π΄ΠΎΡΡ‚ΡƒΠΏ ΠΊ ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹ΠΌ рСсурсам ΠΈ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌ

Β· Π’Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ статус процСсса Набор ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π°Π΄Ρ€Π΅ΡΠ½ΠΎΠΌ пространствС процСсса, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… доступ ΠΊ ΠΎΠ±Ρ‰ΠΈΠΌ рСсурсам процСсса

ΠŸΠΎΡ‚ΠΎΠΊ — Π΅Π΄ΠΈΠ½ΠΈΡ†Π° активности ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, создаваСмая ΠΏΡ€ΠΈ запускС процСсса систСмой ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ процСсса, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰Π°Ρ свойствами:

Β· Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄ — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Β· РСгистры — значСния рСгистров процСссора Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Β· Π‘Ρ‚Π΅ΠΊ

Β· БостояниС Для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ процСсса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Π΅Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ опираСтся Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ этой систСмы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Для систСм, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ срСдствами ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ процСсс фактичСски ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΈ ΠΏΠΎΠ½ΡΡ‚ия ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ° ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹.

Для систСм, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΏΠΎΠ½ΡΡ‚ΠΈΠΈ процСсса ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚ — ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΈ Π½Π΅Ρ‚ нСобходимости Π² Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΈΡ… ΡΠ²ΠΎΠΉΡΡ‚Π².

1.5 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ процСссов ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ процСсс — это ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ процСсса, Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ выступаСт ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… структур, содСрТащих всС свСдСния ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС для управлСния ΠΈΠΌ. Π’ число Ρ‚Π°ΠΊΠΈΡ… свСдСний ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ процСсса, Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ исполняСмого модуля, ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ привилСгированности процСсса (ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΈ ΠΏΡ€Π°Π²Π° доступа) ΠΈ Ρ‚. ΠΏ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ описатСлСй процСсса ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±Π»ΠΎΠΊ управлСния Π·Π°Π΄Π°Ρ‡Π΅ΠΉ (Π’Π‘Π’ — TaskControlBlock) Π² OS/360, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ процСсса (Π Π‘Π’ — ProcessControlBlock) Π² OS/2, дСскриптор процСсса Π² UNIX, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-процСсс (object-process) Π² Windows NT.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ описатСля процСсса — это появлСниС Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄Π΅Π½Ρ‚Π° Π½Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы. Начиная с ΡΡ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ распрСдСлСнии рСсурсов ΠžΠ‘ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ потрСбности Π½ΠΎΠ²ΠΎΠ³ΠΎ процСсса.

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

Π’ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ систСмС ΠΏΡ€ΠΈ создании процСсса ΠžΠ‘ создаСт для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСсса ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ выполнСния. ΠŸΡ€ΠΈ создании ΠΏΠΎΡ‚ΠΎΠΊΠ° Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈ создании процСсса, опСрационная систСма Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ структуру — ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΡ€Π°Π²Π°Ρ… доступа ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π΅, ΠΎ ΡΠΎΡΡ‚оянии ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π’ ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ состоянии ΠΏΠΎΡ‚ΠΎΠΊ (ΠΈΠ»ΠΈ процСсс, Ссли Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΡΠΈΡΡ‚Π΅ΠΌΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ понятиС «ΠΏΠΎΡ‚ΠΎΠΊ» Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ся) находится Π² ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ состоянии. ΠœΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ осущСствляСтся Π² ΡΠΎΠΎΡ‚вСтствии с ΠΏΡ€ΠΈΠ½ΡΡ‚Ρ‹ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΉ систСмС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ прСдоставлСния процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Ρ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ всСх ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ². Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Ссли ΠΊΠΎΠ΄Ρ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ процСсса находятся Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ условиСм Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° процСсса являСтся Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ мСста Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΅Π³ΠΎ исполняСмого модуля.

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… систСмах ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠžΠ‘ с Π·Π°ΠΏΡ€ΠΎΡΠΎΠΌ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ². Π’ Ρ€Π°Π·Π½Ρ‹Ρ… ΠžΠ‘ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ строятся ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ ΠΈ ΠΈΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Слями. НапримСр, Π² ΠΎΠ΄Π½ΠΈΡ… ΠžΠ‘ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° синхронизируСтся с Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ, Π² Ρ‡Π°ΡΡ‚ности послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠžΠ‘ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒ с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ всСх Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ². Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмах ΠΏΠΎΡ‚ΠΎΠΊΠΈ-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ асинхронно ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ. ΠŸΠΎΡ‚ΠΎΠΌΠΊΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ свойства Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… систСмах ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² являСтся основным ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ создания процСссов ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

ΠŸΠΎΡ‚ΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ся Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ адрСсном пространствС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Π°Π΄Ρ€Π΅ΡΠ½ΠΎΠΌ пространствС процСсса, создавшСго ΠΏΠΎΡ‚ΠΎΠΊΠΈ, Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ даётся свой стСк. ΠŸΠΎΡ‚ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.

Когда ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ рСсурс, опСрационная систСма провСряСт, свободСн Π»ΠΈ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ рСсурс, ΠΈ, Ссли свободСн, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ счётчик доступа ΠΊ Ρ€Π΅ΡΡƒΡ€ΡΡƒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° ΡΡ‡Ρ‘Ρ‚Ρ‡ΠΈΠΊ сСмафора ΠΌΠΎΠ³ΡƒΡ‚ Π²Π»ΠΈΡΡ‚ΡŒ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², сСмафоры Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ся Π²ΠΎ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ сСмафор, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ сСмафор.

Для создания ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция CreateThread. Бинтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateThread:

HANDLE CreateThread (lpsa: LPSECURITY_ATTRIBUTES; cbStack: DWORD; lpStartAddr: LPTHREAD_START_ROUTINE; lpvThreadParam: LPVOID; fdwCreate: DWORD; lpIDThread: LPVOID);

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lpsa — это ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ, Π·Π°Π΄Π°ΡŽΡ‰ΡƒΡŽ нСстандартныС дСскрипторы Π·Π°Ρ‰ΠΈΡ‚Ρ‹. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° lpsa NULL ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lpStartAddr ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ адрСс Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ создаваСмый ΠΏΠΎΡ‚ΠΎΠΊ. Бинтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

DWORD ThreadFunc (lpvThreadParam: LPVOID) {

return (dwResult);

}

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ThreadFunc, Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ создания ΠΏΠΎΡ‚ΠΎΠΊΠ° lpvThreadParam. Π§Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ 32-Π±ΠΈΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ просто Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ fdwCreate — Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π»Π°Π³ΠΈ управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ. Π€Π»Π°Π³ — CREATE_SUSPENDED ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ систСмС ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ResumeThread(HANDLE), ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅ΠΉ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Ρ‘Π½Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ создания ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π’ΠΎΠΎΠ±Ρ‰Π΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π² Π»ΡŽΠ±ΠΎΠ΅ врСмя ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SuspendThread(HANDLE), ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ResumeThread(HANDLE). Π’ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π΅ΡΡ‚ΡŒ пСрСмСнная SuspendCount, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ запоминаСтся количСство Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² SuspendThread, Π° Π²Ρ‹Π·ΠΎΠ² ResumeThread ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊ возобновляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

ПослСдний ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lpIDThread — адрСс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ слова, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ записан ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΡ‚ΠΎΠΊΠ°.

1.6 Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… вычислСний

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

Рис. 2. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ систСмы с ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ

Π˜Ρ‚Π°ΠΊ, ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ эффСктивно Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π° Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ собствСнный счСтчик ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΡ‚Π΅ΠΊ. Π—Π°Π΄Π°Ρ‡Π°, оформлСнная Π² Π²ΠΈΠ΄Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° быстрСС Π·Π° ΡΡ‡Π΅Ρ‚ ΠΏΡΠ΅Π²Π΄ΠΎΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ (ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π² ΠΌΡƒΠ»ΡŒΡ‚ипроцСссорной систСмС) выполнСния Π΅Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… частСй. НапримСр, Ссли элСктронная Ρ‚Π°Π±Π»ΠΈΡ†Π° Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ возмоТностСй ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ пСрСсчСт своСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. ОсобСнно эффСктивно ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ для выполнСния распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ сСрвСр ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запросы сразу Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

ИспользованиС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² связано Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со ΡΡ‚Ρ€Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы Π·Π° ΡΡ‡Π΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… вычислСний, Π½ΠΎ ΠΈ Ρ Ρ†Π΅Π»ΡŒΡŽ создания Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Ρ…, Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² выполнСния ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. НапримСр, Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… Ρ‚ΠΈΠΏΠ° «ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ-Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ» ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ выполняСт запись Π² Π±ΡƒΡ„Π΅Ρ€, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ считываСт записи ΠΈΠ· Π½Π΅Π³ΠΎ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠΉ Π±ΡƒΡ„Π΅Ρ€, Π½Π΅ ΡΡ‚ΠΎΠΈΡ‚ ΠΈΡ… Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ процСссами. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² — ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сигналами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ (del ΠΈΠ»ΠΈ break). ВмСсто ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сигнала прСрывания ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ назначаСтся для постоянного оТидания поступлСния сигналов. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, использованиС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ уровня. Π’ ΡΡ‚ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, сколь Π²Π°ΠΆΠ½Π° ΡΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

1.7 ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ синхронизации ΠΈ Π³ΠΎΠ½ΠΊΠΈ

ΠŸΡ€Π΅Π½Π΅Π±Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅ вопросами синхронизации Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ систСмС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΊ ΠΊΡ€Π°Ρ…Ρƒ систСмы. Рассмотрим, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (рис.3), Π·Π°Π΄Π°Ρ‡Ρƒ вСдСния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ прСдприятия. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ отводится ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ запись Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ срСди ΠΏΡ€ΠΎΡ‡ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ поля Π—Π°ΠΊΠ°Π· ΠΈ ΠžΠΏΠ»Π°Ρ‚Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, вСдущая Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π° ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ процСсс, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π² Ρ‚ΠΎΠΌ числС ΠΏΠΎΡ‚ΠΎΠΊ А, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заносит Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π·Π°ΠΊΠ°Π·Π°Ρ…, ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΠ²ΡˆΠΈΡ… ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ Π’, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ фиксируСт Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… свСдСния ΠΎΠ± ΠΎΠΏΠ»Π°Ρ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ выставлСнных счСтов. Оба эти ΠΏΠΎΡ‚ΠΎΠΊΠ° совмСстно Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π°Π΄ ΠΎΠ±Ρ‰ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ шага:

1. Π‘Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±ΡƒΡ„Π΅Ρ€ запись ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ.

2. ВнСсти Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ Π—Π°ΠΊΠ°Π· (для ΠΏΠΎΡ‚ΠΎΠΊΠ° А) ΠΈΠ»ΠΈ ΠžΠΏΠ»Π°Ρ‚Π° (для ΠΏΠΎΡ‚ΠΎΠΊΠ° Π’).

3. Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ запись Π² Ρ„Π°ΠΉΠ» Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Рис. 3 Π’ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Π³ΠΎΠ½ΠΎΠΊ ΠΏΡ€ΠΈ доступС ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ шаги для ΠΏΠΎΡ‚ΠΎΠΊΠ°, А ΠΊΠ°ΠΊ Al, A2 ΠΈ A3, Π° Π΄Π»Ρ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π’ ΠΊΠ°ΠΊ Bl, B2 ΠΈ Π’Π—. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ, А ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ‚ ΠΏΠΎΠ»Π΅ Π—Π°ΠΊΠ°Π· записи ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ N. Для этого ΠΎΠ½ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ эту запись Π² ΡΠ²ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ (шаг А1), ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля Π—Π°ΠΊΠ°Π· (шаг А2), Π½ΠΎ Π²Π½Π΅ΡΡ‚ΠΈ запись Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… (шаг A3) Π½Π΅ ΡƒΡΠΏΠ΅Π²Π°Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прСрываСтся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, вслСдствиС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΊΠ²Π°Π½Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ Π’ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ внСсти свСдСния ΠΎΠ± ΠΎΠΏΠ»Π°Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° N. Когда ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π’, ΠΎΠ½ ΡƒΡΠΏΠ΅Π²Π°Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ запись Π² ΡΠ²ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ (шаг Π’1) ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ поля ΠžΠΏΠ»Π°Ρ‚Π° (шаг Π’2), Π° Π·Π°Ρ‚Π΅ΠΌ прСрываСтся. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Π±ΡƒΡ„Π΅Ρ€Π΅ Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π’ Π½Π°Ρ…одится запись ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ N, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»Π΅ Π—Π°ΠΊΠ°Π· ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π΅ΠΆΠ½Π΅Π΅, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Когда Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ€Π°Π· ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ А, Ρ‚ΠΎ ΠΎΠ½, продолТая свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ запись ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ N Ρ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ Π—Π°ΠΊΠ°Π· Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… (шаг A3). ПослС прСрывания ΠΏΠΎΡ‚ΠΎΠΊΠ°, А ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ²Π΅Ρ€Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ записи ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ N ΡΠ²ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ записи, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля ΠžΠΏΠ»Π°Ρ‚Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ зафиксированы свСдСния ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ N ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π» ΠΎΠΏΠ»Π°Ρ‚Ρƒ, Π½ΠΎ ΠΈΠ½Ρ„ормация ΠΎ Π΅Π³ΠΎ Π·Π°ΠΊΠ°Π·Π΅ окаТСтся потСрянной (Рис. 4, А).

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ синхронизации кроСтся Π² Π½Π΅Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ситуаций. Π’Π°ΠΊ, Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ событий: ΠΌΠΎΠ³Π»Π° Π±Ρ‹Ρ‚ΡŒ потСряна информация Π½Π΅ ΠΎ Π·Π°ΠΊΠ°Π·Π΅, Π° ΠΎΠ± ΠΎΠΏΠ»Π°Ρ‚Π΅ (Рис. 4, Π±) ΠΈΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², всС исправлСния Π±Ρ‹Π»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ внСсСны (Рис. 4, Π²). ВсС опрСдСляСтся Π²Π·Π°ΠΈΠΌΠ½Ρ‹ΠΌΠΈ скоростями ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΡ… ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² являСтся слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π‘ΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ‚ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ раздСляСмыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ зависит ΠΎΡ‚ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ скоростСй ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π³ΠΎΠ½ΠΊΠ°ΠΌΠΈ.

Рис. 4. ВлияниС ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… скоростСй ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

1.8 ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π₯отя каТдая Π·Π°Π΄Π°Ρ‡Π° Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, выполняСт ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠΈ (синхронизации) дСйствий, выполняСмых Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. Π’ Ρ‡Π°ΡΡ‚ности, такая синхронизация Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°, Ссли трСбуСтся ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ доступ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌΡƒ рСсурсу.

РСсурс — это ΠΎΠ±Ρ‰ΠΈΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ физичСскоС устройство ΠΈΠ»ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ для использования нСсколькими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. Если рСсурс ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколькими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, Ρ‚ΠΎ ΠΎΠ½ Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ся раздСляСмым. Если Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ рСсурс ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, Ρ‚ΠΎ ΠΎΠ½ ΡΠ²Π»ΡΠ΅Ρ‚ся нСраздСляСмым. НСраздСляСмый рСсурс называСтся критичСским.

НСраздСлСниС рСсурсов происходит ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½:

1. ЀизичСская ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° рСсурса Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅: Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒΡŽ листов Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… процСссов.

2. РСсурс Ρ‚Π°ΠΊΠΎΠ², Ρ‡Ρ‚ΠΎ Ссли ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся нСсколькими процСссами ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Π΅ΠΉΡΡ‚виями Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. НапримСр, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти содСрТит ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, доступныС для Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса: Ссли ΠΎΠ΄ΠΈΠ½ процСсс провСряСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π² Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ…, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ нСпрСдсказуСм ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π³ΠΈΠ±Π΅Π»Π΅Π½. НСраздСляСмыС рСсурсы Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² ΡΠ΅Π±Ρ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств, доступных для записи Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π΅Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡ‹ΠΌ рСсурсам Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ процСссу. Бпособ взаимодСйствия, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ обращСния ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΊ Π½Π΅Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌΡƒ рСсурсу всСм Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ это запрСщаСтся, называСтся Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. НСраздСляСмыС рСсурсы, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΠΏΠ΅Ρ€ΠΈΡ„Срия, Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ доступа ΠΏΡƒΡ‚Π΅ΠΌ принятия ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ€ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ выполнСния процСссами участков ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ этот доступ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚. Π­Ρ‚ΠΈ участки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ критичСскими сСкциями. Когда Π·Π°Π΄Π°Ρ‡Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π½Π΅Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡ‹ΠΌ рСсурсом, Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΡΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° находится Π² ΡΠ²ΠΎΠ΅ΠΉ критичСской сСкции (ΠΈΠ»ΠΈ Π² ΡΠ²ΠΎΠ΅ΠΌ критичСском участкС). Π’Π·Π°ΠΈΠΌΠ½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ рСсурсов эквивалСнтны Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΌΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ выполнСния этих критичСских сСкций: Ссли ΠΎΠ΄Π½Π° Π·Π°Π΄Π°Ρ‡Π° находится Π² ΡΠ²ΠΎΠ΅ΠΉ критичСской сСкции, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вхоТдСния для всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡ Π² ΠΈΡ… ΠΊΡ€ΠΈΡ‚ичСскиС сСкции. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, критичСская сСкция являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ процСсса, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π±Π΅Π· прСрывания со ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссов, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ ΠΈ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса Π΄Ρ€ΡƒΠ³ΠΈΠΌ. НапримСр, процСссы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΎΡ‚ Π΄ΠΎΡΡ‚ΡƒΠΏΠ° ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ссли всС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, написаны ΠΊΠ°ΠΊ критичСскиС сСкции Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Π΄Π°Π½Π½ΠΎΠ΅ врСмя.

Когда ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ процСсс находится Π² ΡΠ²ΠΎΠ΅ΠΌ критичСском участкС, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы ΠΌΠΎΠ³ΡƒΡ‚, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ Π±Π΅Π· Π²Ρ…ΠΎΠ΄Π° Π² ΠΈΡ… ΠΊΡ€ΠΈΡ‚ичСскиС участки. Когда процСсс Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· ΡΠ²ΠΎΠ΅Π³ΠΎ критичСского участка, Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… процСссов, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… Π²Ρ…ΠΎΠ΄Π° Π² ΡΠ²ΠΎΠΈ критичСскиС участки, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ (Ссли Π² ΡΡ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅ΡΡ‚ΡŒ процСсс Π² ΡΠΎΡΡ‚оянии оТидания).

Когда процСсс находится Π² ΡΠ²ΠΎΠ΅ΠΌ критичСском участкС, это Π΅Π³ΠΎ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΡƒ обязываСт. Π’ ΡΡ‚ΠΎΠΌ особом Ρ€Π΅ΠΆΠΈΠΌΠ΅ процСсс ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΎ доступа ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ, Π° Π²ΡΠ΅ΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ процСссам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π² Ρ‚ΠΎ ΠΆΠ΅ самоС врСмя трСбуСтся доступ ΠΊ ΡΡ‚ΠΈΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ, приходится ΠΆΠ΄Π°Ρ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ процСссы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ свои критичСскиС участки ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π² ΡΡ‚ΠΎΡ‚ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ критичСскиС участки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ (Ρ‡Ρ‚ΠΎΠ±Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ возмоТности зацикливания Π²Π½ΡƒΡ‚Ρ€ΠΈ критичСского участка).

Если процСсс, находящийся Π² ΡΠ²ΠΎΠ΅ΠΌ критичСском участкС, Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, Π»ΠΈΠ±ΠΎ СстСствСнным, Π»ΠΈΠ±ΠΎ Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ, Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ слуТСбных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ процСссов Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, с Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΡΠ²ΠΎΠΈ критичСскиС участки.

ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ:

Β· Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ структур раздСляСмых Π΄Π°Π½Π½Ρ‹Ρ…;

Β· отсутствиСм Π²Π·Π°ΠΈΠΌΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π·Π°Π΄Π°Ρ‡;

Β· отсутствиС Ρ‚ΡƒΠΏΠΈΠΊΠΎΠ².

Π”Π²Π΅ (ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅) Π·Π°Π΄Π°Ρ‡ΠΈ находятся Π² ΡΠΎΡΡ‚оянии Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, Ссли ΠΎΠ΄Π½Π° Π·Π°Π΄Π°Ρ‡Π° ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ рСсурс, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, Π² Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΊΠ°ΠΊ Π΅ΠΉ ΡΠ°ΠΌΠΎΠΉ трСбуСтся рСсурс, ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ этой Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ находится Π² ΡΠΎΡΡ‚оянии Ρ‚ΡƒΠΏΠΈΠΊΠ°, Ссли ΠΎΠ½ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ события, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚.

Одним ΠΈΠ· ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΡ… срСдств обСспСчСния цСлостности раздСляСмых Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π½Π΅Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌΡƒ рСсурсу являСтся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сСмафоров. Π‘Π΅ΠΌΠ°Ρ„ΠΎΡ€Ρ‹ Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ выполнСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ участка ΠΊΠΎΠ΄Π° нСсколькими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π‘Π°ΠΌΡ‹ΠΉ простой сСмафор — Π·Π°ΠΌΠΎΠΊ (lock) ΠΈΠ»ΠΈ mutex (ΠΎΡ‚ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ mutually exclusive, Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ). Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠ³Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ критичСский участок ΠΊΠΎΠ΄Π°, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° сначала Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π°ΠΌΠΎΠΊ. ПослС Π·Π°Ρ…Π²Π°Ρ‚Π° Π·Π°ΠΌΠΊΠ° Π·Π°Π΄Π°Ρ‡Π° выполняСт критичСский участок ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ освобоТдаСт Π·Π°ΠΌΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ другая Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠ³Π»Π° Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ охраняСмый Π·Π°ΠΌΠΊΠΎΠΌ критичСский участок своСго ΠΊΠΎΠ΄Π°. Π—Π°Π΄Π°Ρ‡Π°, ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ²ΡˆΠΈΡΡŒ с Π·Π°Π½ΡΡ‚Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π·Π°ΠΌΠΊΠΎΠΌ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΆΠ΄Π΅Ρ‚ Π΅Π³ΠΎ освобоТдСния.

1.9 ВрСбования ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ синхронизации

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для критичСских участков, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ возникновСния race condition, Π½ΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся достаточной для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… процСссов. Π‘Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡΡ‚ΡŒ условий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ для Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ взаимодСйствия процСссов, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… критичСскиС участки, Ссли ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ порядкС:

1. Π—Π°Π΄Π°Ρ‡Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Π° чисто ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ способом Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ машинС, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. ΠŸΡ€ΠΈ этом прСдполагаСтся, Ρ‡Ρ‚ΠΎ основныС инструкции языка программирования ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌΠΈ опСрациями.

2. НС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… скоростях Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ процСссов ΠΈΠ»ΠΈ числС процСссоров, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ.

3. Если процСсс Pi ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся Π² ΡΠ²ΠΎΠ΅ΠΌ критичСском участкС, Ρ‚ΠΎ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² ΡΠ²ΠΎΠΈΡ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… критичСских сСкциях. Π­Ρ‚ΠΎ условиС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ условия Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (mutual exclusion).

4. ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π²Π½Π΅ своих критичСских участков ΠΈ Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ся Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π½ΠΈΡ…, Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ процСссам Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΈΡ… ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ критичСскиС участки. Если Π½Π΅Ρ‚ процСссов Π² ΠΊΡ€ΠΈΡ‚ичСских сСкциях, ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ся процСссы, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅ Π²ΠΎΠΉΡ‚ΠΈ Π² Π½ΠΈΡ…, Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ся Π² remainder section, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ процСсс Π²ΠΎΠΉΠ΄Π΅Ρ‚ Π² ΡΠ²ΠΎΡŽ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠ΅ΠΊΡ†ΠΈΡŽ. Π’Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ бСсконСчно Π΄ΠΎΠ»Π³ΠΎ. Π­Ρ‚ΠΎ условиС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ условия прогрСсса (progress).

5. НС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ бСсконСчного оТидания для Π²Ρ…ΠΎΠ΄Π° процСсса Π² ΡΠ²ΠΎΠΉ критичСский участок. ΠžΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° процСсс запросил Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Ρ…ΠΎΠ΄ Π² ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠ΅ΠΊΡ†ΠΈΡŽ, ΠΈ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΡΡ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ», Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· свои критичСскиС участки лишь ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ число Ρ€Π°Π·. Π­Ρ‚ΠΎ условиС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ условия ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ оТидания (bound waiting).

Надо Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ описаниС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ описаниС способа ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ»ΠΎΠ³Π° ΠΈ ΡΠΏΠΈΠ»ΠΎΠ³Π° для критичСской сСкции.

1.10 Алгоритмы синхронизации

1.10.1 Π—Π°ΠΏΡ€Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ

НаиболСС простым Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ являСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ организация ΠΏΡ€ΠΎΠ»ΠΎΠ³Π° ΠΈ ΡΠΏΠΈΠ»ΠΎΠ³Π°:

while (условиС) {

Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ всС прСрывания

критичСская сСкция

Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ всС прСрывания

ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄

}

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

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π·Π°ΠΏΡ€Π΅Ρ‚ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ»ΠΎΠ³ ΠΈ ΡΠΏΠΈΠ»ΠΎΠ³ ΠΊ ΠΊΡ€ΠΈΡ‚ичСским сСкциям Π²Π½ΡƒΡ‚Ρ€ΠΈ самой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

1.10.2 ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ-Π·Π°ΠΌΠΎΠΊ

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… процСссов рассмотрим Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ всСм процСссам, ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π΅Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½Ρ‹ΠΌ 0. ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠΉΡ‚ΠΈ Π² ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠ΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-Π·Π°ΠΌΠΊΠ° Ρ€Π°Π²Π½ΠΎ 0, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ измСняя Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° 1 — закрывая Π·Π°ΠΌΠΎΠΊ. ΠŸΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· ΠΊΡ€ΠΈΡ‚ичСской сСкции процСсс сбрасываСт Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² 0 — Π·Π°ΠΌΠΎΠΊ открываСтся.

shared int lock = 0;

while (условиС) {

while(lock); lock = 1;

критичСская сСкция

lock = 0;

ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄

}

К ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ, Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚воряСт ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ дСйствиС while (lock); lock = 1; Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌ. Допустим, Ρ‡Ρ‚ΠΎ процСсс P0 протСстировал Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ lock ΠΈ ΠΏΡ€ΠΈΠ½ΡΠ» Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС. Π’ ΡΡ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π΅Ρ‰Π΅ Π΄ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ lock значСния 1, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Π» ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссу P1. Он Ρ‚ΠΎΠΆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ lock ΠΈ Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠΉΡ‚ΠΈ Π² ΠΊΡ€ΠΈΡ‚ичСский участок. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π²Π° процСсса ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… свои критичСскиС сСкции.

1.10.3 Алгоритм ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π°

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ всСм трСбованиям ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ ΠΈΠ΄Π΅ΠΈ Ρ€Π°Π½Π΅Π΅ рассмотрСнных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ датским ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΌ Π”Π΅ΠΊΠΊΠ΅Ρ€ΠΎΠΌ (Dekker). Π’ 1981 Π³ΠΎΠ΄Ρƒ ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½ (Peterson) ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Π±ΠΎΠ»Π΅Π΅ изящноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. ΠŸΡƒΡΡ‚ΡŒ ΠΎΠ±Π° процСсса ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρƒ Ρ„Π»Π°Π³ΠΎΠ² готовности ΠΈ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ очСрСдности.

shared int ready[2] = {0, 0};

shared int turn;

while (условиС) {

ready[i] = 1;

turn =1- i;

while (ready[1-i] && turn == 1-i);

критичСская сСкция

ready[i] = 0;

ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄

}

ΠŸΡ€ΠΈ исполнСнии ΠΏΡ€ΠΎΠ»ΠΎΠ³Π° критичСской сСкции процСсс Pi Π·Π°ΡΠ²Π»ΡΠ΅Ρ‚ ΠΎ ΡΠ²ΠΎΠ΅ΠΉ готовности Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ критичСский участок ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ процСссу ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ. Если ΠΎΠ±Π° процСсса подошли ΠΊ ΠΏΡ€ΠΎΠ»ΠΎΠ³Ρƒ практичСски ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π° ΠΎΠ±ΡŠΡΠ²ΡΡ‚ ΠΎ ΡΠ²ΠΎΠ΅ΠΉ готовности ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ°Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ. ΠŸΡ€ΠΈ этом ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ всСгда послСдуСт послС Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π’Π΅ΠΌ самым Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² ΠΊΡ€ΠΈΡ‚ичСском участкС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ процСсс, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±Ρ‹Π»ΠΎ сдСлано послСднСС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π£Π΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ 1 ΠΈ 2 ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ.

Π”ΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ условия Π²Π·Π°ΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΎΡ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ. ΠŸΡƒΡΡ‚ΡŒ ΠΎΠ±Π° процСсса ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ оказались Π²Π½ΡƒΡ‚Ρ€ΠΈ своих критичСских сСкций. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ процСсс Pi ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠΉΡ‚ΠΈ Π² ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠ΅ΠΊΡ†ΠΈΡŽ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ready[1-i] == 0 ΠΈΠ»ΠΈ turn == i. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ Ссли ΠΎΠ±Π° процСсса ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ свои критичСскиС сСкции, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ Ρ„Π»Π°Π³ΠΎΠ² готовности для ΠΎΠ±ΠΎΠΈΡ… процСссов ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΈ Ρ€Π°Π²Π½Ρ‹ 1. Могли Π»ΠΈ ΠΎΠ±Π° процСсса Π²ΠΎΠΉΡ‚ΠΈ Π² ΠΊΡ€ΠΈΡ‚ичСскиС сСкции ΠΈΠ· ΡΠΎΡΡ‚ояния, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΎΠ±Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ выполнСния Ρ†ΠΈΠΊΠ»Π° while? НСт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡ‚ΠΎΠΌ случаС пСрСмСнная turn Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»Π° Π±Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ значСния 0 ΠΈ 1 (ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π° процСсса Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ†ΠΈΠΊΠ», Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚). ΠŸΡƒΡΡ‚ΡŒ процСсс P0 ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ вошСл Π² ΠΊΡ€ΠΈΡ‚ичСский участок, Ρ‚ΠΎΠ³Π΄Π° процСсс P1 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π² Ρ†ΠΈΠΊΠ» while, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΎΠ΄ΠΈΠ½ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΡΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ (turn = 0;). Однако послС этого ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡ критичСского участка процСсса P0, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² Ρ†ΠΈΠΊΠ» ready[0] == 1 ΠΈ turn == 0, ΠΈ ΡΡ‚ΠΈ значСния Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° процСсс P0 Π½Π΅ ΠΏΠΎΠΊΠΈΠ½Π΅Ρ‚ свой критичСский участок. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠΌΠ΅Π΅Ρ‚ мСсто Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π”ΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ условия прогрСсса. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ, Π±Π΅Π· ограничСния общности, процСсс P0. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠΉΡ‚ΠΈ Π² ΡΠ²ΠΎΡŽ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠ΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ совмСстном Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ условий ready[1] == 1 ΠΈ turn == 1. Если процСсс P1 Π½Π΅ Π³ΠΎΡ‚ΠΎΠ² ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ критичСского участка, Ρ‚ΠΎ ready[1] == 0 ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡ P0 ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄. Если процСсс P1 Π³ΠΎΡ‚ΠΎΠ² ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ критичСского участка, Ρ‚ΠΎ ready[1] == 1 ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ turn ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ 0, Π»ΠΈΠ±ΠΎ 1, позволяя Π»ΠΈΠ±ΠΎ процСссу P0, Π»ΠΈΠ±ΠΎ процСссу P1 Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ критичСской сСкции. Если процСсс P1 Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ критичСского участка, Ρ‚ΠΎ ΠΎΠ½ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ свой Ρ„Π»Π°Π³ готовности ready[1] == 0, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ процСссу P0 ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ критичСской Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, условиС прогрСсса выполняСтся.

ΠžΡ‚ΡΡŽΠ΄Π° ΠΆΠ΅ Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ условия ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ оТидания. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ оТидания Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Π²Ρ…ΠΎΠ΄ процСсс P0 Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΎΠ½ ΡΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ исполнСниС своСго критичСского участка послС Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° ΠΏΠΎ ΠΊΡ€ΠΈΡ‚ичСской сСкции процСсса P1.

1.10.4 Алгоритм Π±ΡƒΠ»ΠΎΡ‡Π½ΠΎΠΉ (Bakery algorithm)

Алгоритм ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π° Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ взаимодСйствия Π΄Π²ΡƒΡ… процСссов. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для n Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… процСссов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±ΡƒΠ»ΠΎΡ‡Π½ΠΎΠΉ. Основная Π΅Π³ΠΎ идСя выглядит Ρ‚Π°ΠΊ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ вновь ΠΏΡ€ΠΈΠ±Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (ΠΎΠ½ ΠΆΠ΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡ) ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚Π°Π»ΠΎΠ½Ρ‡ΠΈΠΊ Π½Π° ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠ΅ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ с Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π½Π° Ρ‚Π°Π»ΠΎΠ½Ρ‡ΠΈΠΊΠ΅ обслуТиваСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ. К ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ, ΠΈΠ·-Π·Π° нСатомарности ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вычислСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±ΡƒΠ»ΠΎΡ‡Π½ΠΎΠΉ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ Π²ΡΠ΅Ρ… процСссов Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π°Π»ΠΎΠ½Ρ‡ΠΈΠΊΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ равСнства Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π½Π° Ρ‚Π°Π»ΠΎΠ½Ρ‡ΠΈΠΊΠ°Ρ… Ρƒ Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ обслуТиваСтся ΠΊΠ»ΠΈΠ΅Π½Ρ‚ с ΠΌΠ΅Π½ΡŒΡˆΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ (ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π² Π»Π΅ΠΊΡΠΈΠΊΠΎΠ³Ρ€Π°Ρ„ичСском порядкС). РаздСляСмыС структуры Π΄Π°Π½Π½Ρ‹Ρ… для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° — это Π΄Π²Π° массива

shared enum {false, true} choosing[n];

shared int number[n];

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ элСмСнты этих массивов ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ΡΡ значСниями false ΠΈ 0 соотвСтствСнно. Π’Π²Π΅Π΄Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ обозначСния

(a, b) < (c, d), Ссли a < c ΠΈΠ»ΠΈ Ссли a == c ΠΈ b < d

max (a0, a1,.…, an) — это число k Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ k >= ai для всСх i = 0,.., n

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° процСсса Pi Π΄Π»Ρ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π±ΡƒΠ»ΠΎΡ‡Π½ΠΎΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½ΠΈΠΆΠ΅

while (условиС) {

choosing[i] = true;

number[i] = max (number[0],.., number[n-1]) + 1;

choosing[i] = false;

for (j = 0; j < n; j++){

while (choosing[j]);

while (number[j] ≠ 0 && (number[j], j) < (number[i], i));

}

критичСская сСкция

number[i] = 0;

ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄

}

1.11 Π’Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°

РассмотрСнныС Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ хотя ΠΈ ΡΠ²Π»ΡΡŽΡ‚ся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ, Π½ΠΎ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈ ΠΈ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΡΠ»Π΅Π³Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° оТидания Π²Ρ…ΠΎΠ΄Π° Π² ΠΊΡ€ΠΈΡ‚ичСский участок Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ достаточно Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ процСсса Π² ΠΏΡƒΡΡ‚ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅, Π²Ρ…ΠΎΠ»ΠΎΡΡ‚ΡƒΡŽ поТирая Π΄Ρ€Π°Π³ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ врСмя процСссора. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ нСдостатки Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², построСнных срСдствами ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… языков программирования. Допустим, Ρ‡Ρ‚ΠΎ Π² Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ систСмС находятся Π΄Π²Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… процСсса: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… — H — с Π²Ρ‹ΡΠΎΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, Π΄Ρ€ΡƒΠ³ΠΎΠΉ — L — с Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. ΠŸΡƒΡΡ‚ΡŒ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ устроСн Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ процСсс с Π²Ρ‹ΡΠΎΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ вытСсняСт Π½ΠΈΠ·ΠΊΠΎΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ процСсс всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π³ΠΎΡ‚ΠΎΠ² ΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ, ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ процСссор Π½Π° Π²ΡΠ΅ врСмя своСго CPU burst (Ссли Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡ‚ся процСсс с Π΅Ρ‰Π΅ большим ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ). Π’ΠΎΠ³Π΄Π° Π² ΡΠ»ΡƒΡ‡Π°Π΅, ΠΊΠΎΠ³Π΄Π° процСсс L Π½Π°Ρ…одится Π² ΡΠ²ΠΎΠ΅ΠΉ критичСской сСкции, Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡ H, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² процСссор, подошСл ΠΊΠΎ Π²Ρ…ΠΎΠ΄Ρƒ Π² ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚ΡƒΠΏΠΈΠΊΠΎΠ²ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ H Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠΉΡ‚ΠΈ Π² ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² Ρ†ΠΈΠΊΠ»Π΅, Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡ L Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ управлСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠΈΠ½ΡƒΡ‚ΡŒ критичСский участок.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ синхронизации Π±ΠΎΠ»Π΅Π΅ высокого уровня: сСмафоры ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρ‹.

Π’ 1974 Π³ΠΎΠ΄Ρƒ Π₯ΠΎΡ€ΠΎΠΌ (Hoare) Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ синхронизации высокого уровня, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠ².

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ с ΡƒΡΠΏΠ΅Ρ…ΠΎΠΌ Π²Π½Π΅Π΄Ρ€Π΅Π½ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки программирования. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ своими собствСнными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΌΠΈ Π΅Π³ΠΎ состояниС. ЗначСния этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ·Π²Π½Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρƒ. Π’ ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡΠ²ΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅, находящиСся Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΈ ΡΠ²ΠΎΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ состоит ΠΈΠ·:

Β· Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… с ΠΎΠ±Ρ‰ΠΈΠΌ рСсурсом

Β· ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠ°

Β· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, связанных с ΡΡ‚ΠΈΠΌ рСсурсом

Β· ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт условия, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ состояниС Π³ΠΎΠ½ΠΊΠΈ На Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ‚Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ структуру ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

monitor monitor_name {

описаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ;

void mn(…){… }

{Π±Π»ΠΎΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½ΠΈΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ;} }

Π—Π΄Π΅ΡΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ m1,…, mn ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°, Π° Π±Π»ΠΎΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… содСрТит ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·: ΠΏΡ€ΠΈ создании ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ самом ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΄ΠΎ Π΅Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.

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

Однако ΠΎΠ΄Π½ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π½Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ объСмС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ взаимодСйствии процСссов. НуТны Π΅Ρ‰Π΅ ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ очСрСдности процСссов, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ сСмафорам full ΠΈ empty. Для этого Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°Ρ… Π±Ρ‹Π»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ понятиС условных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (condition variables), Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Π΄Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ wait ΠΈ signal, Π΄ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ P ΠΈ V Π½Π°Π΄ сСмафорами.

Если функция ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ дальшС, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΡΡ‚ΡƒΠΏΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ событиС, ΠΎΠ½Π° выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ wait Π½Π°Π΄ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ условной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΡ€ΠΈ этом процСсс, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ²ΡˆΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ wait, блокируСтся, становится Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ процСсс ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΠΉΡ‚ΠΈ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€.

Когда ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ событиС происходит, Π΄Ρ€ΡƒΠ³ΠΎΠΉ процСсс Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ signal Π½Π°Π΄ Ρ‚ΠΎΠΉ ΠΆΠ΅ самой условной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€ΠΎΠ±ΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ Ρ€Π°Π½Π΅Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ процСсса, ΠΈ ΠΎΠ½ ΡΡ‚ановится Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ. Если нСсколько процСссов доТидались ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ signal для этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ становится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ…. Π§Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ Π½Π°Ρ Π½Π΅ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡŒ Π΄Π²ΡƒΡ… процСссов, Ρ€Π°Π·Π±ΡƒΠ΄ΠΈΠ²ΡˆΠ΅Π³ΠΎ ΠΈ ΠΏΡ€ΠΎΠ±ΡƒΠΆΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°? Π₯ΠΎΡ€ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ±ΡƒΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ процСсс подавлял исполнСниС Ρ€Π°Π·Π±ΡƒΠ΄ΠΈΠ²ΡˆΠ΅Π³ΠΎ процСсса, ΠΏΠΎΠΊΠ° ΠΎΠ½ ΡΠ°ΠΌ Π½Π΅ ΠΏΠΎΠΊΠΈΠ½Π΅Ρ‚ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€. НСсколько ΠΏΠΎΠ·ΠΆΠ΅ Π₯ансСн (Hansen) ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ: Ρ€Π°Π·Π±ΡƒΠ΄ΠΈΠ²ΡˆΠΈΠΉ процСсс ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ‚ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ послС исполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ signal.

РСализация ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠ² Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… языков программирования ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ΠΎΠ² для Π½ΠΈΡ…. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρ‹ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π² Ρ‚Π°ΠΊΠΈΡ… языках ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π•Π²ΠΊΠ»ΠΈΠ΄, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ Паскаль, Java ΠΈ Ρ‚. Π΄. Но ΡΠΌΡƒΠ»ΡΡ†ΠΈΡ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… языков программирования Π½Π΅ Ρ‚Π°ΠΊ проста, ΠΊΠ°ΠΊ эмуляция сСмафоров.

1.12 Π’Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ сСмафора

Π’ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм сСмафор прСдставляСт собой Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π»ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ: P ΠΈ V.

P-опСрация Π½Π°Π΄ сСмафором прСдставляСт собой ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ значСния сСмафора Π½Π° 1. Если ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ P-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСмафора Π±Ρ‹Π»ΠΎ большС 0, Ρ‚ΠΎ P-опСрация выполняСтся Π±Π΅Π· Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ. Если ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ P-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСмафора Π±Ρ‹Π»ΠΎ 0, Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ P-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, пСрСводится Π² ΡΠΎΡΡ‚ояниС оТидания Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСмафора Π½Π΅ ΡΡ‚Π°Π½Π΅Ρ‚ большим 0.

V-опСрация Π½Π°Π΄ сСмафором прСдставляСт собой ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ значСния сСмафора Π½Π° 1. Если ΠΏΡ€ΠΈ этом ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ процСссы, Π·Π°Π΄Π΅Ρ€ΠΆΠ°Π½Π½Ρ‹Π΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ P-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ сСмафорС, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… процСссов Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· ΡΠΎΡΡ‚ояния оТидания ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ свою P-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ.

Π‘Π΅ΠΌΠ°Ρ„ΠΎΡ€Ρ‹, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ Π΄Π²Π° значСния (с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ значСниями 0 ΠΈ 1), Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ. Π‘Ρ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠ΅ сСмафоры (сСмафоры со ΡΡ‡Π΅Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ) ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ†Π΅Π»Ρ‹Π΅ Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния, большиС Π΄Π²ΡƒΡ….

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ P ΠΈ V ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅Π΄Π΅Π»ΠΈΠΌΡ‹ΠΌΠΈ. ΠΠ΅Π΄Π΅Π»ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ P ΠΈΠ»ΠΈ V Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌ сСмафором. ΠΠ΅Π΄Π΅Π»ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли нСсколько процСссов Π·Π°Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° P-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ свою P-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСмафора стало большС 0, ΠΏΡ€ΠΈ этом Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ся ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ это Π±ΡƒΠ΄Π΅Ρ‚ процСсс.

Π‘ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ сСмафором связываСтся список (ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ) процСссов, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ сСмафор. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ дСйствия Π½Π°Π΄ процСссами. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ для исполнСния Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ процСсс. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ процСсс ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΡΠΏΠΈΡΠΎΠΊ, связанный с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ сСмафором. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс, Ρ‚Π΅ΠΌ самым, пСрСводя Π΅Π³ΠΎ Π² Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ ΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ состояниС ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π΅ΠΌΡƒ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ исполнСниС. ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² ΡΠΏΠΈΡΠΊΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΉ процСсс Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ сСмафор Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ, ΠΊΠ°ΠΊ Π² ΡΠ»ΡƒΡ‡Π°Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ оТидания. ВмСсто Π½Π΅Π³ΠΎ Π½Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΎΠΉ процСсс.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ