JVM 메모리 구조

이상수·2022년 11월 28일
0

CS - 운영체제

목록 보기
2/4

1. JVM 이란?

  • Java Virtual Machine의 약자로 자바 가상 머신을 의미한다.
  • 자바와 운영체제의 중개자 역할을 하여 자바가 운영체제에 관계 없이 프로그램을 실행할 수 있게 도와줌
  • 가비지 컬렉터를 이용한 메모리 관리도 자동으로 수행하며, 레지스터 기반이 아닌 스택기반으로 동작

2. JVM 메모리 구조

1). Class Loader

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

2). Excution Engine

  • JVM내의 런타임 데이터 영역에 배치된 바이트 코드들을 명령어 단위로 읽어서 실행시키는 것

3). Garbage Collector

  • 힙 메모리 영역에 생성된 객체들 중에서 참조되지 않는 객체들을 찾아 제거하는 역할

4). Runtime Data Area

  • JVM의 메모리 영역으로, 애플리케이션을 실행할 때 사용하는 데이터들을 적재하는 영역
  • Heap, Stack, PC Register, Native Method, Method 영역으로 이루어짐

  1. Method Area
  • 모든 쓰레드가 공유하는 메모리 영역으로 클래스, 인터페이스, 메소드, static 변수 등의 바이트 코드를 보관
  1. Heap Area
  • 모든 쓰레드가 공유하며, new 키워드로 생성된 객체와 배열이 생성되는 영역
  • 가비지 컬렉터가 실행되는 영역
  1. Stack Area
  • 메서드 호출 시마다 메소드 각각의 스택영역이 생성되고, 메소드 안에서 사용하는 값들을 저장하는 역할
  • 지역변수, 매개변수, 연산 및 리턴값을 임시로 저장하고 메소드 수행이 끝나면 삭제
  1. PC Register
  • 쓰레드가 시작될 때 생성되며, 쓰레드 마다 하나씩 존재한다.
  • 쓰레드가 어떤 무슨 명령을 실행해야 할지 기록하는 부분으로, JVM명령의 주소를 갖음
  1. Native Method stack
  • 자바 외 언어로 작성된 네이티브 코드를 위한 메모리 영역
profile
Will be great Backend-developer

0개의 댓글