JVM과 VM

개발하는 구황작물·2023년 4월 15일
0

면접에서 JVM에도 VM이 들어가있는데 보통의 VM 과 다른 점이 뭐냐는 질문이 들어왔다.
말하는 감자였던 나는 이에 대답을 하지 못했고 이에 대한 나름의 답을 블로그에 적기로 했다.

VM이란

컴퓨팅 환경을 소프트웨어로 구현한 것, 즉 컴퓨터 시스템을 에뮬레이션 하는 소프트웨어이다.

JVM 이란

자바를 실행하기 위한 가상 머신이다.

얼핏 들어보면 JVM에도 VM이 들어가 있으나 의미하는 바가 다르다.

위의 VM은 System Virtual Machine으로 분류된다면
JVM은 Process Virtual Machine으로 분류된다고 한다.

System Virtual Machine은 완전한 시스템 플랫폼을 제공한다. 다시 말해 완전한 운영체제의 실행을 지원한다.

반면에 Process Virtual Machine은 하나의 단일 프로그램을 실행하기 위해 만들어져 있다. 단일 프로세스를 지원한다.

또한 레지스터 가반 가상 머신과 다르게 JVM은 스택 기반 가상 머신이다.

스택 기반 가상 머신은 피연산자와 연산 후 결과를 스택에 저장하는 방식으로 이뤄진다.

반면 레지스터 기반 가상머신은 피연산자가 CPU의 레지스터에 저장되고 명령어가 피연산자의 위치인 레지스터의 주소를 알아야 한다.

profile
어쩌다보니 개발하게 된 구황작물

0개의 댓글