[프로그래밍]JVM에 대해
- 최초 등록일
- 2006.04.24
- 최종 저작일
- 1997.01
- 16페이지/
MS 워드
- 가격 1,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
JVM에 대한 설명과 그림으로 구성되어졌으며,
대학 레포트용으로 정말 좋은 내용이다.
목차
1. 개념이해
2. JVM의 정의와 역할
3. JVM의 구성
4. JVM의 구조
5. 클래스 로더(Class loader)
6. 연결(Linking)
7. 클래스 검증기(Class Verifier)
8. 4단계 검증 과정
9. 메소드 영역(Method Area)
10. 메모리 관리자(Memory Manager)
11. 실행 시간 데이터 영역
12. 실행 엔진(Execution Engine)
13. 예외 관리자(Exception Manager)
14. 네이티브 메쏘드 연결
15. JVM의 데이터 타입
16. 바이트 코드 명령어
17. 바이트 코드 명령어 카테고리
18. 자바 스택 및 메소드 호출(Java Stack and Method Call)
19. 자바 스택 및 스택 프레임
20. 쓰레드와 자바 스택
21. 메소드 호출 명령어
22. 메소드 호출과 프레임
23. 메소드 호출 예
24. Invokevirtual
25. Invokestatic
26. 메소드 테이블(Method Table)
27. 메소드 호출 예1,2,3
28. 예외 처리
29. JVM의 try-catch
30. JVM의 도전적인 주제
31. JVM의 구현 사례들
본문내용
JVM(Java Virtual Machine)
1. 개념이해
‘CPU에 대한 추상화를 수행하고, 각각의 컴퓨터에서 이 추상화된 CPU를 구현해주면 어떨까?’라는 것이 자바언어의 개발자들이 처음 자바를 개발할 때의 아이디어였다. 만약 어떤 컴퓨터에서 이러한 가상 컴퓨터가 구현되어있다면, 가상 컴퓨터에서 수행될 수 있도록 작성된 프로그램들은 이 시스템에서 동작할 것이고, 따라서 프로그래머가 한 번만 프로그램을 작성하면 이 프로그램이 모든 시스템에서 실행될 수 있다. 이러한 가상 컴퓨터를 자바 가상 머신(Java Virtual Machine, JVM)이라고 부른다. JVM이 어떤 특정한 CPU에 기반을 두고 있지 않기 때문에, 각 CPU에서 제공해주는 비트나 바이트 수준의 메모리 접근보다는. 보다 일반적으로 메모리에 접근할 수 있는 고 수준의 추상화가 제공되어야만 했다. 그래서 JVM에서는 메모리를 객체들의 집합이라는 개념으로 다루어준다.
2. JVM의 정의와 역할
자바 가상머신이 어떻게 구성되어야 하는지를 나타내는 공식적인 문서는, 팀 린드홀름과 프
랭크 엘린이 쓴 ‘자바 가상 머신 명세서(Java Virtual Machine Specification)”이다.
이 명세서는 다음의 세 가지가 정의되어 있다.
- 명령어들의 집합과 각 명령어의 의미의 정의: 이 명령어들은 바이트 코드(Bytecode)라고 불렀다.
- 클래스 파일 형식이라고 불리는 바이너리 형식: 이 형식은 바이트 코드를 전송하는데 사용되며, 클래스가 플랫폼에 독립적으로 동작할 수 있도록 해 준다.
- 프로그램에 문제가 없는지를 확인하는 알고리즘: 이 알고리즘을 검증이라고 한다
일반적으로 Java Platform이라고 말할 때, 이는 Java API와 Java Virtual Machine을 두고
하는 말이다. Java API가 프로그램을 짤 때 사용하기 위한 라이브러리의 집합이라고 한다면,
Java Virtual Machine은 작성된 프로그램을 실행시키기 위한 환경이라고 볼 수 있다.
JVM은 이와 같이 기본적으로 byte code를 실행시켜 주는 역할을 감당하고 있는데, 그 역
할을 감당하기 위해서, runtime linking과 garbage collection을 지원한다. Runtime linking
은 실행 class가 JVM을 통해서 실행되는 중에 필요한 외부 class와 결합(linking)되도록 하
는 방식을 말한다. JVM에서 이런 runtime linking이 지원되므로, 여러 클래스들이 한 프로
그램을 구성하는 경우에, 한 클래스를 수정해야 할 일이 발생할 경우, 전체를 다시 컴파일
할 필요가 없이, 단지 변경된 클래스가 속한 파일만을 컴파일해주면 된다는 장점을 갖게 된
다.
참고 자료
없음