Honest Coder

JAVA 강좌 2편 : JVM 자바가상머신 본문

JAVA

JAVA 강좌 2편 : JVM 자바가상머신

정직한 코더 2020. 5. 29. 16:57
반응형

자바 가상 머신? JVM?

JVM은 Java Virtual Machine의 약자로 자바 가상 머신이라 불리고 있습니다.
가상 머신이라는 것은 프로그램을 실행하기 위해 물리적 머신과 유사한 소프트웨어로 구현한 것입니다. 자바 가상 머신의 역할은자바 애플리케이션을 클래스 로더를 통해 읽어 드려 자바 API와 함께 실행하는 것을 말합니다.
자바 가상머신은  또한  Java와 os사이에서 중개자 역할을 수행하여 Java와 OS에 구애받지 않고 재사용을 가능하게 해주고 메모리 관리, Garbage collection(쓰레기 수집)을 수행합니다.
자바 가상 머신은 스택기반 머신인데 ARM아키텍쳐(ARM아키텍쳐는 임베디드 기기에 많이 사용되는 RISC 프로세서입니다) 같은 하드웨어는 레지스터 기반으로 동작하는데 비해 자바 가상 머신은 스택기반으로 동작합니다.


자바 가상 머신을 알아야 하는 이유?

한정된 메모리를 효율적으로 사용하여 최고의 성능을 내기 위해 입니다.
메모리의 효율성을 알기 위해서는 메모리 구조를 알아야합니다.
동일한 프로그램이라도 메모리에 관리에 따라 성능이 좌우됩니다.
만약 메모리가 관리 되지 않으면 속도 저하, 튕김 현상등이 일어날 수 있습니다.
그래서 저는 이부분에 대하여 알아야 한다고 생각합니다.


자바 프로그램 실행순서

프로그램이 실행되면 자바 가상 머신은 os로부터 이 프로그램이 필요로 하는 메모리를 할당 받습니다.
이 메모리는 용도에 따라 여러영역으로 나누어 관리 합니다.
ㅡ>  자바 컴파일러(javac)가 소스코드를 읽어드려 자바 바이트코드(.class)변환 시킵니다.
ㅡ>  class loder을 통해  class파일들을 자바 가상 머신으로 로딩합니다.
ㅡ>  로딩된 class파일들은 Execution Engine을 통해 해석됩니다.
ㅡ>  해석된 바이트 코드는 Runtime Data Areas에 배치되어 실질적인 수행이 이루어지게 됩니다.
이러한 실행과정 속에서 자바 가상 머신 필요에 따라  Thread Synchronization과 CG(컴퓨터 그래픽 약자)같은 관리작업을 수행합니다.

 

반응형
Comments