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

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

바이트코드 분석을 위한 중간코드에 관한 연구 (A Study on Informediated code for Analyzing Bytecodes)

  • 김경수;유원희
    • 한국컴퓨터정보학회논문지
    • /
    • 제11권1호
    • /
    • pp.107-117
    • /
    • 2006
  • 자바 언어는 객체지향 언어이며 다양한 개발 환경과 이식성에 맞는 언어로써 각광을 받고 있다. 하지만 자바 언어는 실행속도가 느리다는 단점을 가지고 있다. 이러한 이유는 자바 프로그래밍 환경에서 자바 가상 기계 코드인 바이트코드가 인터프리터 방식으로 사용되기 때문이다. 따라서 프로그램의 수행에는 실행속도가 현저히 저하되는 단점이 발생하게 된다. 또한 자바 언어는 컴파일러를 통해 생성된 클래스 파일에 프로그램의 수행과 관련된 정보가 숨겨져 있다. 클래스 파일의 분석으로 바이트코드를 위한 효율적인 분석 및 최적화를 할 수 있다. 본 논문에서는 자바 클래스 파일의 정보들을 이용해 자바 바이트코드 분석을 하려한다. 분석을 위해 정적 단일 배정문 형태로 변환하게 되는데 정적 단일 배정문 형태는 정의-사용체인에서 변형된 형태이다. 정적 단일 배정문 형태는 각각의 타입들을 오직 한번만 배정하고 재명명함으로써 프로그램을 정적으로 분석 할 수 있게 한다. 정적 단일 배정문 형태는 최적화와 분석을 위한 효과적인 중간 코드이다.

  • PDF

자바 Ahead-of-Time 컴파일러에서의 효율적인 예외처리 방법 (Efficient Exception Handling in Java Ahead-of-Time Compilation)

  • 정동헌;박종국;이재목;배성환;문수묵
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 가을 학술발표논문집 Vol.32 No.2 (1)
    • /
    • pp.823-825
    • /
    • 2005
  • 자바는 이식성과 보안의 장점으로 인하여 내장형 시스템에서 널리 사용되고 있으나 인터프리터를 통한 바이트코드의 수행으로 인하여 성능이 저하되는 문제를 포함하고 있다. 이를 해결하기 위한 한 방법으로 수행시간 전에 바이트코드를 기계어 코드로 미리 번역하여 수행시간에는 기계어 코드가 수행되도록 하는 Ahead-of-Time 컴파일러 (AOTC)가 사용되고 있다. 특히 바이트코드를 C코드로 변환한 다음 기존의 컴파일러를 이용하여 기계어 코드를 생성하는 방식을 많이 택하고 있다. 본 논문에서는 AOTC에서 효율적인 예외처리 (exception handling) 기법을 제안한다. 기존의 AOTC 에서는 예외를 발생하는 메쏘드와 예외를 처리하는 메쏘드가 다른 경우 setjmp/longjmp를 이용하여 예외처리를 수행하고 있으나 우리는 메쏘드 호출 후의 예외 검사를 통해 예외처리를 수행한다. 우리는 제안된 예외처리 방법은 Sun의 CDC 가상 머신을 위해 개발된 AOTC 에 구현되었으며 SPECjvm98 벤치마크에서의 실험을 통해 setjmp/longjmp 방식에 비해 $1.3\%$에서 $154\%$까지의 성능향상이 가능함이 확인되었다.

  • PDF

전원 공급이 지속적인 대용량 스마트 카드를 위한 JCVM 시스템 구조 개선 (An Improvement of the JCVM System Architecture for Large Scale Smart Card having Seamless Power Supply)

  • 이동욱;황철준;양윤심;정민수
    • 한국멀티미디어학회논문지
    • /
    • 제10권8호
    • /
    • pp.1029-1038
    • /
    • 2007
  • 기존의 자바카드 플랫폼이 탑재된 스마트 카드는 전원이 잠시 공급될 때 어플리케이션을 설치하고 실행한다. 또한 예기치 않은 전원 차단에 대비하여 어플리케이션의 실행 상태와 실행 시 변경되는 모든 데이터를 비휘발성 메모리(EEPROM/Flash)의 힙(Heap)영역에 저장하고 갱신한다. 이 같은 무절제한 EEPROM의 데이터 갱신은 스마트 카드의 생명을 단축시키는 중요한 원인이 된다. 이는 항상 전원이 공급되는 환경으로 발전할 것임을 고려하지 않는 상태에서 스마트 카드를 개발했고, 또한 그 구조를 계속 유지하고 있기 때문이다. 본 논문에서는 어플리케이션 저장 메커니즘과 메모리 구조를 개선하여, EEPROM은 어플리케이션 다운로드용, RAM은 애플릿 실행용으로 사용하는 일반적인 컴퓨터 시스템 구조로 개선하여 전원이 항상 공급되는 환경에서 운용되는 고성능 자바카드 시스템을 개발한다. 제안된 기법이 적용된 자바카드 시스템을 통해 애플릿의 생성 속도가 58%, 메소드 실행속도가 33% 정도 빨라진다는 것을 알 수 있었다.

  • PDF

VRML과 자바애플릿을 이용한 과학교육용 코스웨어 (A Courseware for Science Education Using VRML and Java Applet)

  • 하얀;최두성
    • 정보교육학회논문지
    • /
    • 제8권2호
    • /
    • pp.203-209
    • /
    • 2004
  • 본 연구는 가상현실 언어인 VRML과 자바 애플릿을 이용하여 학습자(초등학교 고학년, 중학교 학생)에게 흥미를 줄 수 있는 향상된 학습 방법을 제공하고자 한다. 과학 교육의 현실적인 어려움을 극복하고자 VRML을 이용한 3차원 애니메이션 기능을 사용한다. 이를 통해, 우리 생활 속에 친숙한 기계 구조와 원리를 학습시키고 과학 학습의 흥미를 갖도록 한다. 앞으로 이와 같은 방법은 과학 교육의 효율성을 향상시키는데 널리 활용될 수 있다.

  • PDF

자료 이동 측면에서 자바가상기계와 x86 프로세서의 비교 (Comparison of Java Virtual Machine and x86 Processor in Data Transfer Viewpoint)

  • 양희재
    • 대한전자공학회:학술대회논문집
    • /
    • 대한전자공학회 2005년도 추계종합학술대회
    • /
    • pp.1225-1228
    • /
    • 2005
  • This paper compares the differences between Java virtual machine and x86 processor in data transfer viewpoint. Memory models of JVM and x86 are analyzed and the data transfer paths are identified. As all operations must be performed to the values on operand stack, a great many data transfer operation is unavoidable in JVM. We also lists the number of data transfer operations necessary for executing some typical high-level language statements including assignment, arithmetic, conditional, and iterative statements.

  • PDF

임베디드 자바가상기계를 위한 고정 크기 메모리 할당 및 해제 (Fixed-Length Allocation and Deallocation of Memory for Embedded Java Virtual Machine)

  • 양희재
    • 대한전자공학회:학술대회논문집
    • /
    • 대한전자공학회 2003년도 하계종합학술대회 논문집 Ⅲ
    • /
    • pp.1335-1338
    • /
    • 2003
  • Fixed-size memory allocation is one of the most promising way to avoid external fragmentation in dynamic memory allocation problem. This paper presents an experimental result of applying the fixed- size memory allocation strategy to Java virtual machine for embedded system. The result says that although this strategy induces another memory utilization problem caused by internal fragmentation, the effect is not very considerable and this strategy is well-suited for embedded Java system. The experiment has been performed in a real embedded Java system called the simpleRTJ.

  • PDF

스마트 카드를 위한 APDU 패킷 분석기 개발 (A Development of APDU Packet Analyzer Based oil Smart Card)

  • 박진호;조증보;정민수
    • 한국멀티미디어학회:학술대회논문집
    • /
    • 한국멀티미디어학회 2004년도 춘계학술발표대회논문집
    • /
    • pp.350-353
    • /
    • 2004
  • 스마트 카드를 사용함에 있어서 APDU 통신은 필수적이다. 이런 APDU 를 통해 패킷을 주고 받을 경우에 그 패킷의 이진코드를 분석해 자바 가상 기계에 어떻게 할당되는지 시각적으로 보여줌으로써 그 이진코드 하나 하나가 어떤 의미를 내포하고 있는지 보다 명확하고 쉬운 이해가 가능 하도록 하며, 복잡한 절차의 카드와 카드리더기 사이의 APDU 통신을 버튼 하나로 해결해준다.

  • PDF

자바 바이트코드로부터 JNI를 사용한 C 코드의 변환 (Translation of Java Bytecode into C code with the JNI)

  • 권혜은;김상훈
    • 정보학연구
    • /
    • 제4권1호
    • /
    • pp.1-7
    • /
    • 2001
  • 자바 프로그램은 플랫폼 독립적이라는 장점을 갖는 반면에 그의 실행이 가상 기계를 통하여 이루어지기 때문에 실행 시간의 비효율성을 가진다. 이러한 문제를 극복하기 위해 just-in-time(JIT) 컴파일러, 오프라인 바이트코드 컴파일러와 같은 다양한 해결 방법이 제안되어 왔다. 그러나 JIT 컴파일러는 실행시간에 바이트코드로부터 네이티브 코드로의 번역이 일어나므로 실행시간 부담을 가진다. 그리고 순수 오프라인 바이트코드 컴파일러는 동적 클래스 적재(dynamic class loading)의 어려움을 가진다. 본 논문에서는 동적으로 바이트코드를 적재학 수 있는 능력을 유지하면서, JIT 보다 더 효율적 실행이 가능한 방법을 제안한다. 또한 기존의 bytecode-to-C 번역기와는 달리, 우리의 번역기는 자바 네이티브 인터페이스(JNI)를 사용함으로서 JDK 실행 환경과의 완벽한 호환성을 유지한다. 본 연구의 결과로 바이트코드를 JNI를 사용한 C 코드로 변환하기 위한 번역기를 설계하고 구현하였다.

  • PDF

자바 Bytecode 에서 MSIL 로의 변환을 위한 번역기의 설계 및 구현 (Design and Implementation of a Translator for Translating Java Bytecode into MSIL)

  • 민정현;오세만
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2001년도 춘계학술발표논문집 (하)
    • /
    • pp.743-746
    • /
    • 2001
  • 자바는 객체지향 언어이고, 한번 작성된 프로그램은 자바 가상 기계가 있는 모든 곳에서 수정없이 실행될 수 있기 때문에 소프트웨어의 개발과 유지 보수에 많은 장점을 가진 언어이다. 이러한 특징으로 인하여 개발되는 제품들이 자바로 구현되는 경우가 많다. 그러나 아직 대다수 소프트웨어 개발자들은 주로 C 언어나 C++ 언어를 사용하고 있으며, 최근에는 C#이라는 언어를 사용하고 있다. 자바가 플랫폼에 독립적인 장점은 가지고 있지만, 다수의 개발자 및 사용자가 마이크로소프트 윈도우 운영체제를 사용하고 있다는 것을 감안한다면 그리 탁월한 장점만은 될 수 없다. 또한, 최근의 개발동향이 COM(Component Object Model)을 지향하고 있고, 이는 더 이상 개발자들에게 프로그래밍 언어에 구애를 받지 않고 오직 개발 제품에 대한 집중력을 가질 수 있는 환경을 제공할 수 있다면, 그 개발 효율에 있어서 상당한 이점을 가질 수 있다는 의미이다. 따라서, COL(Component Object Language)을 기반으로 하고 있는 C# (C sharp)언어를 사용하여 개발을 함에 있어서 자바의 언어를 C# 언어로 변환할 수 있다면, 신생 언어인 C#에 있어서 기존 자바로 되어 있는 유용한 개발 제품들을 보다 효율적으로 이용할 수 있을 것이다. 본 논문에서는 두 언어(자바, C#)를 하나로 잇는 교량(bridge)역할을 할 수 있도록 자바의 중간 언어인 Bytecode를 C#의 중간 언어인 MSIL(Microsoft Intermediate Language)로 바꿀 수 있는 중간 언어 번역기를 설계하고 구현하였다. 이를 위한 방법으로는 먼저, 자바 Bytecode 와 MSIL 의 어셈블리 형태에서의 명령어 매칭과정을 매핑 테이블을 이용하여 처리하였고, MSIL 에서 자바 Bytecode 의 함수와 같은 기능을 하는 메소드의 변환을 위하여 마크로 변환기법을 이용하여 해결하였다.I/O ratio 2.5). BTEX의 상대적 함량도 실내가 실외보다 높아 실내에도 발생원이 있음을 암시하고 있다. 자료 분석결과 유치원 실내의 벤젠은 실외로부터 유입되고 있었고, 톨루엔, 에틸벤젠, 크실렌은 실외뿐 아니라 실내에서도 발생하고 있었다. 정량한 8개 화합물 각각과 총 휘발성 유기화합물의 스피어만 상관계수는 벤젠을 제외하고는 모두 유의하였다. 이중 톨루엔과 크실렌은 총 휘발성 유기화합물과 좋은 상관성 (톨루엔 0.76, 크실렌, 0.87)을 나타내었다. 이 연구는 톨루엔과 크실렌이 총 휘발성 유기화합물의 좋은 지표를 사용될 있고, 톨루엔, 에틸벤젠, 크실렌 등 많은 휘발성 유기화합물의 발생원은 실외뿐 아니라 실내에도 있음을 나타내고 있다.>10)의 $[^{18}F]F_2$를 얻었다. 결론: $^{18}O(p,n)^{18}F$ 핵반응을 이용하여 친전자성 방사성동위원소 $[^{18}F]F_2$를 생산하였다. 표적 챔버는 알루미늄으로 제작하였으며 본 연구에서 연구된 $[^{18}F]F_2$가스는 친핵성 치환반응으로 방사성동위원소를 도입하기 어려운 다양한 방사성의 약품개발에 유용하게 이용될 수 있을 것이다.었으나 움직임 보정 후 영상을 이용하여 비교한 경우, 결합능 변화가 선조체 영역에서 국한되어 나타나며 그 유의성이 움직임 보정 전에 비하여 낮음을 알 수 있었다. 결론: 뇌활성화 과제 수행시에 동반되는 피험자의 머리 움직임에 의하여 도파민 유리가 과대평가되었으며 이는 이 연구에서 제안한 영상정합을 이용한 움직임 보정기법에 의해서 개선되었다. 답이 없는 문제, 문제 만들기, 일반화가 가능한 문제 등으로 보고, 수학적 창의성 중 특히 확산적 사고에 초점을 맞추어 개방형 문제가 확산적 사고의 요소인 유창성, 독창성, 유연성 등에 각각 어떤 영향을 미치는지 20주의 프로그램을 개발, 진행하여 그 효과를

  • PDF

자바가상기계를 대상으로 하는 지연계산기반 함수형 언어 컴파일러의 설계 및 구현 (Design and Implementation of a Lazy Functinal Language Compiler for Java Virtual Machine)

  • 최광훈;임현일;한태숙
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 가을 학술발표논문집 Vol.27 No.2 (1)
    • /
    • pp.326-328
    • /
    • 2000
  • 본 논문에서는 지연계산기반 함수형 언어 프로그램을 받아 Java 프로그램을 목적 코드로 생성하는 컴파일러를 설계하고 구현한다. 이 컴파일러는 제한된 형태의 함수형 언어 Shared Term Graph(STG)를 입력언어로 하는 추상기계 Spineless Tagiess G-Machine (STGM)을 수행 모델로 한다. 본 논문에서는 명령형 언어 L-code를 제안하고 이를 입력언어로 하는 새로운 형태의 STGM인 L-Machine을 제안한다. STG 언어를 L-code로 변환하는 컴파일러와 L-code를 Java로 변환하는 컴파일러를 설계하고 구현함으로써 원하는 컴파일러를 구성한다. 그리고 Glasgow Haskell 컴파일러를 전단부로 하여 지연계산 기반 함수형 언어 Haskell로 작성된 프로그램들을 컴파일하여 STG 프로그램으로 변환한 다음 본 논문에서 구현한 컴파일러로 이를 Java 프로그램으로 변환한다. 변환된 Java 프로그램을 Sun JIT 컴파일러로 컴파일하여 수행한 성능 평가 결과를 제시한다.

  • PDF