[Java] JVM (Java Virture Machine)
2020.04.19
1. JVM이란? C 프로그램의 실행 프로세스를 한 번 생각해보자. preprocessor를 거쳐 코드가 확장된다. 확장된 코드는 compiler를 통해 어셈블리 코드로 변환된다. 변환된 어셈블리 코드는 assembler를 통해 바이트 코드를 가진 .obj 파일로 변환된다. .obj 파일은 linker를 통해 외부의 라이브러리 코드와 연결시킨 후, 실행 파일(.exe 등)을 생성한다. 실행이 가능해진 코드는 loader를 통해 메모리에 로드되고, 기계는 이를 해석하며 그에 따라 동작한다. C 프로그램은 위와 같은 프로세스를 머신에서 수행하고, Java는 가상머신을 이용해 이와 같은 프로세스를 처리한다. JVM이 하는 일은 크게 3가지 코드를 로드하고, 검증하고, 실행한다. OS로부터 메모리를 할당받아 관..