untitled

Similar documents
<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

2009년 상반기 사업계획

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to TCP/IP Sockets: C Version

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

자바-11장N'1-502

슬라이드 1

<333820B1E8C8AFBFEB2D5A B8A620C0CCBFEBC7D120BDC7BFDC20C0A7C4A1C3DFC1A42E687770>

PowerPoint Presentation

Microsoft PowerPoint PythonGUI-socket

Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드]

[Brochure] KOR_TunA

JVM 메모리구조

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft Word - release note-VRRP_Korean.doc

gnu-lee-oop-kor-lec06-3-chap7

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B3D7C6AEBFF6C5A9C7C1B7CEB1D7B7A1B9D65F FBCD2C4CF5FC3A4C6C35FBFA1C4DA2E BC8A3C8A

Network Programming

MVVM 패턴의 이해

서현수

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

Windows 8에서 BioStar 1 설치하기

PowerPoint Presentation

인문사회과학기술융합학회

본 강의에 들어가기 전

°í¼®ÁÖ Ãâ·Â

1

슬라이드 제목 없음

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

일반적인 네트워크의 구성은 다음과 같다

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

본 강의에 들어가기 전

JAVA PROGRAMMING 실습 08.다형성

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint Presentation

<31325FB1E8B0E6BCBA2E687770>

PowerPoint 프레젠테이션

52 l /08

게시판 스팸 실시간 차단 시스템

Microsoft Word - How to make a ZigBee Network_kr

JDBC 소개및설치 Database Laboratory

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

Microsoft Word _ doc

Sena Device Server Serial/IP TM Version

제1장 Unix란 무엇인가?

슬라이드 1

Microsoft PowerPoint - 30.ppt [호환 모드]

제11장 프로세스와 쓰레드

04서종철fig.6(121~131)ok

Microsoft PowerPoint - 13 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 2.ppt

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

<3031B0ADB9CEB1B82E687770>

Cloud Friendly System Architecture

오버라이딩 (Overriding)

Chapter 4 UDP 소켓 사용법

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2003) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2003 Exchange Server 2003 GFI MailEssentials 2010 fo

Microsoft Word - Armjtag_문서1.doc

OSI 참조 모델과 TCP/IP


IPAK 윤리강령 나는 _ 한국IT전문가협회 회원으로서 긍지와 보람을 느끼며 정보시스템 활용하 자. 나는 _동료, 단체 및 국가 나아가 인류사회에 대하여 철저한 책임 의식을 가진 다. 나는 _ 활용자에 대하여 그 편익을 증진시키는데 최선을 다한다. 나는 _ 동료에 대해

歯홍원기.PDF

특허청구의 범위 청구항 1 삭제 청구항 2 단일 개의 운영체제를 갖는 클라이언트 단말에 있어서, 제1 운영체제와, 상기 제1 운영체제 하에서 사용되는 파일을 저장하는 메모리; 및 상기 메모리에 저장된 파일을 운영체제 제공장치로 전송하고 상기 메모리를 포맷하며, 상기 운

Microsoft PowerPoint - chap01-C언어개요.pptx

±èÇö¿í Ãâ·Â

PowerPoint Presentation

DE1-SoC Board

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

hd1300_k_v1r2_Final_.PDF

Microsoft Word - s.doc

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

PowerPoint Presentation

PowerPoint Template

<31362DB1E8C7FDBFF82DC0FABFB9BBEA20B5B6B8B3BFB5C8ADC0C720B1B8C0FC20B8B6C4C9C6C32E687770>

TCP.IP.ppt

Network seminar.key

<32382DC3BBB0A2C0E5BED6C0DA2E687770>

adfasdfasfdasfasfadf

10X56_NWG_KOR.indd

C++ Programming

bn2019_2

Microsoft PowerPoint - 12 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 1.ppt

1217 WebTrafMon II

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. vol. 29, no. 10, Oct ,,. 0.5 %.., cm mm FR4 (ε r =4.4)

PowerPoint 프레젠테이션

슬라이드 제목 없음

모바일 안드로이드 아키텍처

슬라이드 제목 없음

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Transcription:

555 실시간운영체제 irtos 에서의 CVM 네트워크설계및구현 Design and Implementation of Network in CVM on Real-Time Operation System, irtos 임재석, 이철훈 * 충남대학교컴퓨터공학과 Lim jae-seok, Lee cheol-hoon* Dept. of Computer Engineering, Chungnam National Univ. 요약 Abstract 임베디드시스템이발전함에따라다양한플랫폼을가진임베디드디바이스에서플랫폼독립성을위한자바기술이급속도로발전하고있다. SUN 사의 CDC (Connected Device Configuration) 에정의된 CVM (Classic Virtual Machine) 은이러한플랫폼독립적인자바환경을제공한다. 특히셋톱박스나스마트폰과같은임베디드시스템에서는네트워크기능을위해 CDC 의기본프로파일인 FP(Foundation Profile) 를사용한다. 본논문에서는실시간운영체제 irtos 에서네트워크기능을구현하기위한네트워크 API 인 FP 의네이티브메소드에대해설계및구현한내용을기술한다. According to the development of the embedded system, a java technology which has a various platform has developed rapidly on the embedded device. CVM(Classic Virtual Machine) which is defined in the CDC(Connected Device Configuration) of the SUN mircosystems provides a java environment that is independent of a platform. Specially, embedded devices like a set-top box or a smart phone can be implemented by using FP(Foundation Profile) in CDC for a network faculty. In this paper, we design and implement native methods of FP which are network's API for implementation of CVM network on Real-Time Operating System irtos. I. 서론 최근임베디드디바이스를살펴보면플랫폼독립성, 보안성, 네트워크이동성, 실행코드의재사용성, 작은실행파일크기, 동적적응성, 이식성, 개발의용이성등의장점을가진자바를지원하기위해 CVM의탑재가증가하는추세이다. 또한하드웨어성능향상으로데이터처리속도가증가하고인터넷장비와기술의발전으로인한전송속도의눈부신향상으로많은정보를네트워크를통해빠르게제공받게되었다. 다양한플랫폼을가진임베디드디바이스들은네트워크지원을위해 J2ME(Java 2 Micro Edition) 에서정의하는여러개의프로파일중 FP(Foundation Profile) 를사용한다. FP 는네트워크를위한표준 API를 java.net 패키지에정의하고있다. FP 설계및구현시 irtos 내에구현되어있는경량 TCP/IP 네트워크스택인 LWIP(A Light Weight TCP/IP stack) 를이용한다. 본논문에서는 irtos 상에서의 CVM네트워크를위해 FP의네이티브메소드를설계및구현하고자한다. 2장에서는관련연구로서 CVM의기반운영체제인실시간운영체제 irtos와 CDC, FP에대한개념을기술하고, 3 장에서는 CVM내의 FP를통한네이티브메소드의설계및구현을, 4장에서는테스트환경및결과를기술한다. 마지막으 로, 5 장에서는결론및향후연구과제에대해서기술한다. Ⅱ. 관련연구 1. 실시간운영체제 irtos irtos는선점형우선순위기반의실시간운영체제 (Real -time Operating System) 이다. 태스크는중요도에따라 0부터 255까지 256단계의우선순위가부여되며가장높은우선순위의태스크가 CPU를점유하여수행한다. 또태스크관리기능과가변 / 고정크기의메모리관리기법을제공하며, 그외에태스크간통신을위한메시지메일박스, 메시지큐, 메시지포트, 태스크포트, 시그널등과태스크동기화를위해세마포와이벤트플래그를제공하고있다. 그림 1. 은 irtos의기능을블록다이어그램으로나타낸것이다.[1]

556 2008 한국콘텐츠학회춘계종합학술대회 그림 1. irtos 의기능블록다이어그램 2. LWIP(A Light Weight TCP/IP stack) LWIP 는스위스의 SICS(Swedish Institude of Computer Science) 의 CNA(Computer and Network Architecture) 연구실에서개발한독립적으로구현된경량 TCP/IP 프로토콜스택으로 irtos에구현되어있다. LWIP는 TCP의모든기능을제공하면서 40Kbyte 정도크기의소스코드와수십 Kbyte 크기의데이터만을필요로하는임베디드시스템을위한네트워크스택이다.[2] 등에서사용되는 CDC를위한 API 세트의명세서가바로 FP 이다. 이는특정장치의완벽한실행환경제공과추가클래스라이브러리없이장치위에서동작가능한 API세트의제공을그목적으로하며하드웨어시스템마다각각의프로파일이존재한다. FP라는이름이의미하듯다른 CDC기반프로파일을구축하기위한토대가된다. 또한 CDC의인터페이스와클래스를모두제공할뿐아니라, 보안 (java.security.cert, java.security.acl, java.security.interface, java.security. spec), 유틸리티 (java.util, java.util.jar, java.util.zip), 로케일 (locale) 클래스를추가하여구성을확장한다. 특히 FP에는스트림기반소켓과 HTTP연결에필요한 java.net 클래스가포함된다. 하지만 AWT나 Swing을비롯한어떤 UI 클래스도제공하지않으므로사용자인터페이스가필요없는소형기기에적합한프로파일이다. Ⅲ. CVM의네트워크설계및구현 1. 설계및구현시고려사항 CVM의네트워크를지원하는 FP를구현하기위해서는 CVM에서정의하는 CDC가우선적으로구현되어있어야한다. CDC는 J2SE(Java 2 Standard Edition) 의코어라이브러리및클래스로딩기능을포함하며, 중소형디바이스에서사용되기위해 J2SE에필요한코어클래스라이브러리의인터페이스를디바이스에맞게수정하고, 불필요한라이브러리클래스는삭제되었다. CDC는클래스로더, 클래스런타임데이터영역, 실행엔진으로세분화된다. 이러한기능을수행하는 SubSystem이실시간운영체제 irtos와연결되어태스크및메모리관리를지원하는 CDC Core를구성하게되며이는이미설계및구현되어있음을명시한다. 그림 2. LWIP in irtos LWIP는크게네가지의구성요소로나눌수있다. 첫번째는 IP, ICMP, UDP, TCP, DHCP, ARP 등의프로토콜처리모듈이고, 두번째는메모리관리시스템, 세번째는하위네트워크인터페이스함수들이며, 마지막으로운영체제에뮬레이션계층이다. 그림 2. 는 irtos에서동작하는 LWIP의모습이다. 3. FP(Foundation Profile) 네트워크연결이필요한임베디드디바이스들과전자제품 그림 3. J2ME 의구조 2. FP 의네이티브메소드를이용한 TCP 소켓설계및구현 본논문에서는자바응용프로그램이 irtos 의 LWIP 를통

557 해 TCP 통신에필요한 FP의네이티브메소드를구현하였다. Java Class Method 는 TCP 소켓통신을위해소켓생성을위한 Java Native Method를호출한다. Native Method는실제구현된 Native Function과연결시켜주는인터페이스역할을한다. 이때 JNI(Java Native Interface) 를사용해서연결하며, 파일명뒤에 _md 가붙은 c언어로구현된파일에서해당함수를호출하게된다. 이는 Java_vm_include_jvm2cvm. h 에정의된 CVM함수로맵핑이되어해당 POSIX API함수를호출하게되고이와맵핑되는실제 irtos 내부의관련함수인 LWIP함수들을수행하게된다. [ 표 1] TCP 를위해구현된네이티브함수 함수 설명 initproto() filedid를캐시에저장 socketcreate() 소켓생성 socketconnect() 서버와의연결설정 socketbind() 소켓어드레스와포트바인딩 socketlisten() 소켓의연결요구를큐에저장 socketaccept() 소켓큐에서다음연결을꺼냄 socketavailable() 소켓의유효성검사 socketclose0() 소켓종료 socketshutdown() 소켓종료 socketsetoption() 인자로받은소켓옵션설정 socketgetoption() 해당소켓의옵션반환 socketsendurgentdata() 데이터전송 3. FP 의네이티브메소드를이용한 UDP 소켓설계및구현 UDP는프로토콜특성상신뢰성의보장없이데이터를보내기만하면되기때문에소켓은수신포트만알고있으면된다. UDP의소켓은 TCP의바이트 -스트림서비스와달리메시지경계를유지하기때문에한번의수신만을하며, 서버와통신하기전에 connect() 함수를호출할필요가없다. 위와같은차이를제외하면 UDP의네이티브메소드구현은 TCP의구현과유사하다. 그림 4. CVM 의 TCP 소켓동작메커니즘 그림 4. 는 CVM의 TCP 소켓을생성하기위한과정을나타낸것이다. 우선자바응용프로그램이수행되면 ServerSocket 클래스의 accept() 함수가호출되고, 소켓을생성하여해당소켓의 PlainSocketImpl 클래스로소켓구현객체를생성해 PlainSocketImpl 클래스내부의메소드인 accept() 를호출한다. 이때 JNI에의해소켓연결을위한네이티브메소드인 socketaccept() 함수가불려지는데, accept() 뿐만아니라기타다른네이티브메소드도 PlainSocketImpl_md.c 파일에구현해놓았다. 구현된네이티브메소드내부에서는플랫폼독립적인특성을위해사용되는자바가상머신을통해 POSIX API 함수를호출함으로써운영체제와응용프로그램의인터페이스역할을하게된다. 다음의표 1. 은 TCP 통신을위해구현된네이티브함수에대한설명이다. 함수명앞에공통적으로들어가게되는 'Java_java_net_PlainSocketImpl_' 은생략하였다. 그림 5. CVM 의 UDP 소켓동작메커니즘위의그림 5. 에서 UDP 소켓을통해데이터의송수신이이루어지는동작을나타내었다. UDP 서버는 irtos 상에서, UDP 클라이언트는리눅스상에서동작하도록설정한것이다. UDP 서버는포트번호와메시지를저장할버퍼의길이를가지고소켓을생성해데이터를받을준비를한다. 이때생성된소켓의 receive() 메소드는 Java Native Method 를호출한다. Native Method 는실제구현된네이티브함수를찾기위해 JNI(Java Native Interface) 를사용하며 TCP와유사한동작

558 2008 한국콘텐츠학회춘계종합학술대회 방식으로 LWIP의 sys_arch_mbox_fetch() 함수를통해데이터수신을기다리게된다. 한편, UDP 클라이언트는서버의 IP 와포트번호, 전송할데이터를인자로소켓을생성해 send() 메소드를호출한다. 호출된 send() 메소드는서버의 receive() 함수와같이네이티브함수를구현해 POSIX함수에접근, 메시지송신관련리눅스함수를호출해메시지를서버에전송한다. 앞서말한바와같이 UDP는메시지전송에대한역할만있을뿐, 신뢰성을기대하지않는프로토콜이므로메시지를전송한후에 close() 함수로소켓을종료하게된다. 위의 TCP 테스트와동일한조건으로 irtos 서버와리눅스클라이언트간의메시지송수신을 UDP를사용하여테스트한것이그림 7. 이다. 이는클라이언트로부터메시지를기다리는서버가수신된메시지를출력한후에소켓을종료하는모습으로올바른동작을통해원하는결과를얻을수있었다. Ⅳ. 테스트환경및결과 본논문에서는 ARM920T기반의 S3C2440 32-bit RISC Micro Processor를사용한 MBA2440보드상에 ADS v1.2 (ARM Developer Suite ver 1.2) 를개발도구로, OPENice- A1000을디버거로사용해실시간운영체제 irtos상에 CVM 네트워크를설계및구현하여테스트하였다. 테스트는 MBA2440보드를서버로, 리눅스를클라이언트로하여메시지전송을통해 TCP/UDP 통신이원활하게이루어짐을확인하는방법으로수행되었다. 그림 7. irtos 서버와리눅스클라이언트간의 UDP 송수신 Ⅴ. 결론및향후연구과제 그림 6. irtos 서버와리눅스클라이언트간의 TCP 송수신그림 6. 은 TCP를사용한 irtos 서버와리눅스클라이언트간의메시지송수신을테스트한것이다. 이는 MBA2440에서의 irtos 서버가소켓을생성하여클라이언트를기다리고, 리눅스클라이언트가메시지를송신하면해당메시지를받은서버가메시지를출력하는동작방식을가진다. 그림에서보는바와같이테스트결과 TCP 송수신에서문제가없음을알수있다. 본논문에서는제한된리소스를사용하는임베디드시스템에 CVM을통한네트워크통신이가능하도록 irtos의 TCP/IP 프로토콜스택인 LWIP와 CVM의네트워크 API 프로파일인 FP사이의상호연동을위한네이티브함수를설계및구현하였다. 향후연구과제로는 TCP/UDP 통신의유용성을높이기위해 telnet, FTP, SMTP 등의프로토콜을구현해야하며, 통신의보안기능을위한 JSSE(Java Secure Socket Extension) 및암호화를위한 JCE(Java Cryptography Extension) 를구현함으로써데이터의신뢰도를높여야할것이다. 여기에애플릿, 고급 GUI 기능을지원하는 PP(Personal Profile) 을구현함으로써실시간운영체제 UbiFOS 에서다양한자바기능을지원하도록한다.

559 참고문헌 [1] 최찬우, 이철훈, 실시간운영체제 UbiFOS 에서의 CVM 설계및구현, 한국콘텐츠학회, 2007 추계종합학술대회논문집제5 권제2호 ( 하 ), 2007.11, pp. 812-816 [2] 이정원, 전상호, 이숭열, 이철훈, 실시간운영체제를위한경량네트워크스택의설계및구현, 한국정보과학회, 2006 한국컴퓨터종합학술대회논문집 Vol. 33, No.1(A), pp 373-375 [3] Sun Microsystems, "CDC (Connected Device Configuration) Runtime guide". [4] Sun Microsystems, "CDC : JAVA Platform Technology For Connected Devices". [5] Sun Microsystems, "JSR-000046 Foundation Profile 1.0b Maintenance Release"