webzine배너 잡지배너 정기구독배너
   
MFG블로그 광고문의
기사제보 미디어킷
개인정보
취급방침
문의사항
회원탈퇴 정기구독신청
서울시 영등포구 경인로 775
에이스하이테크시티 3동 206호 ㈜MFG Inc.
Tel (02)3439-0011 Fax (02)3273-0989

Copyright (c) Since 1974~2016
MFG Inc.
All right reserved.

FA의 새로운 패러다임
 
-RTLinux-
 
월간 기계기술기자 | 2002.05.01 | 2002년 5월호
 
| 전체보기 | 인쇄 | 스크랩
 
1. RTLinux 개발배경
 
  리눅스는 MS Windows처럼 인텔 x86 CPU를 기반으로 하는 PC에서 사용할 수 있는 운영체제이다.
1. RTLinux 개발배경
리눅스는 MS Windows처럼 인텔 x86 CPU를 기반으로 하는 PC에서 사용할 수 있는 운영체제이다.
  처음 리눅스는 인텔 80386에서만 사용할 수 있도록 만들어졌지만, 이후에 Alpha나 Power PC, MIPS 같은 여러 일반 목적 프로세서와 ARM, SH 같은 특수 목적 프로세서를 사용하는 다른 플랫폼에서도 사용할수 있도록 포팅이 되었다. 또한 리눅스의 영역도 PC 기반의 서버나 데스크탑 외에도 임베디드 시스템으로 확장되어가고 있으며, 실제로 리눅스를 탑재한 PDA나 셋탑박스가 등장하고 있다. 1999년 중순에 열린 리눅스 엑스포에서 리누스 토발즈는 리눅스가 나아갈 방향으로 데스크탑과 함께 임베디드 시스템 분야를 강조하기도 하였다.
  실제로 리눅스를 임베디드 시스템으로 포팅하려는 많은 프로젝트들이 진행되고 있으며, 단순히 임베디드 시스템이 아니라 리얼타임 시스템으로까지 리눅스의 영역이 확대되고 있다.
  임베디드 시스템과 실시간 시스템은 환경과 목적에서 다르다고 볼 수있다. 임베디드 시스템은 PC 환경이 아닌, 별도로 설계된 환경에서, 정해진 칩들을 이용 하여 그 자체에서 동작하는 운영체제라고 할 수있다.
  PDA나 핸드폰같은 장치들이 대표적인 예로 이들에게는 Real Time 기능이 그다지 중요하지 않다. 하지만 네트웍 장치나 공장 제어 시스템 같은 곳에서는 Real Time 기능이 중요해진다.
  실시간 시스템이란 어떤 이벤트가 발생했을 때 이것이 어떤 정해진 시간 이내에 처리되는 것을 보장하는 시스템이다. 즉 이벤트에 대한 반응성이 빠르고, 중요한 이벤트가 덜 중요한 이벤트보다 먼저 수행되며, 이벤트를 놓치는 일이 결코 일어나서는 안되는 시스템을 말한다 (이것을 완전하게 보장하는 시스템을 보통 하드리얼타임이라고 하고, 이벤트를 가끔 놓쳐도 크게 문제되지 않는 시스템을 소프트 리얼타임이라고 한다). 그러기 위해서 중요한 요소는 인터럽트가 발생하 였을 때 빠른 시간에 인터럽트 핸들러를 불러주는 것과 (인터럽트 발생에서 인터럽트 핸들러가 불리기까지의 시간을 인터럽트 지연이라고 하는데 이 시간이 짧아야 한다), 중요한 일이 있으면 다른 일을 제치고 이를 처리하도록 하는 것이다.
  그래서 보통 실시간 시스템은 선점형 스케쥴링 방식을 사용한다. 이는 항상 시스템에서 실행할 수 있는 프로세스 중에서 가장 순위가 높은 프로세스가 현재 프로세스가 되는 것을 보장한다.
  현재 프로세스보다 높은 순위를 갖는 프로세스가 나타나면, 현재 하는 작업을 멈추고 이를 수행하며, 절대로 더낮은 순위를 갖는 프로세스에 선점되지 않는다.
  하지만 리눅스는 일반적인 목적으로 설계된 운영체제 이기 때문에 실시간 운영체제가 아니며 실시간운영체 제에 적용하기에는 많은 문제점들이 있다.
  이러한 리눅스가 가지고 있는 문제를 극복하고 리눅 스에 Hard Real Time 기능을 부여하기 위한 프로젝 트를 수행하여 RTLinux라는 새로운 커널구조의 리눅 스를 만들게되었다.
2. RTLinux 커널구조
RTLinux는 기존의 리눅스 커널의 변경을 최소화하여 Hard RTOS를 구현하였다.리눅스가 Real Time 기능을 갖추려면 실제로 커널부터 다시 설계되어야 하겠지만, 이는 커널을 구성하는데 많은 시간을 필요로 하며, 리눅스 커널이 업그레이드 될 때마다 이를 신속히 반영하기 어렵고, 버그가 생길 가능성이 더 커지게 된다. 즉 리눅스의 커널 밑에 새로운 RTLinux 커널을 삽입함으로 해서 리눅스의 환경을 적게 변화시키면서 RTOS 기능을 처리할 수 있는 구조를 만들었다. 리얼 타임 기능은 RTLinux커널에서 담당하고 리얼타임이 필요없는 부분을 리눅스의 유저 프로세스에서 동작을 하도록 설계되었다.
  커널이 두개 존재하지만 RTLinux가 동작이 되면 서는 리눅스 커널은 가장 낮은 순위 타스크로 인식이 된다.
  RTLinux의 최대장점은 RTLinux 커널이 삽입되 면서 RTOS 기능을 충분히 수행할 뿐 만아니라 리눅스의 모든 오픈소스를 임베디드화 시켜서 개발할수 있다. RTLinux의 대표적인 특징을 살펴보면 다음과 같다.
.
.
3. 스케줄링
RT Linux는 선점형 스케줄러와 EDF(Earliest Deadline First) 방식의 스케줄러를 제공한다.
  RTLinux의 기본은 선전형 스케줄링방식으로 설정되 어서 우선순위가 가장 높은 타스크가 동작하도록 되어 있으며, 우선순위가 아닌 데드라인을 기준으로 하는 스케줄링 방식인 EDF를 사용할 수 도있다. 그리고 RTLinux 커널에 별도의 스케줄러를 만들어 모듈로 삽입하여 사용할 수 도있다.
4. Interrupt 처리
RT Linux에서 인터럽트는 기존 리눅스 커널의 관리하에 있는 소프트 인터럽트와, RT Linux 커널의 관리하에 있는 하드 인터럽트 두가지로 나뉜다. 소프트 인터럽트는 일반적인 리눅스 인터럽트와 동일하며, 실시간 기능은 제공하지 않고, RT-FIFO를 사용하여서 RT 커널과 통신하여야 한다. 하드 인터럽트는 실시간 기능을 제공하며 RT 커널이 하드웨어를 직접적으로 처리할 수 있는 기능을 제공한다.
5. Inter-Process Communica tion(IPC)
RT Linux를 이용하여 프로그램을 설계할 때 프로 그램을 RT task와 리눅스 유저 프로세스로 나누어서 하도록 한다. 실제 RT 기능이 필요한 부분은 RT task에서 구현하고, 그렇지 않은 부분은 기존의 리눅스 유저프로세스로 만드는 것이다. RT Ta sk와 리눅스 유저 프로세스 사이에 통신을 하기 위해서 RT FIFO를 사용 한다. RT FIFO의 버퍼는 커널 주소 공간에 위치하며, RT와 유저측의 표준인터페이스에서 읽고 쓰기 위한 lock-free기능를 제공한다. RT task가 여기에 접근할 때블럭킹을 하지 않고, RT FIFO 크기가 고정되어 있기 때문에 버퍼가 오버플로우 또는 언더플로우 현상이 발생할 수 있다. 메모리 공유 방식도 IPC에서 사용할 수있는데 mbuff 모듈이 항상 사용 되어야 하며 실제 메모리에 크기에 따라 영향을 받는다.
6. RTLinux 어플리케이션 디자인
RTLinux의 어플리케이션을 설계할 경우 리얼타임 파트와 리얼타임 파트가 아닌 부분을 고려해서 설계해야 한다. 유저 Task (타스크)는 RT FIFO를 통해서 RT Task와 통신할 수 있도록 설계를 해야 한다.
.
.
7. 장점과 단점
RT Linux의 구조는 무척 단순하기 때문에 기존 리눅스 프로그래머들이 쉽게 접근할 수 있다는 장점이 있다. 리얼타임기능이 필요한 부분만 RT task로 구현하고 나머지는 이미 어느정도 검증되어 있는 안정된 리눅스 상에서 동작하므로 안정적이고, 디버깅이 용이하다는 장점이 있다. RT Linux는 기존의 리눅스가 가진 기능들을 실시간으로 바꾼 것은 아니다. 단지 RT task 기능을 추가하였기 때문에, 대부분의 서비스는 기존 리눅스에서 그대로 담당하게 된다. 리눅스 코드의 대부분을 차지하는 디바이스 드라이버도 그대로 사용되고 있으며, 이들에게 real time 기능이 필요한 경우 이들 디바이스 드라이버들의 일부분을 변경하여서 설계 하여서 사용하여야 한다. 하지만 두개의 커널이 존재함으로 인해 여전히 사이즈가 크다는 단점이 있다.
  이러한 RTLinux Project는 성공적으로 수행하여 현재 미국의 FSMLabs사에서 특허를 받아 본격적으로 마케팅을 시작하여 자동화, 통신 IA(정보가전기)등 현재 적용되어 많은 호응과 신뢰를 받고 있다.
  지금부터는, RTLINUX는 자동화분야에서의 얼마만 큼의 효용성이 있는지 살펴보도록 하자.
8. RTLinux의 장점
현재의 생산 방법과 글로벌 시장은 공장화 기업의 기능들을 운영하는데 매우 중요하다. 공급자들은 그들이 구성하고 있는 요소들의 상태를 감시 할 수있어야 한다. 기계숙련공들은 그들의 주위에 운영되고 있는 기계들의 상황 및 생산의 흐름을 항시 감시할 수 있어야 하며, 회사의 경영전문가들은 가격의 폭락을 주시 하여만 하고, 기술자들은 어떠한 문제 발생시 빠른 시간 안에 문제점들을 해결할 수 있어야 한다. 그리고 가장 중요한건 이 모든 상황들이 동시에 이루어져야 하는데 현재의 공장자동화 시스템은 이러한 많은 부분의 요구를 충족시키지 못하고 있다.
  하지만 RTLinux는 공장자동화의 기본적인 바탕을 제공하며, 그 바탕에는 커뮤니티 하드웨어 와 소프트웨어 그리고 잘 알려진 네트워킹 과 보안 소프트웨어 및정확하고 효율적인 컨트롤 소프트 웨어들로 공장자동 화의 시스템을 보다 빠르고 강하며 저렴한 가격으로 운영 할 수있게 한다. 무엇보다, RTLinux는 공장자동화 시장에서 표준개방시스템 과 OS 제어시스템이 결합 되어 로우레벨 제어와 엔어프라이즈 제어의 간격을 줄일 수있어서 급변하는 공장화 환경에서 요구하는 욕구를 충족시킬 수 있는 대안으로 제시 할 수있다.
 
 구체적인 RTLinux장점은 다음과 같다.
 
 ●정확하고 빠른 운영지원 : 제어의 범위를 마이크 로초까지 운영지원가능.
 ●네트워킹 : 표준인터넷 및 인트라넷 프로토콜과 하드웨어를 통합가능
 ●하드웨어 독립성: 다양한 프로세서 환경에서 운영이 가능하고 일반 PC부터 임베디드, 대형 서버 클러스터까지 운영이 가능
 ●일반 사항 : 기업에 가장 적합한 소프트웨어 및 벤더의 선택.그 외의 RTLinux 운영가능 분야: -오라클 및 DB2 databases -Matalab, Maple, 및 Mathematica와 같은 symbolic, numeric analysis 소프트웨어 -에뮬레이터와 같이 운영되는 DOS, Windows, Macintosh Software -기업 네트워크 툴들, 개발 환경들, 그리고 웹 서버들- 최첨단 보안 소프트웨어
 ● 확장성 : 컨트롤 알고리즘은 업그레이드 및 감시할 수있고, 네트워크를 통해 조정 가능함.
 ● 표준 프로그래밍 : RTLinux 는 국제기준인 POSIX 1003.13 을 사용하므로, 세계적으로 이용하는 소프트웨어 개발 사항에 적합함.
 ● 오픈소스 : 고객들은 내부 및 외부의 엔지니어 지원을 손쉽게 찾을 수 있으며, 세계 각 분야의 소프트웨어 개발자들에게 잘 알려져 있다.
 ● 개발환경 : 리눅스는 기술자들이 선호하는 소프트 웨어 개발 플랫폼으로서 일반적으로 사용하는 툴들인 C, Perl, Java, Tk, Tcl, 및 다른 프로그래밍 언어와 디버거들을 선호하고 있다. 또한 RTLinux는 유닉스와 리눅스의 기반인 제품으로 리얼타임환경에 적합하다. 마지막으로, 리눅스는 일반 네트워크 인터넷의 OS로서 다른 OS보다더 많은 웹 서버에서 운영지원하며 네트워크 라우터부터 교환기 그리고 첨단 네트워크 보안까지 지원한다. 또한, RTLinux는 기업에서 일반적으로 사용하는 리눅스 기반의 어플리케이션들을 지원하기 때문에, 기업고객들은 거기에 따르는 고가의 유지비용 외의 별도의 툴들 및 개발 비용을 절감 할 수있으며, RTLinux에서 사용되는 툴들은 일반 RTOS의 툴들보다 더 많은 테스트와 인증된 제품으로 볼 수있다.
 ● 신뢰성 여부 : RTLinux가 운영하는 일본의 위성 통신시스템을 9개월째 단 한번의 장애 없이 운영 되어왔지만, Window NT의 경우는 매주 장애가 발생하고 있다. 또한 RTLinux가 운영하는 독일의 모터제어시스템도 전원공급장치 화재로 인한 한번의 장애 발생을 제외하고는 3년간 장애 없이 운영되었다 결론적으로, RTLinux가 공장화 시장분야에서 긍정 적인 반응을 보이는 이유는 공장 자동화 시스템의 중대한 운영관리가 가능하고, 안전하고 신뢰성이 있는 운영을 하기 때문이다. 만약 고객들이 소스가 공개되지 않은 시스템을 운영 중 어떠한 문제를 발견했을 때시스템은 오로지 벤더에게 의존하여야 하며, 시스템 업그레이드시, 현재 운영되고 있는 하드웨어가 업그레 이드 하려는 소프트웨어를 지원하여만 가능하다. 그러 나, 오픈소스 시스템을 가지고 있는 고객들은 자체에서 또는 외부기술자들에게 손쉬운 유지, 적용, 그리고 개선을 할 수있는 장점이 있다.
  이제부터는 RTLinux의 실제사용자인 산업기술자들 에게 관심이 많은 복잡한 산업 분야에서 자동화 적용 가능 사례를 살펴보도록 하자.
 ● RTLinux는 모든 small PC 104 또는 i486의 floppy 그리고 4MB 메모리에서부터 병렬의 멀티 노드 시스템까지 모두 지원하는 방면에 아주 드문 RTOS들만이 이런 광범이한 보드범위인 하드웨어 구성들을 지원한다.
 ● RTLinux를 도입한 기계제어는 최첨단의 안정성을 적용하여 감시, 컨트롤, 그리고 프로그램까지 무선 컨트롤 센터에서 운영 가능하다. 추가로, RTLinux는 웹호스팅 기능까지 최신 보안 웹서 버를 통하여 운영이 되며, 모든 웹 브라우져를 통하여 기계제어를 모니터 할 수있다. 가장 중요한 건, 모든 네트워킹 프로토콜을 적용하여 네트워크 시그널과 컨트롤 정보를 전송할 수 있는 점이다.
 ● 위에서 말한 거와 같이, 상용보드에서 운영되는 공장자동화 시장에는 전부터 정해진 DSP, PLC, 그리고 SCADA에 의존해 왔다. 이로 인하여, 대부분의 디바이스들은 기계에 의존된 상태 감시하며 대부분 네트워크로 연결이 되어있지 않다. 그러므로, 수많은 제어 시스템을 장비에 실행할 시, 프로그래머가 장비 곁에서 감시하여야 한다
 ● RTLinux는 하드 리얼타임이 예측 가능한 훌륭한 운영체제이다. 인터럽트 지연 시간 또한 하드 웨어 제한과 매우 가까운 반면에, 다른 RTOS는 그들의 특징들을 이용하여 RTOS의 커널 을 늘리 려는 의도가 있으며, 공장 자동화에서 쓰이는 경우는 아주 드물다.
 ● RTLinux는 모든 소스코드와 포함이 되어있다는 것은, 상업 기술자들에게는 최대한의 융통성을 제공해주며 개인프로젝트에도 적용이 가능하게 한다. 그러므로, 제3의 벤더들에게 불필요한 기능들을 의존할 필요가 없으며, 소프트웨어들을 직접 유지 및 개발을 할 수있다.
 ● RTLinux는 상용 하드웨어에서 운영됨으로, 기술 자들은 어떠한 마더보드, I/O, 비디오,이더넷 카드등을 직접 선택할 수 있다. 예를들어, 산업 기술 자들은 어느 특이의 프로잭트에서 필요한 Ampro의 PC104 motherboard, 3com사의 Ethernet PCMCIA card, National Instruments의 I/O PCMCIA를 디자인 사항에 맞게 자유로운 선택을 할 수있다. 만약 컨트롤러 알고리즘의 수요가 많아지면, 컨트롤 기술자들은 즉시 더욱 빠르고 요구 사항에 맞는 PC104 마더보드를 택해야 할수 도 있다. 예전의 마더보드에서 사용된 소스코드는 새 마더보드에 손쉽게 컴파일할 수 있고그 결과로, 별도의 기술개발 및 컴파일 비용을 막아준다.
 ● RTLinux를 분류 할 수있으며, MidART (Shen and Mizunuma, 2000)와 같은 기능이 추가된 리얼타임 네트워킹 미들웨어 또는 SAP 같은 하이레벨 공장관리 소프트웨어와 통합 할수 있다.
 예) 컴퓨터 하드웨어의 결함으로 발생하는 다운타 임을 감소하기 위해 이중화시스템을 중요한 장비의 제어부에 삽입할 수도 있다. 하드 리얼 타임 성능의 RTLinux는 리얼타임 네트워킹 성능의 MidART 를 3개의 네트워크 PC104위에 결합시킬수 있다. 그 3개의 동등한 알고리 즘의 운영으로, 입력과 출력들을 동등하게 받고 제공할수 있다.
 ● RTLinux 는 POSIX 1003.13 PSE51이며, “최소의 실시간 시스템” 환경을 지원한다. 이러한 환경은 멀티스레드 싱글 포직스와 많이 근접하다고 볼수있다.
 ● RTLinux는 많은 분야에서 운영되고 있으며, DSP의 시장 및 상업용 RTOS 시장을 포함한 더넓게는 기업용 컴퓨터와 DSP를 결합하여 더 많은 시장에서 운영 할 수있다.
 예) mechatronic workstation - into one computer 이러한 결합으로, 많은 분야의 편의성과 신뢰성을 높이고 있다.
  현재까지 많은 네트워크장비들이 DOS기반에 의존하고 있으며, 주변장치들로 네트워킹과 감시의 업무들을 운영하고 있으나, 한정된 네트워크 성능과 데이터들의 제공으로 문제가 되고 있다.
 ● 새버전인 RTLinux는 예전 버전의 호환성을 중요시 하고, 일반 상용 OS 와 RTOS들과는 다른 RTLinux의 예전 APIs 부터 RTLinux의 이동성및 IEEE POSIX 표준의 넓은 수용성이 RTLinux의 미래를 밝혀주고 있다.
8. 맺음말
RTLinux가 가지고 있는 공장자동화 및 컨트롤시스템 시장에서의 장점은 작고 빠르며 신뢰할 수 있는 하드리얼타임 컨트롤 시스템 및 강한 소프트 리얼타임과 많은 어플리케이션 개발환경에서 운영되는 OS를 제공 하는 점이다.
  소프트 리얼타임 OS에서 운영되는 어플리케이션들은 상용 및 오픈소스 라이브러리를 제공하며 고객과 서버의 데이터베이스, 네트워킹, 그래픽, 소프트웨어 개발, 수많은 분석 패키지 그리고 구체화된 분석 패키 지를 제공한다.
  여기서 중요한점은, RTLinux는 일반 RTOS의 문제 점들인, 높은 유지관리비용, 비표준화된 툴들사용 및복잡한 시스템 디자인을 벗어나 일반 OS 를 겨냥한 어플리케이션 환경 및 많은 테스트와 인증을 받은 소프 트웨어를 지원한다.
  그리고 RTLinux는 기업고객들에게 RTLinux에 관련된 모든 소스코드를 제공하기 때문에 자체적으로 고객들의 유지 및 개발이 가능하며 이러한 이유로, 공장 자동화 프로젝트분야의 최적화된 제품으로 각광을 받을 것으로 내다보고 있다.
 
 오 선 주
 - 터보리눅스시스템(주) 전략기획이사
 - 서울대 계산통계학과 졸업 / 동 대학원 졸업
 - 정보처리 기술사 자격 취득 (1996)
 - 쌍용정보통신 / 기아정보시스템 / 삼성SDS 근무

 
TAG :  패러다임  FA  RTLinux
 
 
QUESTION (0)         목록보기 | 맨위로
 
Question 본 기사 내용에 대한 궁금한 사항을 적어주시면 확인 후 답변 드리도록 하겠습니다
  회원 마이페이지 또는 이메일로 답변을 확인 하실 수 있습니다.