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

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

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

Алгоритм врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ нуТдаСтся Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ-сборки для поиска Π»ΡŽΠ±Ρ‹Ρ… нСдостиТимых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… сборщиком ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ. ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°-сборка состоит ΠΈΠ· Π΄Π²ΡƒΡ… шагов: ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ° - рСкурсивный ΠΎΠ±Ρ…ΠΎΠ΄ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ° достиТимых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²; чистка - ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΠ±Ρ…ΠΎΠ΄ памяти ΠΈ сборка Π½Π΅ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Алгоритм сТатия памяти Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ участки памяти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, работая с наимСньшими Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ. Он Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π° n Π±Π»ΠΎΠΊΠΎΠ² ΠΈ Π·Π° n-1 Ρ†ΠΈΠΊΠ»ΠΎΠ² сТимаСт ΠΈΡ….

ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠ΅ чувство Π³ΠΎΠ»ΠΎΠ΄Π° ΠΈ потСря Π°ΠΏΠΏΠ΅Ρ‚ΠΈΡ‚Π° (Bulimia and anorexia)

Алгоритм сТатия прСдохраняСт ΠΎΡ‚ частых, Π΄ΠΎΡ€ΠΎΠ³ΠΈΡ… ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы - Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ. ВмСсто возвращСния всСх освобоТдСнных Π±Π»ΠΎΠΊΠΎΠ² ΠΎΠ½ сохраняСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… для построСния нСбольшого Ρ€Π΅Π·Π΅Ρ€Π²Π° памяти, доступной ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π±Π΅Π· обращСния ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС.

Π­Ρ‚Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π° для часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ класса ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌ чувством Π³ΠΎΠ»ΠΎΠ΄Π° ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ Π°ΠΏΠΏΠ΅Ρ‚ΠΈΡ‚Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΊΡƒΡ‚Π΅ΠΆΠ° с массовым созданиСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² смСняСтся постом, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ происходит ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²; Π·Π°Ρ‚Π΅ΠΌ всС повторяСтся.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сборщика мусора

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

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ стартстопными; ΠΈΡ… врСмя выполнСния ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ составляСт нСсколько ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния прилоТСния. ВнутрСнняя статистика Π²Π΅Π΄Π΅Ρ‚ ΡƒΡ‡Π΅Ρ‚ занятой памяти ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ подходящий для Π²Ρ‹Π·ΠΎΠ²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ.

МоТно Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ сборщика, задавая Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π² частности, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° speed заставит Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ всю Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° сТатия, Π° сразу ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ возмоТности ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Устанавливая Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹: collection_off, collect_now ΠΈ dispose ΠΈΠ· класса MEMORY.

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

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ

[x]. БущСствуСт Ρ‚Ρ€ΠΈ основных Ρ€Π΅ΠΆΠΈΠΌΠ° создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²: статичСский, основанный Π½Π° стСкС, динамичСский. ПослСдний Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π΅Π½ для ОО-языков, Π½ΠΎ встрСчаСтся Π²Π΅Π·Π΄Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Lisp, Pascal (ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ new), C (malloc), Ada (Ρ‚ΠΈΠΏΡ‹ доступа).

[x]. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ нСдостиТимыми. Π˜Ρ… ΠΏΠ°ΠΌΡΡ‚ΡŒ тСряСтся, приводя, Π² Ρ…ΡƒΠ΄ΡˆΠΈΡ… случаях, ΠΊ сбою ΠΈΠ·-Π·Π° Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти, ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ памяти остаСтся нСиспользованной.

[x]. Π­Ρ‚Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ создаСт нСдостиТимых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ создаСт всСго лишь нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сравним с доступной ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

[x]. Π’ΠΎ всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях (динамичСскиС структуры Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ рСсурсы памяти) любоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°: ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ восстановлСниС занятой ΠΈΠΌΠΈ памяти.

[x]. КаТдая ΠΈΠ· Π·Π°Π΄Π°Ρ‡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Π° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ: Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языка, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², прилоТСния.

[x]. Π’ΠΌΠ΅Π½ΡΡ‚ΡŒ Π² ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒ прилоТСния ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ восстановлСниС памяти - опасно ΠΈ ΠΎΠ±Ρ€Π΅ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π΅ΡˆΠ°Ρ‚ΡŒΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ языка.

[x]. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ выполняСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, восстановлСниС памяти - ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, Π»ΠΈΠ±ΠΎ срСдствами, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ языка.

[x]. ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ ссылок Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для цикличСских структур.

[x]. ΠžΠ±Ρ‰Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΎΠΉ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ являСтся сборка мусора. Π•Π΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ ΠΌΠ°Π»Ρ‹ Π² Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ситуациях ΠΈ, благодаря Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π² стартстопном Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ Π² Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… прилоТСниях.

[x]. Π‘Π±ΠΎΡ€ΠΊΠ° мусора ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ нСдостиТимыми становятся, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

[x]. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, Π½ΠΎ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС.

[x]. Описанная схСма Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ систСмы управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ способов, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ настройку ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² систСмы, Π² Ρ‚ΠΎΠΌ числС позволяя Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ сборку мусора Π² критичСских Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… прилоТСния.

БиблиографичСскиС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ

Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², обсуТдаСмыС Π² Π½Π°Ρ‡Π°Π»Π΅ этой Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ "ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π½ΠΎΠΉ модСлью" выполнСния языка программирования, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½Π° Π² [Johnston 1971].

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ фиаско Лондонской слуТбы скорой ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° ΠΈΠ· мноТСства сообщСний, присланных Π½Π° Ρ„ΠΎΡ€ΡƒΠΌ Risks.

Алгоритм ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ сборки мусора прСдставлСн Π² [Dijkstra 1978]. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² рассматривал [Cohen 1984]. Π‘Π±ΠΎΡ€ΠΊΠ° мусора ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ прСдставлСна Π² [Ungar 1984].

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сборки мусора ISE's срСды, описанный Π² ΠΊΠΎΠ½Ρ†Π΅ этой Π»Π΅ΠΊΡ†ΠΈΠΈ, Π±Ρ‹Π» создан РафаэлСм ΠœΠ°Π½Ρ„Ρ€Π΅Π΄ΠΈ (Raphael Manfredi) ΠΈ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ ΠšΡΠ°Π²ΡŒΠ΅Ρ€ΠΎΠΌ Π›Π΅ Π’ΡƒΡ€Ρ‡ (Xavier Le Vourch) ΠΈ Ѐабрис ЀранцСски (Fabrice Franceschi) (Ρ‡Π΅ΠΉ тСхничСский ΠΎΡ‚Ρ‡Π΅Ρ‚ слуТил основой Π΄Π°Π½Π½ΠΎΠ³ΠΎ здСсь описания).

УпраТнСния

Π£9.1 МодСли создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ эту модСль ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎ1, ΠΎ2, ΠΎ3,..., Π³Π΄Π΅ ΠΎi Π»ΠΈΠ±ΠΎ 1, (Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ), Π»ΠΈΠ±ΠΎ (-n), ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ восстановлСниС n Π΅Π΄ΠΈΠ½ΠΈΡ† памяти.

Π£9.2 Какой ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ?

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° языкС Ρ‚ΠΈΠΏΠ° Pascal ΠΈΠ»ΠΈ C, Π³Π΄Π΅ опСрационная систСма прСдоставляСт dispose ΠΈΠ»ΠΈ free, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вмСсто создания своСго списка свободной памяти для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° структур Π΄Π°Π½Π½Ρ‹Ρ…. РассмотритС ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы Π΄Π²ΡƒΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ².

Π£9.3 БовмСстноС использованиС стСка достиТимых элСмСнтов

(Π­Ρ‚ΠΎ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ знакомство с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Π»Π΅ΠΊΡ†ΠΈΠΈ 18) ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ available, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ стСк достиТимых элСмСнтов ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ЕдинствСнный стСк Π΄ΠΎΠ»ΠΆΠ΅Π½ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ всСми связными списками ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°. (Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ once.)

Π£9.4 БовмСстноС использованиС

(Π­Ρ‚ΠΎ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ всС Π»Π΅ΠΊΡ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π»Π΅ΠΊΡ†ΠΈΡŽ 18) МоТно Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ available стСк раздСляСмым всСми связными списками ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²?

ЛСкция 10. УнивСрсализация

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