Download presentation
Presentation is loading. Please wait.
1
발표자 : 이지연 Programming Systems Lab.
JVM Seminar Chap.1 자바 가상 머신의 소개 발표자 : 이지연 Programming Systems Lab.
2
목 차 1.1 자바 가상 머신이란 무엇인가? 1.2 자바 가상 머신의 개념적 구성
목 차 1.1 자바 가상 머신이란 무엇인가? 1.2 자바 가상 머신의 개념적 구성 1.3 가비지 콜렉션(Garbage Collection) 1.4 자바 가상 머신의 구현 1.5 자바 가상 머신의 미래
3
1.1 자바 가상 머신이란? 하나의 프로그램이 모든 시스템에서 실행될 수 있도록 하는 “추상화된 컴퓨터”
팀 린드홀름(Tim Lindholm)과 프랭크 옐린(Frank Yellin)이 쓴 “자바 가상 머신 명세서” 명령어들의 집합과 각 명령어의 의미의 정의 Class파일 형식이라고 불리는 바이너리 형식 프로그램에 문제가 없는지를 확인하는 알고리즘
4
1.1 자바 가상 머신이란? 명령어 집합 바이트 코드라 불리는 명령어들의 집합 (Oolong언어로 표현)
Getstatic java/lang/System/out Ljava/io/PrintStream; Ldc “Hello, world” Invokevirtual java/io/Println(Ljava/lang/String;)V
5
1.1 자바 가상 머신이란? Class 파일 형식 검증(Verification)
프로그램이 JVM에서 요구하는 규칙들을 만족시키는 것을 확인 스택 오버플로우, 접근할 수 없는 메모리 영역에의 접근 시도, 객체를 부적합한 타입으로 캐스팅하기, 금지된 메모리 영역의 포인터 값을 얻어내기 등
6
1.2 자바 가상 머신의 개념적 구성 Class area : 프로그램 코드와 상수 저장
Java stack : 프로그램 수행 도중 메소드 호출 기록 Heap : 객체 저장 Native method stacks : 네이티브 메소드 지원
7
1.2 자바 가상 머신의 개념적 구성 클래스 영역 수퍼클래스(Superclass) 인터페이스들의 리스트
필드(field)들의 리스트 메소드들의 리스트와 구현된 메소드 상수들의 리스트
8
1.2 자바 가상 머신의 개념적 구성 자바 스택
9
1.2 자바 가상 머신의 개념적 구성 힙
10
1.3 Garbage Collection Garbage Collection
객체가 더 이상 사용되지 않는다면 객체에 주어진 메모리 공간을 반환 class A { B b; } class B A a; A foo = new A(); foo.b = new B(); foo.b = null;
11
1.3 Garbage Collection
12
1.4 자바 가상 머신의 구현 자바프로그램이 시스템에 독립적일 수 있도록 자바 가상 머신이 모든 시스템 수용
썬 마이크로시스템의 JDK(Java Development Kit) JDK 내에 있는 가상 머신 : “java” 라는 이름의 프로그램 ex) java Hello
13
1.5 자바 가상 머신의 미래 “한 번 작성하면, 어디에서나 실행시킬 수 있다(Write Once, Run Anywhere)” 실현 속도와 성능 향상 : 바이트 코드를 프로그램이 실행되는 컴퓨터의 프로세서에 최적화된 네이티브 코드로 변환
Similar presentations