jvm메모리구조

Download Report

Transcript jvm메모리구조

JAVA VIRTUAL MACHINE
MEMORY
STRUCTURE
이 정도면 괜찮조!
설미라
최지성 이윤경 이용열 이수은
*
목
차
메모리 구조는
왜?
자바
프로그램 실행 구
조
JVM이란?
JVM 구조 & 과
정
Garbage
Collector
소스코드 예
제
hy?
1. JAVA 프로그램 실행 구조
일반프로그램
JAVA 프로그램
Java Program
Program
OS
VS
JVM
OS
Hardware
Hardware
2. JVM이란?
 자바 가상 머신
Java Virtual Machine
 JAVA 와 OS간 중계자 역할
 JAVA 프로그램 : OS에 독
립적
 JVM : OS에 종속적
JAVA 프로그램
Java Program
JVM
OS
Hardware
3. JVM 구조 & 과정
JAVA source
Hello.java
Class 파일
Hello.class
JAVA 컴파일러
Javac.exe
Execution Engine
Class loader
Runtime Data Area
클래스
스택
힙
Native
메소드
PC
레지스터
4. JVM 구조 & 과정- 클래스 영
역
Runtime Data Area
클래스
힙
스택
클래스 영
역 = 메소드 영
역
클래스
정보
Static
변수
Native
메소드
변수
정보
PC
레지스터
메소드
정보
상수
pool
4. JVM 구조 & 과정- 스택 영역
Runtime Data Area
클래스
스택
힙
Native
메소드
PC
레지스터
 메소드 안에서 사용되어지는 값들이
ex) 메소드 (매개변수값, 리턴값) , 지역변수 값, 참조변수(주소
저장
값)
 메소드가 호출 될 때마다, 각 각의
스택
프레임이 생성
4. JVM 구조 & 과정- 스택 영역
Runtime Data Area
클래스
PUSH
스택
힙
스택 프레임 3
스택 프레임 2
스택 프레임 1
Native
메소드
PC
레지스터
POP
4. JVM 구조 & 과정- 힙 영역
Runtime Data Area
클래스
스택
Native
메소드
PC
레지스터
New
Permanent
Generation
Eden
객체정보의주소값저장
힙
Survivor
1
Survivor
2
Old
4. JVM 구조 & 과정- Native 메소드 영
역
Runtime Data Area
클래스
스택
힙
Native
메소드
• 다른 언어로 작성된 코드 호출
• 호출된 코드의 변수 저장
PC
레지스터
4. JVM 구조 & 과정- PC 레지스터 영역
Runtime Data Area
클래스
스택
힙
Native
메소드
PC
레지스터
 현재 실행할 부분의 명령과 주소를 저장
5. Garbage Collection
 참조되지 않은 객체들을
탐색, 삭
제
 삭제된 객체의 메모리를
 heap 메모리
재사용
반환
5. Garbage Collection
New
Permanent
Generation
Eden
Surviv
or1
Surviv
or2
Old
EDEN
Survivor1
Survivor2
9CLEAR 7!
1
2
1
CLEAR
!2
6CLEAR
6
3
4
10
85
4
4
!2
5. Garbage Collection
New
Permanent
Generation
EDEN
CLEAR !
11
12
13
14
Eden
Surviv
or1
Survivor1
Survivor2
CLEAR !
CLEAR !
6
11
15
Old
Surviv
or2
12
4
14
2
11
2
4
4
Break Time
6. 소스코드 예제 - 1
6. 소스코드 예제 - 2
6. 소스코드 예제 - 3