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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 83

Автор Π‘Π΅Ρ€Ρ‚Ρ€Π°Π½ ΠœΠ΅ΠΉΠ΅Ρ€

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, хотя ΠΈ Π²Π°ΠΆΠ΅Π½, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… случаСв. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС приходится ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° слоТный вопрос - Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с нСдостиТимыми ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ?

Π’Ρ€ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°

Π‘ нСдостиТимыми ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ трСмя способами:

[x]. ΠŸΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ…Π²Π°Ρ‚ΠΈΡ‚ памяти для размСщСния всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²: достиТимых ΠΈ нСдостиТимых. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π½Π΅ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ (casual) ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ.

[x]. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΈΡ‰ΡƒΡ‰ΠΈΠΉ нСдостиТимыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΈ Π΄Π°Ρ‚ΡŒ ΠΈΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ освобоТдСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ памяти. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ называСтся восстановлСниСм Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ(manual reclamation) .

[x]. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ исполняСмой систСмы (runtime system)) ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, автоматичСски ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ нСдостиТимыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ автоматичСской сборкой мусора (automatic garbage collection).

ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ Π»Π΅ΠΊΡ†ΠΈΠΈ посвящСн этим ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌ.

ΠΠ΅ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ (Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ)

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹: ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΡ… ΡΡƒΠ΄ΡŒΠ±Π΅. Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Π½ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ волнуСтся ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΌ ΡΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ Π½Π΅ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄?

ΠΠ΅ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ создаСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² систСмах, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΡ… нСбольшоС число ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ простых тСстов ΠΈ экспСримСнтов.

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

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

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

Надо Π»ΠΈ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ памяти?

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ Π² ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΈΠ΅ Π½Π΅ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ, - это постоянный рост объСма доступной памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ Ρ†Π΅Π½Ρ‹ памяти.

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

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

К Π½Π΅ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, это Π½Π΅ Ρ‚Π°ΠΊ.

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ эквивалСнтна Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ. Если Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ большоС количСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ΅Π½ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ достиТимых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² рассыпано срСди Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° нСдостиТимых, Ρ‚ΠΎ процСсс выполнСния Π±ΡƒΠ΄Π΅Ρ‚ постоянно Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ страниц памяти, Ρ„Π΅Π½ΠΎΠΌΠ΅Π½, извСстный ΠΊΠ°ΠΊ пробуксовка (trashing), приводящий ΠΊ драматичСскому ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, систСмы Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ эффСктивноС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… основных аспСктов - пространства ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. (Π‘ΠΌ. "Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ", Π»Π΅ΠΊΡ†ΠΈΡŽ 1.)

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

Π‘Π°ΠΉΡ‚ здСсь, Π±Π°ΠΉΡ‚ Ρ‚Π°ΠΌ, ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠΊΠΎΠΉΠ½ΠΈΠΊΠΈ

ΠŸΠΎΡ€Π° ΠΏΠΎΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ ΠΏΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Лондонской слуТбы скорой ΠΏΠΎΠΌΠΎΡ‰ΠΈ.

Лондонская слуТба скорой ΠΏΠΎΠΌΠΎΡ‰ΠΈ, ΠΊΠ°ΠΊ говорят, самая большая Π² ΠΌΠΈΡ€Π΅, обслуТиваСт Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΡŽ ΠΎΠΊΠΎΠ»ΠΎ 1500 ΠΊΠ². ΠΊΠΌ, c постоянным насСлСниСм ΠΏΠΎΡ‡Ρ‚ΠΈ Π² сСмь ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΈ с Π΅Ρ‰Π΅ большим количСством насСлСния Π² Π΄Π½Π΅Π²Π½ΠΎΠ΅ врСмя. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь эта слуТба обслуТиваСт ΠΏΡΡ‚ΡŒ тысяч ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ Π΄Π²ΡƒΡ… Π΄ΠΎ Ρ‚Ρ€Π΅Ρ… тысяч Π·Π²ΠΎΠ½ΠΊΠΎΠ².

Как ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΌΡ€Π°Ρ‡Π½ΠΎΠΌΡƒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ, Π² этой Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ (Ρ‚ΠΎΡ‡Π½Π΅Π΅ ПО). Π’Π½Π°Ρ‡Π°Π»Π΅ Π±Ρ‹Π»ΠΎ нСсколько Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, Π΄Π°ΠΆΠ΅ Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² дСйствиС, ΠΊΠ°ΠΊ Π½Π΅ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… трСбованиям, нСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ этих систСм Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π»ΠΈΡΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ финансовыС срСдства. НаконСц, Π² 1992 Π±Ρ‹Π»Π° Π²Π²Π΅Π΄Π΅Π½Π° Π² ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ новая систСма, разработанная Π·Π° ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ Ρ„ΡƒΠ½Ρ‚ΠΎΠ². Π‘ΠΊΠΎΡ€ΠΎ ΠΎ Π½Π΅ΠΉ снова Π·Π°Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ. 28 ΠΈ 29 октября Π½Π° Ρ‚Π΅Π»Π΅Π²ΠΈΠ΄Π΅Π½ΠΈΠΈ ΠΈ Π² прСссС ΡΠΎΠΎΠ±Ρ‰Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ·-Π·Π° Π½Π΅Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы Π±Ρ‹Π»ΠΈ потСряны Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ ΠΆΠΈΠ·Π½Π΅ΠΉ. Π“ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС Π²Ρ€Π°Ρ‡ΠΈ скорой ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎ Ρ€Π°Ρ†ΠΈΠΈ сообщили Π½Π° Π±Π°Π·Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΠΈ Π½Π° мСсто назначСния ΠΈ спросили, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΏΠΎΡ…ΠΎΡ€ΠΎΠ½Π½ΠΎΠ³ΠΎ Π±ΡŽΡ€ΠΎ ΠΏΡ€ΠΈΠ±Ρ‹Π» Ρ€Π°Π½ΡŒΡˆΠ΅. Π˜ΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ слуТбы ΡƒΡˆΠ΅Π» Π² отставку, Π±Ρ‹Π»Π° Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° слСдствСнная комиссия.

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

Π­Ρ‚Π° гибридная систСма дСйствовала с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ успСхом с 27 октября 1992 Π³. Π΄ΠΎ Ρ€Π°Π½Π½Π΅Π³ΠΎ ΡƒΡ‚Ρ€Π° 4 ноября. Однако послС Π΄Π²ΡƒΡ… часов 4 ноября Ρ€Π°Π±ΠΎΡ‚Π° систСмы Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ замСдлилась, вскорС послС этого систСма Π²Ρ‹ΡˆΠ»Π° ΠΈΠ· строя совсСм. ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π΅ смогла Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ пСрсонал Π²Π΅Ρ€Π½ΡƒΠ»ΠΈΡΡŒ ΠΊ Π±ΡƒΠΌΠ°Π³Π΅ ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹ΠΌ Π·Π²ΠΎΠ½ΠΊΠ°ΠΌ.

Π§Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ систСму ΠΊ ΠΊΡ€Π°Ρ…Ρƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΅Π΅ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°ΠΆΠ΅ ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ опСрациям? ΠžΡ‚Ρ‡Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ» нСсколько ΠΏΡ€ΠΈΡ‡ΠΈΠ½. Π’ΠΎΡ‚ основная:

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

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

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ всС Π΅Ρ‰Π΅ Π΄ΡƒΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ, ΠΈ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ относится ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ ΠΆΠ΅Ρ€Ρ‚Π² лондонской слуТбы скорой ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ грустным Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ΠΌ ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΡΡ‚ΠΈ рассматриваСмой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

ВосстановлСниС памяти: ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

Если ΡƒΠΉΡ‚ΠΈ ΠΎΡ‚ Π½Π΅ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΡ… Π΄ΠΎΠΏΡƒΡ‰Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ прСдстоит Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠ³Π΄Π° Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π’ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π΄Π²Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

[x]. ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ (detection). Как Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Π΅ элСмСнты?

[x]. ВосстановлСниС (reclamation). Как Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡƒΡŽ ΠΊ этим элСмСнтам?

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих Π·Π°Π΄Π°Ρ‡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΄Π²ΡƒΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… уровнях:

[x]. Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языка - компилятор ΠΈ срСда исполнСния ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π»ΡŽΠ±ΠΎΠΌΡƒ ПО, создаваСмому Π½Π° этом языкС ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ срСдС.

[x]. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ - ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ само Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.