E D R , A S I H C RSS

Garbage Collection


1. Garbage Collection

컴퓨터 ν™˜κ²½μ—μ„œ 가비지 μ»¬λ ‰μ…˜μ€ μžλ™ν™”λœ λ©”λͺ¨λ¦¬ κ΄€λ¦¬μ˜ ν•œκ°€μ§€ ν˜•νƒœμ΄λ‹€. 가비지 μ»¬λ ‰ν„°λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λ‹€μ‹œλŠ” μ ‘κ·Όν•˜μ§€ μ•ŠλŠ” 객체가 μ‚¬μš©ν•œ λ©”λͺ¨λ₯΄ 곡간을 νšŒμˆ˜ν•˜λ €κ³  ν•œλ‹€. 가비지 μ»¬λ ‰μ…˜μ€ John McCarthy κ°€ 1959λ…„ Lisp μ–Έμ–΄μ—μ„œ μˆ˜λ™μ μΈ λ©”λͺ¨λ¦¬ κ΄€λ¦¬λ‘œ μΈν•œ λ¬Έμ œλΌ ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œ μ œμ•ˆν•œ κ°œλ…μ΄λ‹€.
ν˜„μž¬μ—λŠ” 기본적으둜 Java, Dylan κ³Ό 같은 μ–Έμ–΄μ—μ„œλŠ” κΈ°λ³Έ λͺ…μ„Έλ‘œμ„œ μ œκ³΅λ˜λŠ” κΈ°λŠ₯이며, C++, C와 같이 μˆ˜λ™μ  λ©”λͺ¨λ¦¬ ν• λ‹ΉμœΌλ‘œ λ””μžμΈλ˜μ—ˆμ§€λ§Œ 가비지 μ»¬λ ‰μ…˜ κ΅¬ν˜„μ„ μ§€μ›ν•˜λŠ” 언어듀도 μ‘΄μž¬ν•œλ‹€.

가비지 μ»¬λ ‰μ…˜μ˜ μ£Όμš” κΈ°μˆ μ€ λ‹€μŒμ˜ 2κ°€μ§€λ‘œ ꡬ뢄할 수 μžˆλ‹€.
1. μ–΄λ–»κ²Œ μ•žμœΌλ‘œ μ‚¬μš©λ˜μ§€ μ•Šμ„ κ°μ²΄λΌ κ²°μ •ν•  수 μžˆλŠ”κ°€?
2. κ·Έ 객체가 μ‚¬μš©ν•˜λŠ” 객체의 μ €μž₯곡간을 μ–΄λ–€μ‹μœΌλ‘œ λ°˜ν™˜ν•  것인가?

2번째 κ²½μš°μ— λŒ€ν•œ νžŒνŠΈλΌ ν•™κ΅ 자료ꡬ쑰 ꡐ재인 Fundamentals of data structure in c 의 Linked List νŒŒνŠΈμ—μ„œ νžŒνŠΈλΌ μ–»μ„ 수 있고, 1번째의 λ‚΄μš©μ€ μ›μΉ™μ μœΌλ‘œ μ™„λ²½ν•œ 예츑이 λΆˆκ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— μ‹œμŠ€ν…œμ—μ„œ 객체 μ°Έμ‘°λΌ μ €μž₯ν•˜λŠ” μ‹μœΌλ‘œ ν•΄μ„œ μ°Έμ‘°κ°€ μ—†μœΌλ©΄ λ‹€μ‹œλŠ” 쓰지 μ•ŠλŠ” λ‹€λŠ” μ‹μœΌλ‘œ ν•΄μ„œ μ²˜λ¦¬ν•˜λŠ” λ“함. (C++ μ°Έμ‘° λ³€μˆ˜λΌ ν†΅ν•œ 객체 μžλ™ μ†Œλ©Έ κ΄€λ ¨ λ‚΄μš©κ³Ό κ΄€λ ¨ν•œ 뢀뢄인 λ“, 좔츑이긴 ν•œλ° 이게 λ§žλŠ”κ±° κ°™μŒ;;; 아닐지도 γ…‹γ…‹γ…‹)

2. disadvantage

νŠΉμ • μ£ΌκΈ°λΌ κ°€μ§€κ³  가비지 μ»¬λ ‰μ…˜μ„ ν•˜κΈ° λ•Œλ¬Έμ— κ·Έ μ‹œμ μ—μ„œ μƒλ‹Ήν•œ μ‹œκ°„μƒ μ„±λŠ₯의 μ €ν•˜κ°€ 생긴닀. 이건 일반적 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλŠ” λ¬Έμ œκ°€ λ˜μ§€ μ•Šμ§€λ§Œ, time critical μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλŠ” μƒλ‹Ήν•œ λ¬Έμ œκ°€ 될 λΆ€λΆ„μž„. (Incremental garbage collection? λΌ μ΄μš©ν•˜λ©΄ 이 λ¬Έμ œλΌ μ–΄λŠμ •λ„ ν•΄κ²°ν•˜μ§€λ§Œ λ¦¬μ–Όνƒ€μž„ λ™μž‘μ„ μ™„μ „ν•˜κ²Œ 보μž₯ν•˜κΈ°λŠ” μ–΄λ ΅λ‹€κ³  함.)
이거 말고도 λ¬Έμ œκ°€ μƒλ‹Ήν•˜λ‹€κ³  ν•˜μ§€λ§Œ, ν•΄μ„ν•΄μ•Όν•˜λŠ” κ΄€κ³„λ‘œ;;; μ•„λž˜ λ§ν¬μ—μ„œ 확인 λ°”λžŒ.

4. thread

μžλ°”λΌ μ²˜μŒ λ°°μšΈλ•Œ κ°€μž₯ μ‹ κΈ°ν–ˆλ˜ 것인데.. -_-; 자료ꡬ쑰 μ‹œκ°„(사싀 μ •ν™•νžˆ λ­˜λ°°μš°λŠ”μ§€ λͺ¨λ₯΄κ² μŒ;;)에 가비지 μ»¬λ ‰μ…˜ μ΄μ•ΌκΈ°ν•˜λ©΄μ„œ λ‚˜μ˜€κΈΈλž˜ μ°Ύμ•„λ΄„.
2번째의 κ²ƒμ˜ κ²½μš°μ—λŠ” 자료ꡬ쑰 μ‹œκ°„μ— 듀은 λ°”λ‘œλŠ” 전체 λ©”λͺ¨λ¦¬ μ˜μ—­μ„ 2개의 μ˜μ—­μœΌλ‘œ ꡬ뢄(used, unused). λ©”λͺ¨λ¦¬λΌ ν• λ‹Ήν•˜λŠ” κ°œλ…μ΄ μ•„λ‹ˆλΌ unused μ˜μ—­μ—μ„œ 빌렀였고, μ‚¬μš©μ΄ λλ‚˜λ©΄ λ‹€μ‹œ unused μ˜μ—­μœΌλ‘œ λŒλ €μ£ΌλŠ” μ‹μœΌλ‘œ λ§Œλ“ λ‹€κ³ ν•¨. γ…‘γ…‘;; λ‚΄κ°€ μƒκ°ν•˜κΈ°μ—λŠ” 이건 OS(or VM), λ‚˜ 컴파일러 수μ€(ν˜Ήμ€ allocation κ΄€λ ¨ 라이브러리 수μ€)μ—μ„œ μ§€μ›ν•˜μ§€ μ•ŠμœΌλ©΄ μ•ˆλ˜λŠ” 것 κ°™μŒ. μ •ν™•ν•˜κ²Œ μ•„μ‹œλŠ” 뢄은 λ§λΆ™μž„μ€..;;;
- eternalbleu
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:17
Processing time 0.0175 sec