Implementation and Performance Evaluation of Real-Time Java Thread for Embedded Systems

내장형 시스템을 위한 실시간 자바 쓰레드의 구현 및 성능 평가

  • 강희구 ((주)바로비젼 서울대학교 컴퓨터공학과) ;
  • 성민영 ((주)바로비젼 서울대학교 컴퓨터공학과) ;
  • 김태현 ((주)바로비젼 서울대학교 컴퓨터공학과) ;
  • 이동렬 ((주)바로비젼 서울대학교 컴퓨터공학과) ;
  • 김소영 ((주)바로비젼 서울대학교 컴퓨터공학과) ;
  • 김광영 ((주)바로비젼 서울대학교 컴퓨터공학과) ;
  • 김형수 ((주)바로비젼 서울대학교 컴퓨터공학과) ;
  • 장래혁 ((주)바로비젼 서울대학교 컴퓨터공학과) ;
  • 신현식 ((주)바로비젼 서울대학교 컴퓨터공학과)
  • Published : 2000.04.01

Abstract

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

Keywords