• 제목/요약/키워드: 자바가상기계

검색결과 86건 처리시간 0.029초

Java Bytecode에서 MSIL로의 번역기 (Translator for Java Bytecode to MSIL)

  • 민정현;오세만
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2001년도 가을 학술발표논문집 Vol.28 No.2 (1)
    • /
    • pp.349-351
    • /
    • 2001
  • 자바는 객체지향언어이고, 한번 자바로 작성된 프로그램은 자바가상기계가 있는 모든 곳에서 수정없이 실행될 수 있기 때문에 소프트웨어의 개발과 유지보수에 많은 장점을 가진 언어이다. 이러한 특징으로 인하여 현재 개발되는 제품들이 자바로 개발되는 경우가 많다. 그러나 이는 결국 주 운영체제에서 사용되는 실행화일 이외에 자바의 실행화일만을 위한 자바가상기계가 공존해야 하므로 시스템에 있어서는 이중부담을 안을 수 밖에 없고, 더욱이 아직 대다수의 소프트웨어 개발자들은 주로 C언어나 C++언어를 사용하고 있으며, 최근에는 C#이라는 언어를 사용하고 있다. 결국 자바가 플랫폼에 독립적이라는 장점은 가지고 있지만, 다수의 개발자가 마이크로소프트의 윈도우 운영 체제를 사용하고 있다는 점을 감안하면, 커다란 장점만은 될 수 없다. 따라서, 본 논문에서는 자바의 클래스화일을 자바가상기계가 없이도, 마이크로소프트 윈도우의 .NET Framework에서 실행 될 수 있는 실행 화일로의 변환을 할 수 있는 중간언어인 MSIL(Microsoft Intermediate Language)로 바꿀 수 있는 번역기를 설계 및 구현 하였다. 이를 위한 방법으로는 자바 바이트코드와 MSIL의 어셈블리 형태에서의 명령어 매칭과정을 명령어들의 매핑테이블을 이용하여 변환하였고, MSIL에서 자바 바이트코드의 함수와 같은 기능을 하는 메소드의 변환을 위하여 마크로 변환 기법을 사용하였다.

  • PDF

자바 바이트코드를 GVM 코드로 번역하기 위한 언어적 특성 처리 (Han fling the Language Dependent Features for Translating Java Bytecode to GVM Code)

  • 고영관;고석훈;오세만
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 봄 학술발표논문집 Vol.29 No.1 (B)
    • /
    • pp.337-339
    • /
    • 2002
  • 휴대용 무선기기의 성능 향상과 동적인 응용프로그램 실행의 필요성에 따라 모바일 응용프로그램은 기존의 네이티브 애플리케이션 제작 방법에서 가상기계(Virtual Machine)를 탑재하여 실행하는 가상기계애플리케이션 제작 방법으로 변환하였다. 가상기계를 이용한 애플리케이션의 실행은 플랫폼 독립적인 실행이 가능하며 또한 효과적인 다운로드 솔루션을 통한 동적인 응용프로그램의 실행이 가능하다. 이러한 배경으로 KVM과 CVM(General Virtual Machine)등의 가상기계가 출현하였다. 그러나 각 플랫폼에서 맞는 애플리케이션은 서로 호환되지 않으므로 가상기계 언어간의 번역을 통해 목적 가상기계에서의 실행이 요구되며 자바 바이트코드를 순수 국내 기술로 개발된 GVM 코드로 번역하는 것이 바람직하다. 본 논문에서는 KVM에서 실행가능한 자바 바이트코드를 CVM에서 실행하기 위해 바이트코드를 GVM코드인 SAL(Sinji Assembly Language)로 번역하는 번역기를 설계하고 구현한다. 이를 위해 자바의 언어 독립적 특성 외에 언어 의존적인 특성을 처리하기 위한 방법을 제안하며 언어 의존적인 특성을 배열과 문자열, 클래스와 객체, 예외, 스레드로 분류하여 처리한다.

  • PDF

simpleRTJ 자바가상기계의 메모리 관리 기법 (Memory Management Scheme of the simpleRTJ lava Virtual Machine)

  • 양희재
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국해양정보통신학회 2003년도 춘계종합학술대회
    • /
    • pp.237-240
    • /
    • 2003
  • 효율적 메모리 관리는 자바가상기계의 핵심 조건 중 하나이다. 자바에서는 새로운 인스턴스가 생성되거나 메소드가 호출될 때마다 메모리의 할당이 이루어진다. 반면 더 이상 사용되지 않는 인스턴스를 위한 메모리는 자동적으로 회수되며, 호출된 메소드가 복귀될 때마다 메모리도 회수된다. 본 논문에서는 특히 simpleRTJ 자바가상기계에서 적용된 메모리 관리기법에 대해 연구하였다. simpleRTJ는 모든 인스턴스의 크기를 동일하게, 또한 메소드 호출 시 생성되는 스택 프레임의 크기를 모두 동일하게 통일한다는 특징을 갖는다. 우리는 simpleRTJ에서 적용된 이 기법에 대해 상세히 고찰해 보며 이 기법의 성능에 대해서 정성적 분석을 하였다.

  • PDF

전형적 자바 프로그램에서 필드의 사용 형태 (Field Usage Pattern in Typical Java Programs)

  • 양희재
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 가을 학술발표논문집 Vol.32 No.2 (1)
    • /
    • pp.865-867
    • /
    • 2005
  • 자바 프로그램은 클래스의 집합으로 이루어지며 클래스는 필드와 메소드로 구성된다. 필드는 힙 메모리에 저장되므로 필드의 사용 형태는 힙 메모리의 사용 형태에 직접적인 영향을 미친다. 즉 자바 힙 메모리의 사용을 분석하기 위해서는 필드의 사용 형태를 분석해야 한다는 것이다. 본 논문에서는 전형적 자바 프로그램에서 필드가 어떻게 사용되어지는지를 정성적으로 분석하고 실험을 통해 확인하였다. 본 연구의 결과는 자바가상기계의 힙 메모리 구조 개발에 도움을 줄 것이며, 나아가 효율적인 자바가상기계의 개발을 가능하게 할 것으로 기대된다.

  • PDF

SimpleRTJ 자바가상기계에서 클래스 파일의 메모리 상 배치 (In-Memory Allocation of Class Files in SimpleRTJ Java Virtual Machine)

  • 양희재
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 가을 학술발표논문집 Vol.29 No.2 (2)
    • /
    • pp.643-645
    • /
    • 2002
  • 자바가상기계는 클래스 파일에 있는 클래스, 상수, 필드, 메소드 등의 내부 정보를 읽고 자바 응용 프로그램을 실행한다. 보조기억장치가 없는 내장형 시스템의 경우 클래스 파일은 주기억장치, 즉 메모리에 두어야 하지만 클래스 파일 자체는 크기도 클 뿐 아니라 내부 정보에 접근하는 것도 효율적이지 못하다. 따라서 대개의 경우 클래스 파일을 변형한 형태로 메모리에 배치하는데, 본 논문에서는 특히 simpleRTJ 라고 하는 상용 내장형 자바가상기계에서 적용된 방식에 대해 조사해보았다. 이 플렛폼에서의 분석을 통해 클래스 파일의 크기가 얼마까지 줄어들 수 있고, 내부 정보에 대해서는 얼마나 효율적으로 접근할 수 있는지에 대해 고찰하였으며, 그 결과를 바탕으로 향후 더 개선된 형태로 클래스 파일을 메모리에 배치할 수 있는 방안에 대해 연구하고자 한다.

  • PDF

자바가상기계에서 데이터 이동 분석 (Analysis of Data Transfers in Java Virtual Machine)

  • 양희재
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국해양정보통신학회 2005년도 춘계종합학술대회
    • /
    • pp.835-838
    • /
    • 2005
  • 스택 기반 구조를 갖는 자바가상기계(JVM)에서는 전체 동작의 상당 부분이 데이터 이동에 소요되는 것으로 알려지고 있다. 따라서 효율적인 JVM의 개발을 위해서는 JVM 내부에서 데이터가 어떻게 이동되는지를 분석할 필요가 있다. 본 논문에서는 오퍼랜드 스택, 지역변수배열, 힙, 그리고 상수 풀 사이에서 데이터의 이동에 대해 바이트코드 수준에서 분석 조사하였다.

  • PDF

코드 삽입을 이용한 힙 사용량 분석기 (Heap Consumption Analyzer Using Code Embedding)

  • 주성용;조장우
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2006년도 가을 학술발표논문집 Vol.33 No.2 (B)
    • /
    • pp.566-570
    • /
    • 2006
  • 프로그램의 힙 사용량이나 수행 시간과 같은 프로그램의 동적인 속성을 분석하기 위해서 프로파일러가 이용된다. 자바에서는 가상기계와 프로파일러의 통신을 목적으로 JVM TI 같은 프로파일러를 위한 인터페이스를 제공한다. 그러나 자바 가상기계 구현 명세는 프로파일러 인터페이스 구현을 요구하지 않는다. 프로파일러 인터페이스를 구현하지 않는 자바 가상기계에서는 JVM TI를 사용하는 프로파일러를 이용할 수 없다. 본 논문에서는 프로파일러 인터페이스를 사용하지 않는 힙 사용량 분석 기법을 제안했다. 이 방법은 힙 사용 정보를 추출하기 위한 코드를 소스파일에 삽입한다. 이 방법은 힙 사용량 분석 시 자바에서 제공하는 인터페이스를 사용하지 않기 때문에, 표준 인터페이스를 구현하지 않는 가상기계에서도 힙 사용 정보 분석을 수행할 수 있다.

  • PDF

동적 컴파일링 기법을 이용한 소형 자바 가상 기계의 설계 (Design of A Miniature Java Virtual Machine Using Dynamic Compiling)

  • 김도우;정민수;진민;이은정
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (1)
    • /
    • pp.406-408
    • /
    • 1999
  • 썬에 의해 자바 플랫폼이 소개된 후, 자바 기술은 네트워크 상에 연결된 장치들이 선택할 수 있는 하나의 플랫폼으로 자리를 잡았다. 그래서 자바 기술을 자원 제약적인 네트워크 디바이스 및 디지털 전자기기에 적용하고자 하는 연구가 계속해서 진행 중이다. 본 논문에서는 자바 가상 기계를 소형화할 수 있는 기법들을 연구 분석하고, 처리 능력이나 메모리의 크기에 제약이 있는 디바이스들에 사용 가능하고, 동적 컴파일링 기법을 적용하여 실행 효율을 높일수 있는 소형 자바 가상 기계를 설계하고자 한다.

  • PDF

디스크 캐쉬 기법을 이용한 자바 가상 세계의 성능 향상 (Performance Enhancement of Java Virtual Machine using Disk Cache Mechanism)

  • 강정욱;김철기;이준원
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 봄 학술발표논문집 Vol.27 No.1 (A)
    • /
    • pp.92-94
    • /
    • 2000
  • 자바는 이동성, 호환성, 안정성을 위해서 자바 가상 기계를 이용한 수행 방법을 사용한다. 이는 수행 속도를 저하 시키는 한 요인이다. 그래서, 정적 컴파일 모델과 동적 컴파일 모델과 같은 자바 가상 세계의 성능을 높이기 위한 여러 연구들이 진행되었다. 정적 컴파일 모델은 자바의 특성을 해치며, 동적 컴파일 모델은 초기화 시간이 증가하는 문제점이 있다. 본 논문에서는 디스크 캐쉬 기법을 이용하여 동적 컴파일 모델에서 발생하는 초기화 시간을 줄이는 자바 가상 기계를 구현하였다. SPEC JVM98[1]을 이용하여 Kaffe[2] 와 비교했을 때, 초기화 시간이 2배에서 5배 정도 줄었음을 알 수 있었다.

  • PDF

코드삽입을 이용한 자바프로그램의 힙 사용정보 분석기법 (A Technique to Analyze Heap Usage of Java Programs Using Code Inserting)

  • 주성용;조장우
    • 한국컴퓨터정보학회논문지
    • /
    • 제12권2호
    • /
    • pp.29-36
    • /
    • 2007
  • 자바에서는 가상기계와 프로파일러의 통신을 목적으로 JVM TI 같은 프로파일러 인터페이스를 제공한다. 그러나 자바 가상기계 구현명세는 프로파일러 인터페이스 구현을 요구하지 않는다. 따라서 프로파일러 인터페이스를 제공하지 않는 자바 가상기계에서는 JVM TI를 사용하는 프로파일러는 이용할 수 없다. 이러한 문제를 해결하기 위해서 코드 삽입 기법을 이용해서 프로파일러 인터페이스를 사용하지 않고 힙 사용정보를 분석하는 기법을 제안한다. 제안한 방법을 검증하기 위해서 코드 삽입기를 구현하였다. 실험은 공개되고 자주 사용되는 자바 응용 프로그램을 대상으로 하였고, 실험결과는 대상 프로그램에서 생성된 객체의 수와 최대 할당된 객체의 수 그리고 객체의 사용형태를 보여준다.

  • PDF