• Title/Summary/Keyword: 자바 가상 기계

Search Result 86, Processing Time 0.025 seconds

Design and Implementation of a Class Pile Converter for Embedded Java Virtual Machine (내장형 자바가상기계를 위한 클래스 파일 변환기의 설계 및 구현)

  • 지정훈;양희재
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.04a
    • /
    • pp.67-69
    • /
    • 2003
  • 자바는 서로 다른 종류의 컴퓨터 시스템에서 동일하게 동작하는 플랫폼 독립적인 특성을 가지고 있다. 자바가 상기계(JVM)는 클래스 파일을 읽어 들여 인터프리팅하여 실행한다. 보조기억장치가 없는 내장형 시스템에서는 메모리에 클래스 파일이 위치하는데 클래스 파일에는 디버깅등의 목적으로 사용하는 정보와 클래스, 상수, 필드, 메소드 둥의 정보들을 포함하고 있기 때문에 내장형 시스템에서 사용하기에 적합하지 않다. 본 논문에서는 클래스 파일을 변환하여 내장형 시스템에서 시스템의 효율적인 자원 사용과 성능을 향상시킬 수 있도록 클래스 파일을 변환 해주는 도구인 cls2bin을 설계 및 구현하였다. c1s2bin은 클래스 파일에서 동작에 필요하지 않은 정보들을 제거하고 인터프리팅 될 수 있는 새로운 이미지(bin) 파일을 생성한다 cls2bin의 동작과정과 bin 파일 포맷을 살펴봄으로서 내장형 시스템에서 효율적인 자원사용과 내부정보의 접근 방법을 고찰하였으며 그 결과로 내장형 자바 시스템에서의 개선된 클래스 파일의 형태를 정의하고자 한다.

  • PDF

Java Bytecode-to-SIL Translator using an Abstract Syntax Tree (구문 트리를 이용한 자바 바이트코드에서 SIL로의 번역기)

  • Kim, Young-Koun;Kwon, Hyeok-Ju;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.05a
    • /
    • pp.519-522
    • /
    • 2004
  • 자바는 현재 가장 널리 사용되는 범용 프로그래밍 언어중 하나로 컴파일러에 의해 중간언어인 바이트코드로 변환되며 JVM(Java Virtual Machine)에 의해 실행되는 플랫폼 독립적인 언어이다. SIL(Standard Intermediate Language)은 Microsoft사의 .NET 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템을 위한 중간언어로 가상기계인 EVM(Embedded Virtual Machine)에서 실행된다. 본 논문에서는 자바 프로그램을 컴파일하여 생성된 클래스 파일에서 Oolong 코드를 추출하고 추출된 Oolong 코드를 EVM의 SIL 코드로 변환하여 자바로 구현된 프로그램이 EVM에서 실행되도록 하는 Bytecode-to-SIL 번역기 시스템을 구현하였다. 그리고 본 번역기 시스템을 다른 플랫폼에 용이하게 설치하기 위한 재목적성(retargetability)을 위해 단일패스(one-pass)을 사용하는 기존의 번역기들과 달리 AST를 이용한 컴파일러 기법을 사용하여 AST가 가지고 있는 정보에 대해 최적화 작업을 수행하여 보다 효과적인 코드 변환을 할 수 있도록 설계하였다.

  • PDF

A study on high performance Java virtual machine for smart card (스마트카드용 고성능 자바가상기계에 대한 연구)

  • Jung, Min-Soo
    • Journal of the Korean Data and Information Science Society
    • /
    • v.20 no.1
    • /
    • pp.125-137
    • /
    • 2009
  • Smart card has a small sized micro computer chip. This chip contains processor, RAM, ROM, clock, bus system and crypto-co-processor. Hence it is more expensive, complicated and secure chip compared with RFID tag. The main application area of smart card is e-banking and secure communications. There are two kinds of smart card platforms; open platform and closed one. Java card is the most popular open platform because of its security, platform independency, fast developing cycle. However, the speed of Java card is slower than other ones, hence there have been hot research topics to improve the performance of Java card. In this paper, we propose an efficient transaction buffer management to improve the performance of Java card. The experimental result shows the advantage of our method.

  • PDF

Implementation and Performance Evaluation of Real-Time Java Thread for Embedded Systems (내장형 시스템을 위한 실시간 자바 쓰레드의 구현 및 성능 평가)

  • 강희구;성민영;김태현;이동렬;김소영;김광영;김형수;장래혁;신현식
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2000.04a
    • /
    • pp.95-97
    • /
    • 2000
  • 자바는 플랫폼 독립성, 보안, 멀티 쓰레드 지원, 가베지 콜렉터 등 많은 장점을 갖고 있는 언어이다. 하지만 현재의 자바 가상 기계(JVM)는 시간 제약 조건을 갖는 주기적인 태스크 수행, 실시간 스케쥴링 등 실시간 응용을 위한 지원이 미흡한 실정이다. 본 논문에서는 실시간 운영체제인 VxWorks와 내장형 JVM인 퍼스널 자바 상에서 실시간 응용 프로그램의 지원을 위한 자바 쓰레드를 설계, 구현한다. 이를 위해 기존의 자바 쓰레드에 시작시간, 주기, 종료시한 등의 시간 속성을 삽입하고, 실시간 자바 쓰레드 API 클래스를 구현한다. 실시간 스케쥴러를 세가지 방식으로 구현한다. 첫째는, JVM을 수정하지 않고 시간 속성에 따라 쓰레드에 우선 순위를 할당하여 스케쥴링하는 방식이고, 둘째는 JVM을 수정하여 시간 속성에 따라 VxWorks 커널 스케쥴러를 통해 스케쥴링하는 방식이며, 셋째는 독립적인 스케쥴링 태스크를 구현하는 방식이다. 쓰레드 생성, 문맥 교환 등의 오버헤드와 스케쥴링 시 종료시한 초과 비율 등의 기준을 통해 각각의 성능을 비교한 결과, VxWorks 커널 스케쥴러를 이용한 방식이 가장 적합하다는 결론을 얻을 수 있었다.

  • PDF

Bytecode Simulator for Analyzing Java Programs (자바프로그램 분석을 위한 바이트코드 시뮬레이터)

  • Kim, Doo-Woo;Jung, Min-Soo
    • The Transactions of the Korea Information Processing Society
    • /
    • v.7 no.7
    • /
    • pp.2086-2094
    • /
    • 2000
  • It is not easy to analyze object-oriented programs, including those in Java, Because the control flows of he program is not visible to the users. The users, however, can utilize class files to trace the process of execution, since a lot of information related on control flow are store in the control flows. A Java virtual machine can then execute the bytecods included in classfiles. It means that understanding the execution process of the bytecodes leads users to comprehend and analyze source programs in Java. We design and implement a visual tool for bytecode execution that is an efficient and powerful tool to understand and analyze source programs in Java. It can aid users to thoroughly grasp not only the structure of a program but also the flow of controls among objects.

  • PDF

Design and Implementation of a Virtual Machine for Embedded Systems (임베디드 시스템을 위한 가상기계의 설계 및 구현)

  • Oh Se-Man;Ko Kwang-Man;Lee Yang-Sun
    • Journal of Korea Multimedia Society
    • /
    • v.8 no.9
    • /
    • pp.1282-1291
    • /
    • 2005
  • This paper presents the EVM(Embedded Virtual Machine) which enables the execution of dynamic applications loaded in the embedded systems such as Mobile Devices(mobile phone, PDA), Set-Top Box, and Digital TV using downloading techniques. To accomplish this goal, we defined a SIL-(Standard Intermediate Language) code, and implemented a Bytecode-to-SIL translator which enables the execution of programs written in java language in the EVM platform without JVM, and a MSIL--to-SIL- translator which enables for programs written in .NET language to be executed in the EVM platform without .NET platform. Also, we developed a EFF(Executable File Format) builder as an assembler which translates SIL codes into an executable file, *.evm, and implemented the EVM which reads the *.evm file and executes it. The virtual machine for embedded systems developed in this paper is the software technologies that enable the execution of applications or contents without changes to when the platforms change. In fact, the virtual machine suggested here is not only usable as a standard model for existing virtual machines but also aid in more efficient execution of applications loaded in the embedded systems such as Mobile Devices, Digital TV, and Set-Top Box.

  • PDF

Reusing Local Regions in Memory-limited Java Virtual Machines (메모리가 제한적인 자바가상기계에서의 지역 재사용)

  • Kim, Tae-In;Kim, Seong-Gun;Han, Hwan-Soo
    • Journal of KIISE:Software and Applications
    • /
    • v.34 no.6
    • /
    • pp.562-571
    • /
    • 2007
  • Various researches had been devoted in purpose of improving memory management in terms of performance, efficiency, ease of use, and safety. One of these approaches is a region-based memory management. Each allocation site selects a specific region, after that allocated objects are placed in this region. Memory is reclaimed by destroying the region, freeing all the objects allocated therein. In this paper, we propose reusing of local regions to reduce heap memory usage in memory-limited environments. The basic idea of this proposal is reusing of upper local regions where objects that are allocated to these regions are not accessed until the current method is finished. We believe our method of reusing local regions is able to overcome memory constraints in memory-limited environments.

Mixed-mode execution environment using the JNI (JNI를 사용한 혼합형 실행 환경)

  • Kim Sang-Hoon
    • The Journal of Information Technology
    • /
    • v.5 no.4
    • /
    • pp.35-44
    • /
    • 2002
  • The tradeoff of Java's portability is the inefficiency of interpretation. Also, the standard Java class library may not support the platform-dependent features needed by your application. Several solutions have been proposed to overcome these problems, such as JNI, JIT, off-line bytecode compilers. In this paper, we present an mixed-mode execution model which Java virtual machine executes together with native code. This execution model and its translator preserves the ability to dynamically load bytecode, and reduce the difficulties of JNI usages. Our system is more efficient than JIT, and helps programmer to write C implementation for the native method without the concept of JNI.

  • PDF

Analysis of the simpleRTJ Class File Format (simpleRTJ 클래스 파일의 형식 분석)

  • 양희재
    • Proceedings of the Korean Institute of Information and Commucation Sciences Conference
    • /
    • 2002.11a
    • /
    • pp.373-377
    • /
    • 2002
  • Unlike desktop systems, embedded systems usually meet a strict restriction on using memory. It is required to allocate several class files on memory to run a Java program. A Java class file contains such data including a constant pool, class overview, fields information, and methods information. Some of them are used merely for a debugging purpose, others for a program execution. This paper analyzes the internal structure, or format of the class files used for embedded Java systems. We also investigate how much memory will be necessary for each part of the class files when the files are allocated in memory. The experiment was performed on the simpleRTJ, an open-source commercial embedded Java system.

  • PDF

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

  • Kim, Kyung-Soo;Yoo, Weon-Hee
    • Journal of the Korea Society of Computer and Information
    • /
    • v.11 no.1 s.39
    • /
    • pp.107-117
    • /
    • 2006
  • Java language creates class files through Java compiler. Class files include informations involved with achievement of program. We can do analysis and optimization for efficient codes by analyzing class files. This paper analyzes bytecodes using informations of Java class files. We translate stack-based Java bytecodes into 3-address codes. Then we translate into static single assignment form using the 3-address codes. Static single assignment form provides a compact representation of a variable's definition-use information. Static single assignment form is often used as an intermediate representation during code optimization. Static sing1e assignment form renames each occurrence of a variable such that each variable is defined only once.

  • PDF