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