PR CENTER

뉴스룸     |     료실

mobile background

PR CENTER

JVM

관리자
2025-10-20
조회수 43

JVM

Java Virtual Machine의 약자.

각각 운영체제별 JVM을 설치한다면, Java 프로그램을 한 번 만들기만 하면 어느 운영체제에서든 실행할 수 있다. 

  → 플랫폼 독립성, 운영체제에 종속적

가비지 컬렉션을 사용하여 메모리 관리를 자동으로 수행한다.


JVM 메모리 구조


JVM은 크게 4가지 구조로 이루어져 있다.

 Class Loader

  • JVM 내로 클래스 파일을 로드하고, 링크를 통해 배치 하는 작업을 수행

          - 로드 : 클래스 파일을 바이트 코드로 읽어 메모리로 가져오는 과정

          - 링크 : 바이트 코드가 자바 규칙을 따르는지 검증, 클래스에 정의된 필드, 메소드, 인터페이스들을 나타내는 데이터 구조를 준비하며, 

                      그 클래스가 참조하는 다른 클래스를 로딩한다.

          - 클래스 파일을 분석한 뒤에 운영체제로부터 할당받은 Runtime Data Area에 적재.


 Runtime Data Area

  • JVM의 메모리 영역으로, 자바 애플리케이션을 실행할 때 사용되는 데이터를 적재하는 영역

         - Method Area

         - Heap Area

         - Stack Area

         - PC Register

         - Native Method Stack


 Execution Engine

  • Runtime Data Area에 배치된 바이트 코드를 해석하며 실행.
  • 이 때 인터프리터 방식과, JIT 컴파일 방식을 혼합하여 해석한다.

          - 인터프리터(Interpreter) 방식 : 바이트 코드를 한 줄씩 읽고 해석한다.

          - JIT 컴파일(Just-In-Time compile) 방식 : 바이트 코드를 런타임 시점에 바로 기계어로 변환한다.

          - 최초의 JVM은 인터프리터 방식만 사용하여 실행 속도가 느렸지만, JIT 컴파일 방식을 추가하여 이를 보완하고자 했다.

             그런데 JIT 컴파일은 바이트코드를 기계어로 바꾸기 때문에 실행 속도가 빠르지만 변환하는 데 비용이 발생하게 된다. 

             그래서 인터프리터 방식을 사용하다가 일정한 기준이 넘어가면 JIT 컴파일 방식으로 실행한다.

 

  Garbage Collector

  • 힙 메모리 영역에 생성된 객체들 중 더 이상 사용하지 않는 객체를 해제시켜 메모리를 반환한다.
  • Garbage Collector가 동작하는 시간은 언제인지 정확히 알 수 없다.


Runtime Data Area 메모리 영역


1. Method Area

  • 모든 쓰레드가 공유하는 메모리 영역.
  • Method Area는 클래스, 인터페이스, 메소드, 필드, static 변수 등의 바이트 코드를 보관.

 Heap Area

  • 모든 쓰레드가 공유하는 메모리 영역.
  • new 키워드로 생성된 객체와 배열이 생성되는 영역.
  • Method area에 로드된 클래스만 생성이 가능하다.  Garbage Collector가 동작하는 영역

 Stack Area

  • 메소드 호출 시마다 각각의 스택 프레임(그 메소드만을 위한 공간)이 생성됨.
  • 그 메소드 안에서 사용되는 값들을 저장하고, 호출된 메소드의 매개변수, 지역변수, 리턴 값, 연산 시 일어나는 값들을 임시로 저장
  • 메소드 수행이 끝나면 프레임 별로 삭제됨

 PC Register

  • 쓰레드가 시작될 때 생성되며, 쓰레드마다 하나씩 존재한다.
  • 쓰레드가 어떤 부분을 무슨 명령으로 실행해야 할지 기록하는 부분 
  • 현재 수행 중인 JVM명령의 주소를 갖는다.

 


                                                                                                                                                                                                                                             ⭐발표자 : 이현승님 







0 0

페이지 바로가기

@2024 K2SYSTEMS. All rights reserved.

HOME       |       ABOUT US       |       SOLUTION       |       PR CENTER       |       CONTACT       |       인재채용       |       kakao i cloud 고객센터  

@2024 K2SYSTEMS. All rights reserved.