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

검색결과 181건 처리시간 0.028초

임베디드 자바 가상머신에서의 가비지 컬렉션 (Garbage Collection on the Embedded Java Virtual Machine)

  • 이상윤;김상욱;최병욱
    • 전자공학회논문지CI
    • /
    • 제43권3호
    • /
    • pp.20-29
    • /
    • 2006
  • 자바 언어는 그 객체지향성, 안전성, 유연성으로 인하여 현재 가장 널리 쓰이는 프로그래밍 언어의 하나가 되었으며, 자바 가상머신이 제공해주는 가비지 컬렉터로 인하여 프로그래머는 메모리 관리에 관한 많은 고민이 줄어들었다. 임베디드 환경에서 역시 자바는 강세를 나타내고 있으며 임베디드 환경의 특성을 반영한 가상 머신과 가비지 컬렉션 기법이 요구되고 있다. 본 논문에서는 힙이라고 불리는 메모리 영역을 크게 젊은 세대와 늙은 세대의 두 부분으로 나누어서 관리하며 각 세대는 그 특성과 요구사항에 적합하도록 각기 다른 기법을 적용한 가비지 컬렉터를 제안한다. 더불어 효과적인 가비지의 식별을 위한 쓰기 장벽과 2중 필터링 기법을 제안하고 있으며, 일반적인 방법으로 회수가 불가능한 순환적 구조의 가비지를 검출하여 회수하기 위한 이중 검사 기법을 제안한다. 제안하는 기법은 임베디드 환경의 요구사항인 객체의 빠른 할당, 동작의 실시간성, 모든 가비지의 회수, 단편화 제거, 높은 지역성 등을 모두 만족한다.

NDK 기반 공개키 암호를 위한 곱셈기 구현 및 분석 (Implementation and Analysis of Multi-precision Multiplication for Public Key Cryptography Based on NDK)

  • 서화정;김호원
    • 한국정보통신학회논문지
    • /
    • 제16권11호
    • /
    • pp.2347-2354
    • /
    • 2012
  • 안드로이드 상에서의 프로그램 개발은 JAVA SDK를 통해 이루어진다. 하지만 JAVA의 사용은 virtual machine 상에서의 동작으로 인해 기존의 C언어에 비해 성능이 떨어지는 단점을 가진다. 최근에는 이러한 문제점을 해결하기 위해 NDK를 이용한 최적화 프로그램 개발이 사용되고 있다. 해당 기법은 안드로이드 프로그램을 C언어로 작성하여 연산을 효율적으로 수행한다. 본 논문에서는 안드로이드 상에서의 공개키 기반 암호화를 비교 분석하기 위해 NDK와 SDK를 사용하여 곱셈을 구현한다. SDK의 구현에는 BigInteger 패키지를 사용하였으며 NDK의 구현에는 Comb method를 사용하였다. 또한 안드로이드 상에서의 사칙연산, 조건문 그리고 호출문의 연산 수행 결과를 비교하여 NDK를 통한 성능향상에 대해 알아본다.

스마트 크로스 플랫폼을 위한 스마트 가상기계의 설계 및 구현 (Design and Implementation of the Smart Virtual Machine for Smart Cross Platform)

  • 한성민;손윤식;이양선
    • 한국멀티미디어학회논문지
    • /
    • 제16권2호
    • /
    • pp.190-197
    • /
    • 2013
  • 최근 국내외 플랫폼 업체와 이동통신사들이 서로 다른 스마트 플랫폼을 채택하여 사용함으로 인해 개발자는 하나의 스마트 콘텐츠를 서비스하기 위하여 각각의 스마트 플랫폼 특성에 맞추어 콘텐츠를 개발하거나 변환 작업을 해야 한다. 하지만, 기존의 스마트 콘텐츠를 다른 스마트 플랫폼으로 이식하기 위한 변환 작업에 많은 시간과 비용이 소모되고 있다. 이런 이유로 최근에 개발 언어의 제약 없이 한번 프로그램을 작성하면 어떤 플랫폼에서도 실행할 수 있는 OSMU(One Source Multi Use)의 핵심기술인 스마트 크로스 플랫폼(Smart Cross Platform) 또는 하이브리드 플랫폼(Hybrid Platform)에 관한 관심이 높아져 폰갭(PhoneGap), HTML5를 기반으로 한 센차터치(Sencha Touch)와 같은 시스템이 소개되고 있다. 본 논문에서는 플랫폼에 의존적인 기존의 Android나 iOS, Windows Phone과 달리 스마트 기기에 탑재되어 플랫폼에 독립적으로 응용 프로그램을 다운로드하여 실행할 수 있는 스마트 크로스 플랫폼 기반의 스마트 가상기계(Smart Virtual Machine)를 개발하였다. 스마트 가상기계는 Java 언어를 사용하는 썬 마이크로시스템스사의 JVM이나 C/C++/C# 언어를 사용하는 마이크로소프트사의 .NET 프레임워크와 같은 기존 기술들과 차별적으로 C/C++와 Java 언어를 모두 지원하여 콘텐츠 개발자들로 하여금 개발 언어 선택의 제한 없이 스마트 콘텐츠를 개발 할 수 있는 환경을 제공하여 준다.

Itanium상의 자바 적시 컴파일러를 위한 가벼운 루프 불변 코드 이동 (Lightweight Loop Invariant Code Motion for Java Just-In-Time Compiler on Itanium)

  • 유준민;최형규;문수묵
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제32권3호
    • /
    • pp.215-226
    • /
    • 2005
  • 루프 불변 코드 이동(loop invariant code motion, LICM) 컴파일러 최적화는 비교적 많은 분석 작업을 필요로 하기 때문에 컴파일 시간이 수행 시간의 일부가 되는 자바 적시(Just-In-Time) 컴파일러에는 사용하기 쉽지 않다. "전통적인" LICM 기법에서는 보통 코드를 분석하여 레지스터의 정의-사용체인과 사용-정의 체인을 미리 만든 뒤 이를 바탕으로 코드 이동을 수행하는 데, 본 논문은 자바 가상 머신(Java virtual machine)이 스택 머신 (stack machine)이라서 좀 더 단순한 코드 형태를 생성한다는 특징을 이용하여 정의-사용 체인을 루프 불변 코드에 대해서만 만들고 사용-정의 체인 없이도 정확히 동작하는 알고리즘을 제시한다. 또한 기존의 방식보다 더 많은 루프 불변 코드 이동을 하게 하는 두 가지 방법을 제시한다. 우선, 간단하기 때문에 루프에 경로가 하나인 경우만 LICM을 적용하는 기존의 기법과 달리, 경로가 여러 개인 루프에서도 부분적으로 중복되는 코드에 대해서도 LICM을 안전하게 적용한다. 또한 부분적으로 중복되는 루프 불변 널(null) 포인터 체크 코드도 Itanium의 조건 수행(predication)을 이용하여 이동시키다. 제안된 기법은 Itanium 마이크로프로세서를 위한 인텔의 ORP(Open Runtime Platform) 자바 가상 머신 위의 적시 컴파일러에 구현하였다. SPECjvm98 벤치마크에 대해 실험을 수행한 결과 전체 적시 컴파일 시간을 1.3% 정도만을 증가시켰지만 전체 수행 시간을 기하 평균으로 2.2% 향상 시켰다.

안드로이드 플랫폼을 위한 자바 보안 프로바이더 설계 및 구현 (Design and Implementation of Java Crypto Provider for Android Platform)

  • 손미경;강남희
    • 한국통신학회논문지
    • /
    • 제37C권9호
    • /
    • pp.851-858
    • /
    • 2012
  • 안드로이드 기반 스마트기기에서 보안 응용 서비스를 개발하기 위해 SUN JCA/JCE나 BC JCE와 같은 자바 기반 보안 라이브러리를 사용한다. 자바를 사용하여 제작된 응용은 자바 가상 머신(JVM: Java Virtual Machine)에서 기능이 수행되므로 시스템 하드웨어에 의존하는 기능을 사용하기 어렵고 실행 속도가 저하되는 문제가 있다. 보안 프리미티브(primitive)의 경우 계산양이 많고 연산 복잡도가 높아 JVM에서 수행되는 보안 프리미티브를 적용할 수 있는 응용은 제한적이다. 특히, 실시간 특성을 요하는 스트리밍 서비스나 계산양이 많은 공개키 기반 알고리즘을 빈번히 적용하는 보안 응용 서비스의 경우 성능의 문제로 자바 라이브러리 사용이 어렵다. 이를 해결하기 위해 본 논문에서는 JNI와 NDK 도구를 사용하여 C나 C++ 언어로 구현된 네이티브 기능을 사용하여 보안 기능을 수행할 수 있는 프로바이더를 설계하고 구현한다. 제안하는 자바 보안 프로바이더(DSCrypt)는 기존 자바 기반 보안 라이브러리와 동일한 방식으로 사용할 수 있지만 빠르게 보안 기능이 수행되는 장점을 제공한다.

Web-based Visualization of Forging Operation by Using Virtual Reality Technique

  • Lee, Young-Seok;Hwang, Ho-Jin;Oh, Jea-Woo;Park, Man-Jin;Lee, Tae-Hong;Jang, Dong-Young
    • 한국시뮬레이션학회:학술대회논문집
    • /
    • 한국시뮬레이션학회 2001년도 The Seoul International Simulation Conference
    • /
    • pp.274-279
    • /
    • 2001
  • This paper presented a virtual manufacturing simulation system by using Virtual Reality Modeling Language (VRML) and Finite Element Method(FEM). The system is to simulate forging operation. Stress distributions and deformation profiles as well as the operation of forging machine can be simulated and visualized in the web. Since the forging machine, user interface, and specimen were modeled by using Java and VRML, the forging machine and analysis results were browsed and integrated on the web that is interfaced to users through EAI to show the whole forging simulation. The developed system realized the working environment virtually so that education and experiment of forging process could be performed effectively even on the PC.

  • PDF

Big Data Management System for Biomedical Images to Improve Short-term and Long-term Storage

  • Qamar, Shamweel;Kim, Eun Sung;Park, Peom
    • 시스템엔지니어링학술지
    • /
    • 제15권2호
    • /
    • pp.66-71
    • /
    • 2019
  • In digital pathology, an electronic system in the biomedical domain storage of the files is a big constrain and because all the analysis and annotation takes place at every user-end manually, it becomes even harder to manage the data that is being shared inside an enterprise. Therefore, we need such a storage system which is not only big enough to store all the data but also manage it and making communication of that data much easier without losing its true from. A virtual server setup is one of those techniques which can solve this issue. We set a main server which is the main storage for all the virtual machines(that are being used at user-end) and that main server is controlled through a hypervisor so that if we want to make changes in storage overall or the main server in itself, it could be reached remotely from anywhere by just using the server's IP address. The server in our case includes XML-RPC based API which are transmitted between computers using HTTP protocol. JAVA API connects to HTTP/HTTPS protocol through JAVA Runtime Environment and exists on top of other SDK web services for the productivity boost of the running application. To manage the server easily, we use Tkinter library to develop the GUI and pmw magawidgets library which is also utilized through Tkinter. For managing, monitoring and performing operations on virtual machines, we use Python binding to XML-RPC based API. After all these settings, we approach to make the system user friendly by making GUI of the main server. Using that GUI, user can perform administrative functions like restart, suspend or resume a virtual machine. They can also logon to the slave host of the pool in case of emergency and if needed, they can also filter virtual machine by the host. Network monitoring can be performed on multiple virtual machines at same time in order to detect any loss of network connectivity.

자바 클래스 영역 크기 예측을 위한 탐침 클래스의 사용 (Use of Probe Class for Estimating Java Class Area Size)

  • 양희재
    • 대한전자공학회:학술대회논문집
    • /
    • 대한전자공학회 2003년도 컴퓨터소사이어티 추계학술대회논문집
    • /
    • pp.19-22
    • /
    • 2003
  • Class area is a portion of memory where the constants, fields, and codes of the classes loaded into the Java virtual machine are kept. Knowing the site of the class area is very important especially for embedded Java system with limited memory resources. This paper induces a formula which makes it possible estimate the size of the area. The formula needs some constant values specific to target JVM implementation. We also show that these values can be found using some simple probe classes. An experimental result is included in this paper to confirm the correctness of our approach.

  • PDF

JAVA기반 모바일 벡터 지도서비스 시스템의 설계 및 구현 (The Design and Implementation of JAVA-based Motile Vector Map Service System)

  • 김미란;윤종준;이현수;김은경;최진오
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 봄 학술발표논문집 Vol.29 No.1 (B)
    • /
    • pp.166-168
    • /
    • 2002
  • JAVA 2 ME 언어의 등장과 최근 무선 단말기에서의 KVM(Kilobytes Virtual Machine) 지원이 보편화되었지만, 휴대폰 단말기에서 벡터 지도서비스는 여러 가지 제약으로 인하여 그 동안 구현되지 못하였다. 본 논문에서는 휴대폰에서의 모바일 벡터 지도서비스를 위한 서버 모듈과 클라이언트 브라우저 모듈을 새로 설계하고 구현하여 제시한다. 본 제안 시스템은 클라이언트 모듈의 기능을 최소화하고 서버에서 지도 간소화 작업을 수행하여, 기존의 지도 데이터베이스로부터 직접 모바일 벡터 지도서비스가 가능하게 하였다.

  • PDF

프로그래밍언어 학습 동기유발을 위한 교육용 Java 로봇의 설계 및 구현 (The Design And Implementation of Educational Java Robot for Learning Motivation of Programmnig Language)

  • 백정현
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2011년도 제43차 동계학술발표논문집 19권1호
    • /
    • pp.191-194
    • /
    • 2011
  • 본 연구에서는 Atmel사의 AVR 마이크로프로세서에 적합하게 개발된 Java 바이트코드 인터프리터인 NanoVM을 자체 개발한 마이크로로봇에 이식하여 Java 언어 전용 로봇을 구현하였다. 따라서 마이크로프로세서의 구조와 회로를 모르는 학생들도 로봇을 프로그래밍하면서 Java 언어를 효율적으로 학습할 수 있다. 더욱이 최근 학생들의 프로그래밍언어 학습 능력이 떨어지면서 컴퓨터 관련학과의 프로그래밍언어 교육이 많은 어려움을 겪고 있다. 따라서 학생들의 프로그래밍언어 학습 동기를 부여하고 창의 공학적 프로그래밍언어 교육프로그램의 도입이 필요한 시점에서 본 연구에서 개발한 Java 로봇은 많은 기여를 할 것으로 기대된다.

  • PDF