JVM

CHEESE·2021년 8월 24일
0

JVM

Java Virtual Machine, 자바 가상 머신의 약자
자바 어플리케이션을 크래스 로더를 통해 읽어 들여서 자바 API와 함께 실행한다.
JAVA와 OS 사이에서 중개자 역할을 수행한다.
JAVA가 OS에 구애 받지 않고 재사용을 가능하게 해준다.
메모리 관리를 수행한다 (Garbage collection)

JVM 구성

  • 클래스 로더
    JVM 내로 클래스 파일을 불러오고 링크를 통해 배치하는 작업을 수행하는 모듈

  • 실행 엔진
    클래스 로더가 배치시킨 클래스를 실행시키는 역할

  • 인터프리터
    실행 엔진이 자바 바이트 코드를 실행하는 방식, 한 줄 씩 수행

  • JIT
    Just In Time. 인터프리터 방식의 단점을 보완하기 위해 도입한 컴파일러

  • Garbage Collector
    Garbage Collection을 수행하는 모듈

JAVA 실행 과정

JVM은 필요에 따라 아래 실행과정 중 쓰레드 동기화와 GC와 같은 관리 작업을 수행한다.

  1. JVM이 OS로부터 프로그램이 필요로 하는 메모리를 할당 받는다.
    JVM은 해당 메모리를 용도에 따라 여러 영역으로 나눠서 관리한다.
  2. 자바 컴파일러가 자바 소스 코드를 읽어들여 자바 바이트 코드로 변환시킨다.
  3. 클래스 로더를 .class 파일을 JVM으로 불러온다.
  4. 불러온 클래스 파일을 실행 엔진을 통해 해석한다.
  5. 해석된 바이트코드를 할당 받은 메모리 공간에 배치한다.

0개의 댓글