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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС WindowsΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 62

Автор ДТонсон Π₯Π°Ρ€Ρ‚

β€’ Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ любого ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ любого ΠΏΠΎΡ‚ΠΎΠΊΠ° Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ.

β€’ ΠΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² качСствС Π·Π°ΠΌΠ΅Π½Ρ‹ явной синхронизации.

β€’ ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡ€ΠΈΠ±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ "вряд Π»ΠΈ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ" ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ коррСктности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, ΠΎΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ мСньшС всСго этого ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅.

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

β€’ ΠŸΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ быстродСйствия ΠΈ количСства процСссоров, вСрсии ОБ ΠΈ мноТСства Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ². ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² самых Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… систСмах ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹ΡΠ²Π»Π΅Π½ΠΈΡŽ всСвозмоТных Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ прСдостСрСТСниС остаСтся Π² силС.

β€’ Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ прСдусмотрСли для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² достаточно большой объСм стСка, хотя Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ стСка Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 1 ΠœΠ±Π°ΠΉΡ‚ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π²Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ.

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

β€’ Πš ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Ρ‡Π°Ρ‰Π΅ всСго ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ самыС простыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ‚Π΅, ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся ΡΠ»Π΅Π³Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΈ малСйшСй возмоТности ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ услоТнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ОТиданиС Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

НаконСц, рассмотрим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Sleep, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠΎΡ‚ΠΎΠΊΡƒ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ процСссора ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΈΠ· состояния выполнСния Π² состояниС оТидания, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π»ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. НапримСр, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒΡΡ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, послС Ρ‡Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ приостанавливаСтся. По истСчСнии ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° оТидания ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ вновь ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΡ‚ΠΎΠΊ Π² состояниС готовности. ИмСнно эта Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Π³Π»Π°Π²Π΅ 11 (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 11.4). 

VOID Sleep(DWORD dwMilliseconds) 

Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° оТидания указываСтся Π² миллисСкундах, ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ являСтся INFINITE, Ρ‡Ρ‚ΠΎ соотвСтствуСт бСсконСчному ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρƒ оТидания, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ приостанавливаСтся Π½Π° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя. Π—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ 0 соотвСтствуСт ΠΎΡ‚ΠΊΠ°Π· ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΡ‚ ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΉΡΡ части ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π΅ΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ°; Π² этом случаС ядро ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠ· состояния выполнСния Π² состояниС готовности, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 7.4.

Ѐункция SwitchToThread прСдоставляСт ΠΏΠΎΡ‚ΠΎΠΊΡƒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΡƒΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ процСссор Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ ΠΈΠ· числа Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² состоянии готовности, Ссли Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ. 

UNIX-функция sleep Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Sleep, Π½ΠΎ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° оТидания измСряСтся Π² сСкундах. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ миллисСкундноС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ select ΠΈΠ»ΠΈ poll Π±Π΅Π· дСскрипторов Ρ„Π°ΠΉΠ»ΠΎΠ².

ΠžΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ΠžΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ относятся ΠΊ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Π±Π·Π°Ρ†Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅ списка, ΠΈ Ρ€Π΅ΡˆΠΈΡ‚Π΅ для сСбя, стоит Π»ΠΈ Π²Π°ΠΌ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π».

ΠžΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ (fibers), ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ само ΠΈΡ… Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΡΠ²Π»ΡΡŽΡ‚ΡΡ элСмСнтами ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π’ΠΎΡ‡Π½Π΅Π΅, ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ β€” это Π΅Π΄ΠΈΠ½ΠΈΡ†Π° выполнСния Π² контСкстС ΠΏΠΎΡ‚ΠΎΠΊΠ°, планируСмая ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° Π½Π΅ ядром. Π’ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ нСсколько ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΈ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ сами ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ. ΠžΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ нСзависимыС стСки, Π½ΠΎ Π²ΠΎ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² контСкстС ΠΏΠΎΡ‚ΠΎΠΊΠ°, имСя, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, доступ ΠΊ TLS ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΡƒ[27], Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, вся Ρ€Π°Π±ΠΎΡ‚Π° с ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ осущСствляСтся Π²Π½Π΅ ядра ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ пространствС. ΠœΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ многочислСнныС отличия.

ΠžΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… цСлях. 

β€’ Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… прилоТСниях, особСнно Π² прилоТСниях UNIX, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ‚Π΅Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² настоящСС врСмя ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ, прСдусмотрСно ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ собствСнных ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². ИспользованиС ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ пСрСнос Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² срСду Windows. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ этот вопрос Π½Π΅ являСтся Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ, ΠΎΠ½ΠΈ, вСроятно, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΡƒΡ‚ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π».

β€’ ΠŸΠΎΡ‚ΠΎΠΊΠΈ вовсС Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠ°, ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… рСсурсов. ВмСсто этого ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ рСсурсы ΠΈ, Ссли эти рСсурсы ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ нСдоступными, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ.

β€’ ΠžΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π² контСкстС ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ рСсурсам ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ процСсса. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‰Π΅Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ Π½Π΅ примСняСтся. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΡƒ Windows ΠΎΠ± ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ извСстно; ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ осущСствляСтся ΠΈΠ· DLL ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ пространствС.

β€’ ΠžΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сопрограмм (co-routines), посрСдством ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими взаимосвязанными Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. Π”ΠΎΠ±ΠΈΡ‚ΡŒΡΡ этого с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² распоряТСнии программиста Π½Π΅Ρ‚ срСдств, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… нСпосрСдствСнноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒΡŽ выполнСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

β€’ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ этот элСмСнт ΠΊΠ°ΠΊ Ρ„Π°ΠΊΡ‚ΠΎΡ€ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Π°ΠΊ, Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Oracle Database 10g прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² "Ρ€Π΅ΠΆΠΈΠΌ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²" ("fiber mode") (см. http://download.oracle.com/owsf_2003/40171_colello.ppt; Ρ‚Π°ΠΌ ΠΆΠ΅ находится описаниС ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ).

API ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² прСдставлСн ΡˆΠ΅ΡΡ‚ΡŒΡŽ функциями. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΈΡ… использования описываСтся Π½ΠΈΠΆΠ΅ ΠΈ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ рис. 7.5.

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

2. ΠžΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateFiber. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ характСризуСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ адрСсом, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ стСка ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ идСнтифицируСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ адрСса, Π° Π½Π΅ дСскриптора.

3. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Π΅ΠΌΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ CreateFiber, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GetFiberData.

4. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСбя ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GetCurrentFiber.

5. Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ, ΡƒΠΊΠ°Π·Π°Π² Π΅Π³ΠΎ адрСс Π² Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SwitchToFiber. ΠžΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² контСкстС Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°.

6. Π€ΡƒΠ½ΠΊΡ†ΠΈΡ DeleteFiber ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ всС относящиСся ΠΊ Π½Π΅ΠΌΡƒ Π΄Π°Π½Π½Ρ‹Π΅.

7. Π’ Windows XP (NT 5.1) наряду с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ областями хранСния ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ ConvertFiberToThread (которая освобоТдаСт рСсурсы, созданныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ConvertThreadToFiber). 

Рис. 7.5. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° управлСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°


Π‘Ρ…Π΅ΠΌΠ° взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π² контСкстС ΠΏΠΎΡ‚ΠΎΠΊΠ° прСдставлСна Π½Π° рис. 7.5. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π²Π° способа вытСснСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

β€’ ΠŸΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (master-slave scheduling). Волько ΠΎΠ΄ΠΈΠ½, Π³Π»Π°Π²Π½Ρ‹ΠΉ (master) ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” основной, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, ΠΈ этот ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ всСгда уступаСт ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠΌΡƒ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊΠ΅. На рис. 7.5 Π³Π»Π°Π²Π½Ρ‹ΠΌ являСтся ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ 1.