MFC를 이용한 자바클래스파일 분석기 < Java Virtual Machine Simulator >

Slides:



Advertisements
Similar presentations
시 작 기 도 ( 시편 1.1-3) 행복하여라 악인들의 뜻에 따라 걷지 않고 죄인들의 길에 들지 않으며 오만한 자들의 자리에 앉지 않는 사람 오히려 주님의 가르침을 좋아하고 그분의 가르침을 밤낮으로 되새기는 사람 그는 시냇가에 심겨질 때에 열매를 내며 잎이 시들지 않는.
Advertisements

XML with JAVA. chapter 07 : chapter 07 : XML 스키마 Ⅰ XML 스키마 Ⅰ.
과제제안서 ( 영상처리를 이용한 골프 도우미 ) 이종원 박준도 박현욱 황성수 조성건.
© IBM Corporation 2006 목 차목 차  자바 언어의 소개  자바 언어의 역사  자바 환경 설정 (JDK 1.5)  Documentation API 의 설치  Eclipse 의 설치와 사용법  HelloWorld.
2010 IT 개발자 양성을 위한 2010 년 채용예정자 과정 제안서 년 채용예정자 진행 프로세스 기업협약업체 모집 대학 취업 설명회 회사면접 교육, 프로젝트 진행 신입사원입사 수료식 ( 개인별 교육 성과제출 후 ) 기업 최종평가에 의해 기업 신입사원으로.
미디어 프로그래밍 II 소개.
CDMA SW 구조 AIITQC 서울본원교육장 양 종 윤.
8월 도서관 행사 일정 ★오픈갤러리★ 테마도서전시 “휴가(방학) 때 읽을만한 책” 8.1~8.8 일 월 화 수 목 금 토
Windows Programming 담당교수: 이상정 교수님 발표자 : 김인태 학번 :
1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도    1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도 (상설) 기관별 맞춤형 교육 - 당 교육기관에서.
Vision System Lab, Sang-Hun Han
T A B L E 작성자 : 이 재 학.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
2장 닷넷 프레임워크.
Internet Computing KUT Youn-Hee Han
01 화일의 기본 개념 02 화일 저장장치 03 화일 입출력 제어 04 순차화일 05 화일의 정렬 06 화일의 합병
이번 시간에는... 지난 시간에는 VM 기반 모바일 플랫폼 기술의 첫번째 시간으로, 모바일 플랫폼 및 그 현황과, GVM, XVM, WITOP, Brew 및 JavaStation 모바일 플랫폼의 특징과 구성에 대해 알아 보았습니다. 이번 시간에는 모바일 플랫폼 기술 그.
제 1 장. JAVA란 작성자 : NLIP.
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Sookmyung Women’s Univ. PSLAB Moon, Se won
Kasimov C언어 세미나 1st.
화면(UI) 기반 도메인모델 작성 2014년 8월.
명품 JAVA Essential.
Visual C++ Programming
프로그램 분석의 구현.
MFC UI for TS Analyzer 서울시립대학교 컴퓨터통계학과 최 용 진.
2010학년도 2학기 객체지향의 이해.
리버스 엔지니어링 안녕하십니까? 리버스 엔지니어링 발표를 맡은 정창하입니다. 지금부터 리버스 엔지니어링 발표를
7장 인덱스된 순차 화일.
운영체제 (Operating Systems)
Chapter 10. 파일 시스템 인터페이스(File System Interface)
파일 시스템 인터페이스(File System Interface)
날짜: 팀명: TEAM-SIX 발표자: 이기영
Visual c++ 이용한 영상처리 5조 과정 : 시스템제어 조장 : 김 신 호 조원 : 주강수, 유성민, 남민호
Rhapsody + MFC 개발 가이드.
2009학년도 1학기 상지대학교 컴퓨터정보공학부 고 광 만
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
제10장 파일 시스템 인터페이스(File System Interface)
목차 INDEX 1. 회원가입 및 로그인 2. 업체정보 3. 제조검사 신청 4. 인보이스 5. 검사진행현황(현장검사 신청)
웹 다이어리 완료보고서 이상제 정영석.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
Database Programing 이름 : 김 수 종 학번 :
“정보의 표현” 이 점 숙 컴퓨터와 인터넷 “정보의 표현” 이 점 숙
“소프트웨어의 표현” 이 점 숙 컴퓨터와 소프트웨어 “소프트웨어의 표현” 이 점 숙
소프트웨어 공학 (Software Engineering)
Small-scale Java Virtual Machines
게임인공지능 제 6 장 스크립트 2008년 5월 6일.
Java Chapter 4 ~ 주차.
시스템 분석 및 설계 글로컬 IT 학과 김정기.
Internet Computing KUT Youn-Hee Han
Chapter 4 변수 및 바인딩.
Lua script cpp서 사용하기 Lua 버전
비주얼 프로그래밍(2분반) 강의노트 2분반 = 월/목.
Drawing graphs.
중등교원 전보시스템 로그인 오류시 해결 해결방안 * 작성일 2016 년 12 월 15일 * 작성자 광주광역시교육청.
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
자바 5.0 프로그래밍.
2015년 2학년 1반.
컴퓨터 새내기 탈출 4. 컴퓨터에 생명을.
성공적인 입사지원서 작성법 제이비커리어 교육수석 소 은 선.
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
유예 X-FILE *조사자* 1301권희원 1315이예지 1317장아정 1322홍자현.
책을 읽읍시다  탈향 진지하게 설명해드림 1303 김소희 1309박지호 1315이지수.
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
4M: Man, Machine, Material, and Method 그림 14.1 그림 14.4
2016년 제1차 운영위원회 평택시건강가정 ∙다문화가족지원센터
한상철 (Han, Sangchul) 상허연구동 102호 ( )
hp-ux Java 어플리케이션의 performance tuning
강사 및 비전임교원 공개채용시스템 메뉴얼 교 무 연 구 팀.
Presentation transcript:

MFC를 이용한 자바클래스파일 분석기 < Java Virtual Machine Simulator > 지도교수 : 이 광세 교수님 발 표 자 : 손 영언

목 차 1. 프로젝트 목적과 개발동기 2. 프로그램의 기능과 구조 3. 클래스 파일의 구조 4. 진 행 일 정 5. 시 연 목 차 1. 프로젝트 목적과 개발동기 2. 프로그램의 기능과 구조 2.1. 프로그램의 기능 2.2. 프로그램 구조도 2.3. 각 모듈별 기능과 과제 3. 클래스 파일의 구조 4. 진 행 일 정 5. 시 연 6. 프로젝트 후기와 향후과제

진 행 일 정 발료주제 선정 및 주제에 대한 개괄 적인 구성설정 자바가상머신에 대한 이해와 클래스 파일구조에 대한 자료조사 5월 6월 7월 8월 ~ 발료주제 선정 및 주제에 대한 개괄 적인 구성설정 자바가상머신에 대한 이해와 클래스 파일구조에 대한 자료조사 자바가상머신에서의 메모리관리에 대한 자료 수집과 프로그램 제작 프로그램 제작과 디버깅 작업

프로젝트의 개략 자바언어로 작성된 프로그램의 소스를 바이트코드로 부터 직접 받아들여 그 구성과 각각의 요소들을 분석하여 화면상에 시각적으로 표시하여 프로그램이 수행되는 일련의 과정을 직접 눈으로 확인할 수 있으며 고급 프로그램 제작에 필수적 요소인 메모리 관리에 있어 메모리 사용량과 가비지 컬렉션과정을 가시적으로 표시한다. 그로인해 규모가 큰 프로그램 제작시 쉽게 발생하는 난해한 디버깅과 트레이싱 작업을 용이하게 한다.

프로젝트의 목적과 개발 동기 자바가상기계의 구조와 동작원리의 이해 - 클래스 파일을 입력으로 받아 바이트코드를 분석, 실행하는 모습을 들여다 볼 수 있는 자바가상기계 시뮬레이터의 제작 보다 높은 단계의 컴파일언어의 이해 시뮬레이터 자바가상기계 클래스 파일 실행 결과

기능 및 개발과제 클래스 파일을 분석하여 클래스 정보를 보여주는 기능 바이트코드 실행 시 메모리 변화를 시각적으로 보여주는 기능 자바원시코드의 편집 및 컴파일 기능

시 스 템 구 조 미구현 : 모듈 : 자료구조

모듈별 기능과 수행과제 -1 클래스 파일 자료구조 모듈 : 클래스 파일의 정보를 가짐

모듈별 기능과 수행과제 -2 클래스 파일 분석 모듈 : 클래스 파일을 분석하여 자료구조를 생성

모듈별 기능과 수행과제 -3 클래스 파일 분석 뷰어 모듈 : 클래스 파일의 정보를 가짐

자바 클래스 파일의 구조 1.1 ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool[constant_pool_count-1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields[fields_count]; u2 methods_count; method_info methods[methods_count]; u2 attributes_count; attribute_info attributes[attributes_count]; } 타입(type), 이름(name), 개수(count)의 정보가 순차적으로 나타남 여기서 u1, u2, u4는 각각 unsinged 1, 2, 4 byte값을 의미 자바가상기계 명세 참조 (http://java.sun.com/docs/books/vmspec/)

magic : 자바 클래스 파일이라는 것을 나타내는 고유 값 (0xCAFEBABE) minor_version & major_number : 클래스 파일을 생성한 컴파일러의 버전 constant_pool_count & constant_pool - 클래스와 인터페이스에 관계되는 상수를 담아 놓은 일종의 메모리 공간 - 상수 값을 한 곳에 모아 둠으로써 모든 곳에서 쉽게 참조 access flag (2byte) - interface 정보와 class의 access permissions표시 this_class (2byte) : 자신 클래스의 이름 super_class (2byte) : 부모 클래스의 이름 (지정하지 않았다면, java.lang.Object) interfaces_count & interfaces - 자신 클래스가 구현한 interface의 개수를 나타냄 - 자신 클래스가 구현한 interface에 해당하는 CONSTANT_Class entry의 index들을 가짐

fields_count - 자신의 클래스에서 정의된 클래스 변수 또는 인스턴스 변수들의 개수를 나타냄 - 자신의 클래스에서 명시적으로 정의된 변수들만 해당 - 부모 클래스에서 물려받거나 단순히 접근만 가능한 변수들은 포함하지 않음 fields : 클래스 자신의 필드에 대한 보다 자세한 정보를 가지고 있음 methods_count - 클래스에서 정의된 클래스 메쏘드, 또는 인스턴스 메쏘드의 개수를 나타냄 - 클래스에서 명시적으로 정의된 메쏘드만을 포함, 상속받은 메쏘드는 포함하지 않음 methods - 클래스의 메쏘드에 대한 보다 자세한 정보를 갖고 있으며, fields의 구조체와 비슷함 attributes_count -자신의 클래스에 대한 부과적인 attribute의 개수 attributes - 클래스 혹은 인터페이스의 속성 - class file은 다양한 속성을 가질 수 있음

모듈별 기능과 향후과제 -1 클래스 로더 모듈 : 클래스 파일 자료구조를 class area영역에 로드

모듈별 기능과 향후과제 -1 메모리 자료구조 모듈 : class area, heap, stack

모듈별 기능과 향후과제 -2 실행 엔진 모듈 : class area에 있는 바이트코드들을 순차적으로 실행

모듈별 기능과 향후과제 -3 메모리 상태 뷰어 모듈 : 메모리 상태를 시각화 ■ garbage collector - 실행시간에 메모리를 관리하여, 사용되지 않는 메모리를 회수한다. ■ profiler - 시뮬레이션이 끝난 후 사용된 메쏘드의 실행시간과 사용빈도 및 메모리 사용량을 보여준다.

시 연

프로젝트 후기 및 향후과제 프로그램 자료 수집 시간대비 직접적인 코딩 시간의 부족으로 완성된 프로그램을 제작하지 못하였음이 아쉽고 많은 에러와 작동상의 문제점을 안고 있음을 스스로 인식하게 되었다. 본 프로그램의 핵심적인 요소인 메모리 관리기술의 완벽한 구현이 앞으로 남은 가장 큰 과제이며 접근이 쉽지않은 주제임에는 분명하나 그 전망과 활용도가 우수함을 직접적인 프로그램 작업수행을 통해서 절감했다.

개발툴 및 참고자료 Visual Stiduo 7.0 MFC http://java.sun.com/docs/books/vmspec http://pl.changwon.ac.kr/%7Epl/seminar/jvm/98_jvm_sche.html 자바 가상머신 프로그래밍(인포북)