임베디드 운영 체제 (embedded OS)
- 상용 RTOS (VxWorks를 중심으로 설명)
윈드리버사의 RTOS이며 통합 개발 환경으로 토네이도를 제공한다. 선점형 티태스킹, 마이크로 커널 형태의 OS이며 매우 모듈화가 잘되어 있어서 개발자는 모듈을 선택하는 형태로 개발하고자 하는 시스템에 맞는 운영 체제를 구성할 수 있다. 세마포어, 공유 메모리 소켓 등 대부분의 RTOS가 지원해야 하는 기능들을 지원하고 있으며 매우 널리 쓰이고 있는 상용 RTOS이다.
- Windows CE
1996년도에 마이크로소프트(MS)에 의해 발표된 임베디드 OS이다. PC 환경의 각종 애플리케이션들과의 호환성이 매우 우수하며 개발 환경 또한 윈도우 애플리케이션 개발 환경과 유사하여 개발자 학습 측면에서 유리하다. 하지만 제한적인 하드웨어를 가진 임베디드 시스템에는 다소 무거운 OS이기 때문에 실행 속도 측면에서는 좋지 않은 평가를 받아왔다. 이후 계속해서 개선을 하여 현재는 Windows CE 8.0까지 출시되었으며 윈도우 폰 7의 커널에 사용될 버전에서는 윈도우 임베디드 콤팩트(Windows Embedded Compact)로 변경되었다.
- 임베디드 리눅스(embedded Linux)
PC나 서버급에 주로 사용되었던 리눅스는 임베디드 시스템에서도 널리 사용되고 있다. VxWorks 같은 상용 OS와 비교했을 때에 실시간성 측면에서 다소 부족하고 Windows CE와 비교하였을 때에 개발 환경이 다소 불편하지만 오픈소스이므로 라이선스 비용이 절감됨에 따라 다양한 임베디드 시스템에 적용되고 있는 실정이다. 또 리눅스는 소스 공개에 따라 안정성, 신뢰성 등이 매우 빠른 속도로 개선되고 있으며 레드햇, 몬타비스타, 리니오등이 다양한 임베디드 리눅스 기술을 개발하고 있다. 이와 더불어 기존 라운드로빈 방식의 스케줄링에 따른 실시간성에 대한 약점을 개선한 리얼타임 Linux 또한 개발되어 시장 확대를 도모 중이다.
개발하고자 하는 임베디드 시스템의 특성을 고려하여 하드웨어 요구 사항을 검토한다.
- 임베디드 시스템의 기능을 구현하기 위한 컴퓨터 하드웨어에 관련한 요구 사항을 검토한다.
- 검토 대상 하드웨어 요구 사항의 예시는 아래와 같이 프로세서 성능, 메모리 용량, OS 지원, 입출력 장치, 통신/네트워크 장치 등이 될 수 있다.
개발하고자 하는 임베디드 시스템의 특성을 고려하여 하드웨어 자원 활용도를 검토한다.
- 선정된 하드웨어 중 자원 활용도가 고려되어야 할 항목을 선별하고 자원 활용도를 검토한다. 예를 들면 프로세서의 Capacity 중 최대로 사용가능한 양, 메모리 Capacity, 입출력 장치의 Capacity, 통신/네트워크 장치 용량 등이 될 수 있다.
- 각 자원의 Capacity에 대해 퍼센트로 표시하며, 자원 활용도가 측정되는 조건을 포함한다.
<표 1-4>는 해당 임베디드 시스템 도메인 특성을 고려하여 프로세서, 메모리, 네트워크 장치에 대한 활용도를 검토한 경우이다.