Π”ΠΈΠΏΠ»ΠΎΠΌΡ‹, курсовыС, Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅...
Брочная ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅

КакиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ мСТпроцСссных ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π² ОБ UNIX Π’Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅?

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

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

КакиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ мСТпроцСссных ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π² ОБ UNIX Π’Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅? (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Под ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ процСссов Π² OS UNIX понимаСтся рСализация ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ процСссами. НаиболСС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ способом Ρ‚Π°ΠΊΠΎΠ³ΠΎ взаимодСйствия процСссов являСтся ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ„Π°ΠΉΠ», ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ процСссов Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Π½ΠΎΡΡ‚ΠΈ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΡΡ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

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

POSIX — mutex_init (), mutex_lock (), mutex_unlock (), mutex_destroy ().

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

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

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

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