일본 경제산업성의 지역 신생 컨소시엄 연구소에서는 ECU를 통합할 목적으로 ‘보호 기능 OS’를 연구하고 있다. 최근 자동차 제어 시스템은 고기능/고성능화(고연비, 배기가스 저감, 안정성 및 편리성 향상)를 실현하기 위해 자동차 1대에 사용되는 ECU와 와이어 하니스(Wire Harness)의 수가 증가하고 소프트웨어가 대규모화 되고 있다. 이에 따라 차량 중량의 증가와 전장부품의 실장공간 부족 현상이 나타나고 있다. 이 문제를 해결하기 위한 하나의 대안으로 여러 ECU를 통합하기 위한 소프트웨어 플랫폼으로 ‘보호 기능 OS’를 설명하기로 한다.
‘보호 기능 OS’는 그림 1과 같이 여러 ECU 장치를 1개로 통합하여 와이어 하니스의 수를 줄일 수 있고 서로 다른 기능의 애플리케이션이 동일한 운영체제에서 동작하며, 만일 엔진 제어 애플리케이션이 동작 오류가 발생할 경우에는 운영체제뿐 아니라 다른 애플리케이션에 영향을 미치지 않도록 해준다.
‘보호 기능 OS’를 사용할 경우의 효과
1. ECU 수 감소, 와이어 하니스 중량 감소로 인한 차량 경량화, 연비 향상
2. 소프트웨어 개발 기간의 단축에 의해 차량 개발비의 삭감
3. 애플리케이션의 오작동으로부터 중요한 기능 및 데이터 보호
‘보호 기능 OS’는 구체적으로 메모리 보호와 시간보호로 분류할 수 있다.
메모리 보호 기능
메모리 보호 기능은 각 애플리케이션이 다른 애플리케이션의 메모리 영역을 파괴하는 것을 막기 위한 것이다(그림 2). 간단히 설명하면, 우리가 일반적으로 퍼스널 컴퓨터 상에서 게임을 하다가 MS Windows 운영체제의 동작이 멈춰 재부팅을 하는, 즉 블루스크린을 많이 경험해 보았을 것이다. 이것은 애플리케이션이 운영체제의 메모리를 파괴하여 생기는 현상이다. 그리고 워드 프로그램에서 문서를 작성하다가 워드 프로그램이 갑자기 종료되면서 다른 프로그램까지 종료되는 경우를 경험했을 것이다. 이것은 하나의 프로그램이 오작동 과정에서 다른 프로그램의 메모리를 파괴하여 다른 프로그램을 종료시킨 것이다. 이런 현상이 자동차에서 발생하게 되면 매우 위험한 상황이 초래될 수 있다.
2002년 일본 TRON협회는 ITRON에 메모리 보호 기능을 추가했으며, 그 소스와 문서를 공개했다. 현재 일본에서는 ‘IIMP Kernel(An Implementation of ITRON with Memory Protection)’의 메모리 보호 기능을 참고하여, 기존의 OSEK 사양서를 적용한 운영체제에서 이 기능을 추가하여 개발하고 있다.
‘보호 기능 OS’의 시간보호 기능
시간보호 기능은 동일 CPU에서 여러 애플리케이션의 실행 시간을 개별적으로 보증하는 것이다. 예를 들면, 그림 3은 고 우선도 Application A의 실행 시간 지연으로 Application B의 실행에 영향을 주어 Application B의 Deadline을 놓치는 원인이 되는 예이다. 다시 정리를 하면, 최근에는 자동차 전장부품 시스템의 고성능, 고기능화에 의해 복수의 기능을 통합한 복합 시스템의 개발이 증가하고 있다. 따라서 각각의 동작이 보증된 여러 개의 애플리케이션이 동시에 실행될 경우, 특정 애플리케이션의 실행 시간 지연이 시스템 전체로 확산되는 것을 막기 위한 시간보호 기능이 필요하다.
애플리케이션의 실행 시간은 충분히 그 실행을 완료할 수 있도록 설계되고 있으며, 복합 시스템에서는 각각의 애플리케이션에 대해서 정적으로 정해진 시간 내에 실행되도록 시간적 설계를 엄수하는 것이 가장 중요하다. 그림 5에서는 Application A가 기존 실행 완료 시간을 넘긴 시점에서는 그 실행을 Application B로 전환할 필요가 있다.
시간보호 기능은 복합 시스템의 개발 단계에 있어서도 유효한 기능이다. 그림 1과 같이 여러 벤더가 저속 CPU에서 개발하고 검증한 애플리케이션을 고속 CPU에서 동작하는 시간보호 기능으로 동일한 운영체제에서 통합하기 쉽게 복합 시스템으로 구축하는 것이 가능해진다. 이러한 시간보호 기능 사양은 HIS(Herstellerinitiative Software)에 의해 공개되고 있으며, 우리가 잘 알고 있는 OSEK/VDX 사양과 별개로 확장된 사양이다. 실제로 시간보호 기능을 구현하려면 운영체제의 스케줄러가 중요한 역할을 한다.
그림 4는 시간보호 기능을 위한 계층형 스케줄러 모델이다.
일본 나고야대학교에서 연구한 OSEK 기반의 계층형 스케줄러 구현 내용을 그림 5에 나타낸다. 그림 5에서 보듯이 애플리케이션 스케줄러와 태스크 스케줄러 간의 인터페이스(Scheduler Program Interface, SPI)로 표준화하여 서로의 독립성을 높이는 구조이다. 애플리케이션 스케줄러는 태스크 스케줄러 구조에 의존하지 않고 애플리케이션을 스케줄링 할 수 있다.
일본의 OSEK 오픈소스
2007년 11월 일본의 TOPPERS 프로젝트(http://www.toppers.jp)에서 OSEK 운영체제를 구현한 소스와 문서를 공개했다. 공개한 소스는 2006년에 개발을 완료한 자료이다. TOPPERS 프로젝트는 아래 설명할 ‘보호 기능 OS’를 적용한 자동차의 주행 테스트를 진행하고 있다(그림 6).
TOPPERS 프로젝트는 TRON 프로젝트의 연장선상에 있으며 일본 경제산업성과 도요타, 르네사스 등의 후원을 받아 차세대 자동차 소프트웨어 기술을 연구하고 있다. 그 성과물은 일반인에게 공개된다.
TRON 프로젝트
TRON 프로젝트는 새로운 개방형 컴퓨터 아키텍처 개발을 목표로 1984년에 시작됐다. TRON 프로젝트의 최종 목표는 모든 사물이 그 속에 컴퓨터를 내장하고 네트워크에 연결할 수 있는 유비쿼터스 컴퓨팅 환경을 실현하는 것이다. TRON은 임베디드 디바이스를 위한 ITRON, 멀티태스크 네트워크 프로세싱을 위한 CTRON, GUI를 이용한 멀티태스크 멀티유저 OS인 BTRON으로 구분된다. TRON의 보안 아키텍처인 eTRON은 1990년대에 도입됐다. TRON 아키텍처의 차세대 표준 하드웨어는 T-Engine이고, 표준 커널은 T-Kernel이다. 약 500여 회원사가 가입한 T-Engine 포럼에서는 개방형 개발 플랫폼으로서 T-Engine 아키텍처를 구축하고, T-Engine 및 유비쿼터스 ID 기술을 이용한 유비쿼터스 컴퓨팅 환경을 개발하고 있다. 이 포럼은 R&D를 포함한 다양한 사업들을 수행하고 있다.
TOPPERS 프로젝트의 성과 발표에 의하면, ‘TRON→OSEK→차세대 커널 ASP’ 순으로 차세대 자동차 소프트웨어 기술에 집중하여 연구개발을 진행하고 있다. 현재 TOPPERS 프로젝트(http://www.toppers.jp)의 홈페이지에 접속하면 OSEK 운영체제 소스와 문서뿐 아니라 CAN, LIN의 미들웨어 소스와 문서를 누구나 다운로드 받을 수 있다. 차세대 커널 ASP는 아래 설명하게 되는 ‘보호 기능 OS’의 기능을 포함하는 운영체제로서 2008년 5월말 정식 1.0 버전의 소스 및 문서가 일반에게 공개될 예정이다. 차세대 커널 ASP의 로드맵은 그림 7과 같다.
<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>