• 제목/요약/키워드: JVM(Java Virtual Machine)

검색결과 60건 처리시간 0.041초

Translation Java Bytecode to EVM SIL Code for Embedded Virtual Machines

  • Lee, Yang-Sun;Park, Jin-Ki
    • 한국멀티미디어학회논문지
    • /
    • 제8권12호
    • /
    • pp.1658-1668
    • /
    • 2005
  • This paper presents the bytecode-to-SIL translator which enables the execution of the java program in EVM(Embedded Virtual Machine) environment without JVM(java Virtual Machine), translating bytecodes produced by compiling java programs into SIL(Standard Intermediate Language) codes. EVM, what we are now developing, is a virtual machine solution that can download and execute dynamic application programs written in sequential languages like C language as well as object oriented languages such as C#, Java, etc. EVM is a virtual machine mounted on embedded systems such as mobile device, set-top box, or digital TV, and converts the application program into SIL, an assembly language symbolic form, and execute it. SIL is a virtual machine code for embedded systems, based on the analysis of existing virtual machine codes such as bytecode, MSIL, etc. SIL has such features as to accommodate various programming languages, and in particularly has an operation code set to accept both object-oriented languages and sequential languages. After compiling, a program written in java language is converted to bytecode, and also executed by JVM platform but not in other platform such as .NET, EVM platform. For this reason, we designed and implemented the bytecode-to-SIL translator system for programs written in java language to be executed in the EVM platform without JVM. This work improves the execution speed of programs, enhances the productivity, and provides an environment for programmers to execute application programs at various platforms.

  • PDF

임베디드 자바가상머신을 위한 가비지 콜렉션 설계 및 구현 (Design and Implementation of Garbage Collection Based On Embedded Java Virtual Machine)

  • 백대현;박희상;양희권;이철훈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 가을 학술발표논문집 Vol.29 No.2 (1)
    • /
    • pp.406-408
    • /
    • 2002
  • 자바의 가장 중요한 특성 중 하나는 플랫폼 독립성이다. 즉, 자바가상머신(Java Virtual Machine: JVM)이 탑재된 모든 플랫폼에서 운영체제의 종류와 상관없이 Java로 작성된 프로그램을 수행시킬 수 있다는 것이다. 이를 위해서는 각각의 플랫폼에 맞는 JVM이 적재되어야 한다. 본 논문에서 구현하게 될 가비지 콜렉션은 JVM의 성능을 좌우하는 중요한 요소이다. 가비지 콜렉션을 구현할 때 이용되는 알고리즘에는 여러 가지가 있다. 본 논문은 stop-copy와 마크-회수 알고리즘에 대해서 설명하고, 마크-회수 알고리즘을 개선한 마크-회수 압축 알고리즘을 이용한 가비지 콜렉션의 설계 및 구현한 내용을 기술하고 있다.

  • PDF

자바 반복문의 에너지 효율성 (Energy Efficiency of Iteration Statement in Java)

  • 양희재
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국해양정보통신학회 2005년도 추계종합학술대회
    • /
    • pp.816-819
    • /
    • 2005
  • 자바 프로그램의 실행 환경인 자바가상기계에서는 거의 모든 바이트코드들이 메모리 상에서의 자료 이동을 필요로 한다. 자료 이동은 에너지 소비를 일으키므로 이것의 최소화는 JVM의 에너지 효율성 향상에 매우 중요하다. 특히 자바 반복문은 반복 회수에 비례하는 양만큼의 자료 이동을 요구하므로 JVM의 에너지 효율을 높이기 위해서는 무엇보다도 자바 반복문의 에너지 효율을 높이는 것이 중요하다. 본 논문에서는 자바 반복문을 바이트코드 수준에서 분석하여 에너지 효율성을 높일 수 있는 여러 방법들을 제안하였다.

  • PDF

JIT Code Generator 상의 스택할당 정책 적용에 관한 연구 (A study of the stack allocation policy on JIT Code Generator)

  • 김효남
    • 한국컴퓨터정보학회논문지
    • /
    • 제6권4호
    • /
    • pp.100-103
    • /
    • 2001
  • 자바프로그램의 실행속도를 빠르게 하는데 있어서 가장 좋은 방법은 빠른 자바가상머신(JVM : Java Virtual Machine)을 사용하는 것이다. 자바가상머신의 성능은 구현 차이에 따라 성능차이가 많이 난다. 자바가상머신을 구현하는데 있어서 가장 중요한 성능 향상의 기술은 JIT(Just-in-Time) 코드 생성기(Code Generator)이다. JIT 코드 생성기는 자바 바이트 코드를 플랫폼에 맞는 native machine code로 변환해 준다. 이 native code들은 자바가상머신에서 각 바이트 코드를 분석하는데 걸리는 시간을 단축할 수 있기 때문에 기존의 방식보다 빠르게 동작한다. 그러나 JIT 코드 생성기는 많은 레지스터를 사용하기 때문에 스택과 레지스터간의 traffic이 가중되는 문제가 있다. 그러므로 본 논문에서는 자바가상머신의 성능 향상을 위한 방안으로 효율적인 stack allocation 정책을 JIT 코드 생성기에 적용하여 레지스터와의 traffic을 감소시킬 수 있는 방안을 제시하였다.

  • PDF

자바가상머신 GUI를 위한 AWT에서 이벤트 처리 방법 설계 및 구현 (Design and Implementation of Event Handling in AWT for Java Virtual Machine GUI)

  • 백대현;성영락;이철훈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2003년도 봄 학술발표논문집 Vol.30 No.1 (B)
    • /
    • pp.94-96
    • /
    • 2003
  • 자바가상머신(Java Virtual Machine: JVM)을 이용하는데 있어서 GUI(Graphic User Interface)는 JVM 을 탑재한 제품을 사용하는 사람들에게 제품에 대한 편리한 그래픽 환경을 제공하는데 목적이 있다. AWT(Abstract Window Toolkit)는 JavaTM 프로그램에서 GUI를 제공하기 위한 표준 API인 JFC(Java Foundation Class)의 일부분이다. 이에 본 논문에서는 리눅스 기반 자바 AWT API를 구현하는데 있어 가장 핵심 부분인 이벤트 처리가 X 윈도우 시스템과 자바 AWT API 사이에서 어떻게 상호작용하며 이루어지는지에 대해 기술하고 있다.

  • PDF

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

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

  • PDF

Eval-Apply 모델의 STGM에 기반하여 지연 계산 함수형 프로그램을 자바로 컴파일하는 기법 (Compiling Lazy Functional Programs to Java on the basis of Spineless Taxless G-Machine with Eval-Apply Model)

  • 남병규;최광훈;한태숙
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제29권5호
    • /
    • pp.326-335
    • /
    • 2002
  • 최근에 지연 계산 함수형 언어를 자바 프로그램으로 변환함으로써 지연 계산 함수형 언어 프로그램에 대해 코드 이동성을 제공하려는 연구가 있었다. 이러한 연구들은 자바와 지연 계산형 함수형 언어의 추상 기계가 가지는 구조적 유사성에 바탕을 두고 있다. 지연 계산 함수형 언어에 대한 추상 기계인 STGM(Spineless Tagless G-machine)과 자바 언어에 대한 추상 기계인 JVM(Java Virtual Machine)은 기억장소 재활용 체계와 스택 기계 구조를 가진다는 점에서 공통된 특징을 가지고 있다. 그러나 현재가지의 지연 계산 함수형 언어로부터 자바로의 변환 구조는 이와 같은 추상 기계 구조상의 공통점을 충분히 이용하지 못하였다. 본 논문에서는 STGM의 계산 모델을 eval-apply 모델로 새로이 정의함으로써 STGM과 JVM의 공통점을 충분히 이용하는 새로운 변환 구도를 제안한다. 새로이 제안된 변환 구도에서는 자바 스택(Java Virtual Machine Stack)을 사용하여 함수 계산을 수행하도록 함으로써 스택 시뮬레이션으로 인해 나타나는 자바에서의 배열 접근 부담을 제거하였다. 본 논문의 변환 구도에 의해 자바로 변환된 벤치마크 프로그램들은 기존의 변환 구도에 의해 변환된 경우보다 JDK 1.3에서 빠르게 동작한다.

재설계된 자바 클래스 파일을 위한 가상기계의 설계 및 구현 (Design and Implementation of the Virtual Machine for the Redesigned Java Class File)

  • 고광만
    • 정보처리학회논문지A
    • /
    • 제12A권3호
    • /
    • pp.229-234
    • /
    • 2005
  • 가상 기계(Virtual Machine; VM)는 언어에 대한 장치 독립성 및 플랫폼 독립성을 지원하는 프로그래밍 실행 환경이다. 현재까지 자바 언어를 위해 JVM, KVM 등이 다양한 환경에서 사용되고 있으며 유사한 가상 기계가 개발되어 활용되고 있다. 본 논문에서는 자바 클래스 파일(*.class)에서 PDA와 같은 소규모 장치에서 반드시 필요한 요소를 추출하고 실행 효율성을 위해 클래스 파일의 포맷을 재구성한 클래스 파일(*.rclass)을 설계하고 변환기를 개발하였다. 또한 재설계된 클래스 파일을 입력으로 받아 실행 결과를 생성하는 가상기계를 구현하였다.

자료 이동 측면에서 자바가상기계와 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

Time-Predictable Java Dynamic Compilation on Multicore Processors

  • Sun, Yu;Zhang, Wei
    • Journal of Computing Science and Engineering
    • /
    • 제6권1호
    • /
    • pp.26-38
    • /
    • 2012
  • Java has been increasingly used in programming for real-time systems. However, some of Java's features such as automatic memory management and dynamic compilation are harmful to time predictability. If these problems are not solved properly then it can fundamentally limit the usage of Java for real-time systems, especially for hard real-time systems that require very high time predictability. In this paper, we propose to exploit multicore computing in order to reduce the timing unpredictability that is caused by dynamic compilation and adaptive optimization. Our goal is to retain high performance comparable to that of traditional dynamic compilation, while at the same time, obtain better time predictability for Java virtual machine (JVM). We have studied pre-compilation techniques to utilize another core more efficiently, preoptimization on another core (PoAC) scheme to replace the adaptive optimization system (AOS) in Jikes JVM and the counter based optimization (CBO). Our evaluation reveals that the proposed approaches are able to attain high performance while greatly reducing the variation of the execution time for Java applications.