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++ μ°Έμ‘° λ³μλ₯Ό ν΅ν κ°μ²΄ μλ μλ©Έ κ΄λ ¨ λ΄μ©κ³Ό κ΄λ ¨ν λΆλΆμΈ λ―, μΆμΈ‘μ΄κΈ΄ νλ° μ΄κ² λ§λκ±° κ°μ;;; μλμ§λ γ
γ
γ
)
νμ¬μλ κΈ°λ³Έμ μΌλ‘ Java, Dylan κ³Ό κ°μ μΈμ΄μμλ κΈ°λ³Έ λͺ μΈλ‘μ μ 곡λλ κΈ°λ₯μ΄λ©°, C++, Cμ κ°μ΄ μλμ λ©λͺ¨λ¦¬ ν λΉμΌλ‘ λμμΈλμμ§λ§ κ°λΉμ§ 컬λ μ ꡬνμ μ§μνλ μΈμ΄λ€λ μ‘΄μ¬νλ€.
1. μ΄λ»κ² μμΌλ‘ μ¬μ©λμ§ μμ κ°μ²΄λ₯Ό κ²°μ ν μ μλκ°?
2. κ·Έ κ°μ²΄κ° μ¬μ©νλ κ°μ²΄μ μ μ₯곡κ°μ μ΄λ€μμΌλ‘ λ°νν κ²μΈκ°?
2. disadvantage ¶
νΉμ μ£ΌκΈ°λ₯Ό κ°μ§κ³ κ°λΉμ§ 컬λ μ
μ νκΈ° λλ¬Έμ κ·Έ μμ μμ μλΉν μκ°μ μ±λ₯μ μ νκ° μκΈ΄λ€. μ΄κ±΄ μΌλ°μ μ ν리μΌμ΄μ
μμλ λ¬Έμ κ° λμ§ μμ§λ§, time critical μ ν리μΌμ΄μ
μμλ μλΉν λ¬Έμ κ° λ λΆλΆμ. (Incremental garbage collection? λ₯Ό μ΄μ©νλ©΄ μ΄ λ¬Έμ λ₯Ό μ΄λμ λ ν΄κ²°νμ§λ§ 리μΌνμ λμμ μμ νκ² λ³΄μ₯νκΈ°λ μ΄λ ΅λ€κ³ ν¨.)
μ΄κ±° λ§κ³ λ λ¬Έμ κ° μλΉνλ€κ³ νμ§λ§, ν΄μν΄μΌνλ κ΄κ³λ‘;;; μλ λ§ν¬μμ νμΈ λ°λ.
μ΄κ±° λ§κ³ λ λ¬Έμ κ° μλΉνλ€κ³ νμ§λ§, ν΄μν΄μΌνλ κ΄κ³λ‘;;; μλ λ§ν¬μμ νμΈ λ°λ.
4. thread ¶
μλ°λ₯Ό μ²μ λ°°μΈλ κ°μ₯ μ κΈ°νλ κ²μΈλ°.. -_-; μλ£κ΅¬μ‘° μκ°(μ¬μ€ μ νν λλ°°μ°λμ§ λͺ¨λ₯΄κ² μ;;)μ κ°λΉμ§ 컬λ μ
μ΄μΌκΈ°νλ©΄μ λμ€κΈΈλ μ°Ύμλ΄.
2λ²μ§Έμ κ²μ κ²½μ°μλ μλ£κ΅¬μ‘° μκ°μ λ€μ λ°λ‘λ μ 체 λ©λͺ¨λ¦¬ μμμ 2κ°μ μμμΌλ‘ ꡬλΆ(used, unused). λ©λͺ¨λ¦¬λ₯Ό ν λΉνλ κ°λ μ΄ μλλΌ unused μμμμ λΉλ €μ€κ³ , μ¬μ©μ΄ λλλ©΄ λ€μ unused μμμΌλ‘ λλ €μ£Όλ μμΌλ‘ λ§λ λ€κ³ ν¨. γ ‘γ ‘;; λ΄κ° μκ°νκΈ°μλ μ΄κ±΄ OS(or VM), λ μ»΄νμΌλ¬ μμ€(νΉμ allocation κ΄λ ¨ λΌμ΄λΈλ¬λ¦¬ μμ€)μμ μ§μνμ§ μμΌλ©΄ μλλ κ² κ°μ. μ ννκ² μμλ λΆμ λ§λΆμμ’..;;;
- eternalbleu
2λ²μ§Έμ κ²μ κ²½μ°μλ μλ£κ΅¬μ‘° μκ°μ λ€μ λ°λ‘λ μ 체 λ©λͺ¨λ¦¬ μμμ 2κ°μ μμμΌλ‘ ꡬλΆ(used, unused). λ©λͺ¨λ¦¬λ₯Ό ν λΉνλ κ°λ μ΄ μλλΌ unused μμμμ λΉλ €μ€κ³ , μ¬μ©μ΄ λλλ©΄ λ€μ unused μμμΌλ‘ λλ €μ£Όλ μμΌλ‘ λ§λ λ€κ³ ν¨. γ ‘γ ‘;; λ΄κ° μκ°νκΈ°μλ μ΄κ±΄ OS(or VM), λ μ»΄νμΌλ¬ μμ€(νΉμ allocation κ΄λ ¨ λΌμ΄λΈλ¬λ¦¬ μμ€)μμ μ§μνμ§ μμΌλ©΄ μλλ κ² κ°μ. μ ννκ² μμλ λΆμ λ§λΆμμ’..;;;
- eternalbleu