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

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, классификация

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

Π›Π°ΠΌΠΏΠΎΡ€Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» свой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΏΠ΅ΠΊΠ°Ρ€Π½Π΅ΠΉ (Π±ΡƒΠ»ΠΎΡ‡Π½ΠΎΠΉ). Π£ Π½Π°Ρ аналогичная систСма сущСствуСт Π² ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ… быстрого питания ΠΈΠ»ΠΈ Π² ΠΏΠΎΠ»ΠΈΠΊΠ»ΠΈΠ½ΠΈΠΊΠ°Ρ…. ΠŸΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΡƒ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ. Π’ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ производится обслуТиваниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ΠŸΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΡƒ ΠΎΡ‚Π΄Π°Π΅Ρ‚. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ обслуТиваСтся вошСдший ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€. Π’Π°ΠΊ ΠΊΠ°ΠΊ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, классификация (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

По ΠΌΠ΅ΡΡ‚ΠΎΠ½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° управлСния процСссами, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π²Π° способа ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

  • Β· внСшниС;
  • Β· Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ (ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅).

Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌΠΈ процСссами снаруТи. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ управлСния процСссами ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ встроСн Π² ΡΡ€Π΅Π΄Ρƒ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΡƒΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΡƒΡŽ модСль вычислСний, Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ, систСмного процСсса, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌΠΈ процСссами.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ управлСния ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°, Π²Ρ‚ΠΎΡ€ΠΎΠΉ — Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°.

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

Π’Π΅Ρ€ΠΌΠΈΠ½ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² ΠΊΠΎΠ½Ρ‚СкстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм. Π’Π΅Ρ€ΠΌΠΈΠ½ Π°Ρ€Π±ΠΈΡ‚Ρ€ Ρ‡Π°Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Π² ΠΊΠΎΠ½Ρ‚СкстС Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… устройств. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π°Ρ€Π±ΠΈΡ‚Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… систСмных ΠΈ Π²Π½ΡƒΡ‚рисистСмных интСрфСйсах.

Если сущСствуСт Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ планирования, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ поставлСнной Π·Π°Π΄Π°Ρ‡Π΅ ΠΈ ΡƒΡΠ»ΠΎΠ²ΠΈΡΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы, Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°.

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

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ΠΎΠ² внСшниС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ся особой ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ. Π‘ΡƒΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами производится Π½Π΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· ΡΠ΄Ρ€Π° ΠžΠ‘ Π Π’, Π° ΠΈΠ· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса). ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ИспользованиС Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ‡Π°Ρ‰Π΅ всСго ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π΅, ΡƒΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ Π΅Ρ‘ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΠΈ. Из-Π·Π° большой слоТности повСдСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (часто нСопрСдСлСнности повСдСния) Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ фактичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° носит эвристичСский Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€.

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹.

  • Β· Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ…ΠΎΠ΄Π° ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΡ… ΠΊΡ€ΠΈΡ‚ичСской сСкции Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ поэтапными (Π² ΠΊΡ€ΠΈΡ‚ичСской сСкции ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ большС ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅):
    • — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π”Π΅ΠΊΠΊΠ΅Ρ€Π°;
    • — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π°;
    • — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ пСкарня;
  • Β· Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ…ΠΎΠ΄Π° ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠ΅ΠΊΡ†ΠΈΡŽ Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌΠΈ (Π½Π΅Π΄Π΅Π»ΠΈΠΌΡ‹ΠΌΠΈ), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ управлСния прСрываниями ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°Ρ‡. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Π°Ρ‰Π΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ:
  • — ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ критичСской сСкции Π·Π° ΡΡ‡Π΅Ρ‚ Π·Π°ΠΏΡ€Π΅Ρ‚Π° ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ (ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ процСссов);
  • — ΡΠ΅ΠΌΠ°Ρ„ΠΎΡ€Ρ‹ ДСйкстры.

Алгоритм ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π° — программная рСализация ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±Π΅Π· запрСщСния ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. Алгоритм ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π² ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ… Π½Π° Π±Π°Π·Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ вычислСний Π€ΠΎΠ½-НСймана. Алгоритм ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π² 1981 Π³ΠΎΠ΄Ρƒ Π“Π°Ρ€Ρ€ΠΈ ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½ΠΎΠΌ ΠΈΠ· ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠΈΡ‚Π΅Ρ‚Π° РочСстСр (БША). Π’ ΠΎΡΠ½ΠΎΠ²Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π° Π»Π΅Π³ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π”Π΅ΠΊΠΊΠ΅Ρ€Π°.

Алгоритм ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ограничСния.

  • Β· Алгоритм рассчитан Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° 2 процСсса (ΠΎΡ‚ ΡΡ‚ΠΎΠ³ΠΎ ограничСния свободСн Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ пСкарня (Bakery algorithm)).
  • Β· ΠŸΡ€ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ рСсурса процСссы Π½Π΅ ΡΠ½ΠΈΠΌΠ°ΡŽΡ‚ся с ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²ΠΏΡƒΡΡ‚ΡƒΡŽ тратят процСссорноС врСмя (Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅).

Алгоритм ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π° ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ отсутствиС атомарности Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΡ… чтСния ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π±Π΅Π· использования ΠΊΠΎΠΌΠ°Π½Π΄ управлСния прСрываниями.

Алгоритм Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСсса Π΅ΡΡ‚ΡŒ собствСнная пСрСмСнная flag[i] ΠΈ ΠΎΠ±Ρ‰Π°Ρ пСрСмСнная turn. ВсС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ хранятся Π² ΠΎΠ±Ρ‰Π΅ΠΉ для ΠΎΠ±ΠΎΠΈΡ… процСссов памяти. Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ flag запоминаСтся Ρ„Π°ΠΊΡ‚ Π·Π°Ρ…Π²Π°Ρ‚Π° рСсурса, Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ turn — Π½ΠΎΠΌΠ΅Ρ€ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΠ²ΡˆΠ΅Π³ΠΎ рСсурс процСсса.

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

flag[0] = 0.

flag[1] = 0.

turn = 0.

turn = 1 turn = 0.

Π’ Π½Π°Ρ‡Π°Π»Π΅ процСсс устанавливаСт Ρ„Π»Π°Π³ занятости, Π·Π°Ρ‚Π΅ΠΌ — Π½ΠΎΠΌΠ΅Ρ€ процСсса сосСда. ПослС этого ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ†ΠΈΠΊΠ» оТидания. Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° происходит, Ссли Ρ„Π»Π°Π³ занятости установлСн ΠΈ Π½ΠΎΠΌΠ΅Ρ€ процСсса соотвСтствуСт Π½ΠΎΠΌΠ΅Ρ€Ρƒ сосСда. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π°:

void mut_excl (int me /* 0 or 1 */).

{.

static int loser;

static int interested[2] = {0, 0};

int other; /* local variable */.

other = 1 — me;

interested[me] = 1;

loser = me;

while (loser == me && interested[other]).

;

/* critical section */.

interested[me] = 0;

}.

Алгоритм Π”Π΅ΠΊΠΊΠ΅Ρ€Π° — программная рСализация ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±Π΅Π· запрСщСния ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. Алгоритм ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π² ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ… Π½Π° Π±Π°Π·Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ вычислСний Π€ΠΎΠ½-НСймана. Алгоритм Π”Π΅ΠΊΠΊΠ΅Ρ€Π° ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½ΠΎΠΌ (см. Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π°).

Алгоритм ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ограничСния.

  • Β· Алгоритм рассчитан Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° 2 процСсса (ΠΎΡ‚ ΡΡ‚ΠΎΠ³ΠΎ ограничСния свободСн Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ пСкарня (Bakery algorithm)).
  • Β· ΠŸΡ€ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ рСсурса, процСссы Π½Π΅ ΡΠ½ΠΈΠΌΠ°ΡŽΡ‚ся с ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²ΠΏΡƒΡΡ‚ΡƒΡŽ тратят процСссорноС врСмя (Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅).

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠΎΠ½Π°.

  • Β· Если Π΄Π²Π° процСсса ΠΏΠΎΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠ΅ΠΊΡ†ΠΈΡŽ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²ΠΎΠΉΡ‚ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ процСссу, Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ соотвСтствуСт числу Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ turn.
  • Β· Если ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² ΡƒΠΆΠ΅ находится Π² ΠΊΡ€ΠΈΡ‚ичСской сСкции, Π΄Ρ€ΡƒΠ³ΠΎΠΉ процСсс Π±ΡƒΠ΄Π΅Ρ‚ находится Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ. НСобходимо Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ использованиС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π² ΠžΠ‘ Π Π’ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ процСсс Π½Π΅ ΡΠ½ΠΈΠΌΠ°Π΅Ρ‚ся с ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΠΏΡ€Π°ΡΠ½ΠΎ расходуСт процСссорноС врСмя.

f0:= false.

f1:= false.

turn:= 0 // or 1.

p0:

f0:= true.

while f1 {.

if turn? 0 {.

f0:= false.

while turn? 0 {.

}.

f0:= true.

}.

}.

// ΠΆΠ΄Π΅ΠΌ.

// Π½Π°Ρ‡Π°Π»ΠΎ критичСской сСкции.

// ΠΊΠΎΠ½Π΅Ρ† критичСской сСкции.

turn:= 1.

f0:= false.

p1:

f1:= true.

while f0 {.

if turn? 1 {.

f1:= false.

while turn? 1 {.

}.

f1:= true.

}.

}.

// ΠΆΠ΄Π΅ΠΌ.

// Π½Π°Ρ‡Π°Π»ΠΎ критичСской сСкции.

// ΠΊΠΎΠ½Π΅Ρ† критичСской сСкции.

turn:= 0.

f1:= false.

Алгоритм пСкарня — программная рСализация ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±Π΅Π· запрСщСния ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. Алгоритм пСкарня ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π² ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ… Π½Π° Π±Π°Π·Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ вычислСний Π€ΠΎΠ½-НСймана. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π”Π΅ΠΊΠΊΠ΅Ρ€Π° ΠΈ ΠŸΠ΅Ρ‚Срсона отсутствуСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ процСссов.

Π˜Π·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ ЛСсли Π›Π°ΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ (Leslie Lamport). ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ процСссов задаСтся случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠ»ΠΎΡ…ΠΎ прСдсказуСм ΠΈ ΠΏΡ€Π°ΠΊΡ‚ичСски Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ рСсурса процСссы Π½Π΅ ΡΠ½ΠΈΠΌΠ°ΡŽΡ‚ся с ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²ΠΏΡƒΡΡ‚ΡƒΡŽ тратят процСссорноС врСмя (Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅).

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

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ сСкция (Critical section) — это Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΎΠΉ процСсс. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ «ΠΊΡ€ΠΈΡ‚ичСская сСкция» ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π² Ρ‚Π΅Ρ… систСмах, Π³Π΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ дСйствия. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, критичСскиС сСкции ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ…, сдСланных Π½Π° Π±Π°Π·Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ вычислСний Π€ΠΎΠ½-НСймана ΠΈ Process Network. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, критичСскиС сСкции ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ классичСских ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ΠΎΠ², ΠΏΡ€ΠΈ использовании ΠžΠ‘ Π Π’ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ.

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ сСкция — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² управлСния процСссами.

Π’ ΠžΠ‘ Π Π’ ΠΊ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ трСбования:

  • Β· ΠŸΡ€ΠΎΡ†Π΅ΡΡ попавший Π² ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠ΅ΠΊΡ†ΠΈΡŽ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ навсСгда (Π³ΠΎΠ»ΠΎΠ΄).
  • Β· Если нСсколько процСссов вводят критичСскиС сСкции, Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ… Π²Ρ‹ΠΉΡ‚ΠΈ (взаимная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°).

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

  • Β· взаимная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°;
  • Β· ΡƒΡ‚Π΅Ρ‡ΠΊΠ° сСмафоров;
  • Β· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° синхронизации ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ сСмафоров.

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

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. ΠŸΡƒΡΡ‚ΡŒ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ 2 процСсса A ΠΈ B, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прСдоставлСны рСсурсы P1 ΠΈ P2, соотвСтствСнно. Π’ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ процСссу A ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΡΡ P2, Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡΡƒ B — P1, Π½ΠΎ ΠΎΠ½ΠΈ ΠΈΡ… Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚, Ρ‚.ΠΊ. ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ 97 процСссами.

ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ.

  • 1. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ процСсс Π½Π°Ρ‡Π½Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π΅ΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ прСдоставлСны всС Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ рСсурсы.
  • 2. Π’ Ρ‚ΠΎΠΌ случаС, Ссли Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΅ΠΌΡƒ понадобился Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ рСсурс, Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ всС Ρ€Π°Π½Π΅Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ рСсурсы ΠžΠ‘ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ всС Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ рСсурсы с ΡΡ‚ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ рСсурсом.

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

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

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

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии сСмафор ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ рСализуСтся Π² Π²ΠΈΠ΄Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ s, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ производится ΠΎΠ΄Π½ΠΈΠΌ (Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌ) дСйствиСм (Ρ‚.Π΅. ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ нСльзя ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ) с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ P (s) ΠΈ V (s).

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΡΠ΅ΠΌΠ°Ρ„ΠΎΡ€ записываСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. s = init_value;

БущСствуСт Π΄Π²Π° дСйствия Π½Π°Π΄ сСмафорами: P (s) — Π·Π°Π½ΡΡ‚ΡŒ сСмафор V (s) — ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ сСмафор. ΠŸΡ€ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΈ Π½Π° Π·Π°Π½ΡΡ‚Ρ‹ΠΉ сСмафор процСсс блокируСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π΄Ρ€ΡƒΠ³ΠΎΠΉ процСсс Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ сСмафор.

Ѐункция P (s):

if (s == 0).

Π—Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ_Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ_процСсс ();

else.

s—;

Ѐункция V (s):

if (s == 0).

Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ_ΠΎΠ΄ΠΈΠ½_ΠΈΠ·_процСссов ();

else.

s++;

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π’ ΡΠ΅Ρ‚ях Ethernet, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… способ доступа CSMA/CD, сСмафором являСтся сама шина. Π­Ρ‚ΠΎΡ‚ сСмафор ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ шина Π»ΠΈΠ±ΠΎ занята, Π»ΠΈΠ±ΠΎ Π½Π΅Ρ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Ethernet для раздСлСния рСсурса ΡˆΠΈΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ сСмафор ΠΈΠ»ΠΈ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡ.

Π’ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ сСмафор Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся ΠΈΠ·-Π·Π° нСдостатков, присущих сСмафорам. ВмСсто сСмафора Π² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ обСспСчСнии ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π°Ρ€Π±ΠΈΡ‚Ρ€.

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