π΄ 컀λμ΄λ?
μ΄μ체μ μ 곡λΆλ₯Ό νλ€λ³΄λ©΄ 컀λμ΄λΌλ κ²μ μ νκ² λλ€ μ»€λμ κ°λ¨νκ² μ€λͺ νμλ©΄ μ΄μ체μ μ λ©λͺ¨λ¦¬μ μμ£Όν΄ μλ νλ‘κ·Έλ¨μ΄λΌκ³ ν μ μλ€.
컀λμ μμ νλ‘κ·Έλ¨λ€μ΄ μμμ μ κ·Όν λ μ¬μ©λλλ°, μ΄ λ μμ κ·Έλ¦Όκ³Ό κ°μ κ³Όμ μ κ±°μΉκ² λλ€.
μμ΄λ μ΄λ° νλ‘κ·Έλ¨λ€μ΄ λ©λͺ¨λ¦¬μ λ‘λ©λκ³ μΈμ λ©λͺ¨λ¦¬μμ ν΄μ λλμ§ κ΄λ¦¬ν΄μ£Όλ νλ‘κ·Έλ¨μ΄λ€. λ€λ§ μμ΄ μ§μ λ©λͺ¨λ¦¬μ κ΄μ¬νλ€λ©΄ μ¬λ¬ νλ‘κ·Έλ¨λ€μ΄ κΌ¬μ΄κ² λμ΄ μλ±ν κ³³μ λ°μ΄ν°λ₯Ό μ½κ±°λ μ°λ μν©μ΄ λ°μν μ μλ€. κ·Έλμ μμ I/Oλ₯Ό ν λ 컀λμκ² μμ²μ νκ³ μ»€λμ μ΄λ₯Ό λ°μλλ € ν΄λΉνλ I/Oλ₯Ό λμ μ§νν΄μ€λ€. μ΄λ° μμ²μ System Call (μμ€ν μ½)μ΄λΌκ³ νλ€.
μ΄ λ μ¬μ©λλ κ²μ΄ μμ κ·Έλ¨μ μ‘΄μ¬νλ mode bit μ΄λ€. mode bitλ μλμ κ°μ 2κ°μ§μ λͺ¨λκ° μλ€.
mode bit 0 : μ μ λͺ¨λ
mode bit 1 : 컀λ λͺ¨λ
λ§μ½ mode bitκ° 1λ‘ μ»€λ λͺ¨λλΌλ©΄ I/Oλ₯Ό μ§νν μ μκ³ 0μΌλ‘ μ μ λͺ¨λλΌλ©΄ I/Oλ κ±°λΆλκ² λλ€.
컀λμ 리λ μ€ μ΄μ체μ μμ μ¬μ©λλλ° μλλ‘μ΄λλ 리λ μ€λ₯Ό κΈ°λ°μΌλ‘ νκΈ° λλ¬Έμ μ°λ¦¬κ° μλλ‘μ΄λμμ μ ν리μΌμ΄μ μ μ¬μ©ν λ λ©λͺ¨λ¦¬μ μ κ·Όνλ €λ©΄ λ°λ‘ 컀λμ ν΅ν΄μΌ νλ€.
κ·ΈλΌ μ΄μ κΆκΈμ¦μ΄ μκ²Όλ€. μλ° μ ν리μΌμ΄μ μ JVMμ ν΅ν΄ μ΄μ체μ μ μνΈμμ©νλ€. JVMμ μ΄λ»κ², μ΄λμ μ΄μ체μ μ μνΈμμ©νκ³ μλκ° β
μ΄μ λΆν° μ΄λ₯Ό μμλ³΄κ³ μ νλ€.
JVMμ λ΄λΆ ꡬ쑰μ μλμ λν μμΈν μ€λͺ μ μλμ κ²μκΈμ μλ€.
JVMμ μμ€ν μ½
JVMμ λ΄λΆ ꡬ쑰λ μλ κ·Έλ¦Όμ ν° μ¬κ°νκ³Ό κ°λ€. λ€ μνμλ μκ³ μμ€ν μ½μ μ¬μ©λλ λΆλΆλ§ μμλ³΄κ³ μ νλ€.
1οΈβ£ λ©λͺ¨λ¦¬ μ κ·Όμ΄ νμν λ©μλμ λ°μ
μ ν리μΌμ΄μ μ λ©μλλ₯Ό μ€νν λ JVMμ ν΄λΉ λ©μλμ νΈμΆμ μν΄ JVM μ€νμ νλ μμ μκ² λλ€. JVM μ€νμ μλ° λ©μλ νΈμΆμ μ€ν 컨νμ€νΈλ₯Ό μ μ₯νλ λ° μ¬μ©λλ€.
λ§μ½ μ€νμ€μΈ λ©μλκ° μμ€ν μ½, μ¦ λ©λͺ¨λ¦¬ μ κ·Όμ΄ νμν λ€μ΄ν°λΈ λ©μλλΌλ©΄ μ΄ λ λ€μ΄ν°λΈ λ©μλλ λ€μ΄ν°λΈ λ©μλ μ€νμ μ μ¬λκ² λλ€. λ€μ΄ν°λΈ λ©μλ μ€νμ λ€μ΄ν°λΈ μ½λμ μ€ν 컨νμ€νΈλ₯Ό μ μ₯νλ λ° μ¬μ©λλ€.
2οΈβ£ μμ€ν μ½ μμ²
JVMμ JNI(JVM Native Interface)λ₯Ό ν΅ν΄ Native Method Library(λ€μ΄ν°λΈ λ©μλ λΌμ΄λΈλ¬λ¦¬)λ₯Ό νΈμΆν΄ ν΄λΉ λ©μλλ₯Ό μ€ννλ€. μ΄ λ, λ€μ΄ν°λΈ λ©μλκ° μ΄μ체μ μ μ κ·Όν΄μΌ ν κ²½μ°, λ€μ΄ν°λΈ λ©μλλ μμ€ν μ½μ νΈμΆνμ¬ μ΄μ체μ μκ² ν΄λΉ κΈ°λ₯μ μμ²νλ€. μμ€ν μ½μ 컀λ λͺ¨λλ‘ μ νλμ΄ μ€νλλ©°, μ΄μ체μ λ μμ²λ κΈ°λ₯μ μννκ³ κ·Έ κ²°κ³Όλ₯Ό λ€μ΄ν°λΈ λ©μλλ‘ λ°ννλ€. μ΄ν λ€μ΄ν°λΈ λ©μλλ JVMμΌλ‘ κ²°κ³Όλ₯Ό λ°ννκ³ , JVMμ μλ° νλ‘κ·Έλ¨μ ν΄λΉ κ²°κ³Όλ₯Ό μ λ¬νκ² λλ€.
λ°λΌμ μ ν리μΌμ΄μ μ λ©μλ μ€ν μ€μλ JVM μ€νμ μμ΄λ€κ° μμ€ν μ½μ΄ νμν λ€μ΄ν°λΈ λ©μλκ° νΈμΆλ κ²½μ°, ν΄λΉ λ€μ΄ν°λΈ λ©μλλ λ€μ΄ν°λΈ λ©μλ μ€νμ μ μ¬λκ³ JVMμ 컀λ λͺ¨λλ‘ μ ννμ¬ μ΄μ체μ μ μμ€ν μ½μ μμ²νλ€.
'Android > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Reflection (리νλ μ ) (0) | 2023.06.11 |
---|---|
JVMμ λ΄λΆ ꡬ쑰μ μλ (0) | 2023.06.10 |
JVM & JRE & JDK (0) | 2023.05.29 |