JVM이란? (1)

 이 Posting에서는 JVM의 구조 및 동작 원리에 대하여 이야기 해볼 것이다.

JVM이 하는 일은 자바 바이트 코드를 해석하고 실행하는 것이다.
일반적인 프로그램과 JAVA 프로그램의 차이를 설명한 그림을 보고 시작하자.



  • JVM은 JAVA와 OS 중간에서 중간자의 역할을 수행하는 녀석이다.
  • 이 녀석은 JAVA가 편하게 동작할 수 있도록 재사용을 가능하게 해준다.
  • 메모리를 Garbage collection을 통해 관리를 한다.
또 하나 일반적인 컴퓨터들은 레지스터 기반으로 동작하하지만 JVM은 스택기반의 가상 머신이다.


프로그램 실행 루틴


  • 로딩 - OS는 어떤 실행 파일의 portable executable 파일의 header를 읽어 하드 디스크 같은 기억장치로 부터 RAM으로 적재한다.
  • 패치 - 적재된 데이터는 여러 instruction으로 이루어져 있고 이 것을 순차적으로 CPU로 전달하여 읽어들이는 과정
  • 디코딩
  • 실행 - CPU에서 ALU로 전달 연산을 수행


JAVA 프로그램 실행 루틴

자 JAVA의 프로그램 실행 루틴을 알기 위해서 JVM의 구조를 좀더 명확하게 알 필요가 있다. JVM의 구조는 다음과 같다.




  • loader를 통해 class file들을 JVM의 data area로 로딩을 한다.
  • data area로 로딩되기 전에 class file들을 해석해야 하기 한다. 그 역할을 하는 것이 Execution engine 이 수행한다.

이 블로그의 인기 게시물

웹툰 무료로 볼 수 있는 사이트

BackJoon 1011, Fly me to the alpha centauri, 규칙 찾기 문제

BaekJoon 6591, 이항 쇼다운 조합문제