62. 임베디드 시스템

임베디드 시스템이란 특정한 기능을 실현할 수 있도록 전기 제품이나 기계 제품에 탑재되는 컴퓨터 시스템입니다. 임베디드 시스템 개발은 설계 초기 단계에서 하드웨어와 소프트웨어를 담당하는 영역을 결정할 필요가 있습니다. 따라서 회로 설계 담당자도 소프트웨어 개발에 무관심해서는 안 됩니다. 예를 들어 마이크로컴퓨터를 사용하는 경우 회로 설계자가 각 핀의 신호에 설정한 전기적 특성과 그 신호를 내부에서 받아 제어하는 소프트웨어 설계는 완전히 링크됩니다. 마이크로컴퓨터와 같은 다기능 디바이스가 집적도의 향상과 연동되어 급속하게 진화하는 가운데, 임베디드 시스템 개발에는 고도의 노하우가 필요하게 되었습니다. 따라서 하드웨어와 소프트웨어 모두를 통찰할 수 있는 능력이 점점 요구되고 있습니다.

하드웨어와 소프트웨어

일반적으로 하드웨어란 LSI나 수동 부품, 프린트 기판과 같이 물리적으로 존재하는 요소입니다. 반면에 소프트웨어는 컴퓨터를 동작시키는 순서나 명령 등을 기술한 텍스트 문서입니다. 임베디드 시스템에서는 마이크로컴퓨터나 DSP 등에 설치하여 사용하고 물리적인 존재는 동반하지 않습니다.

OS(운영 체제)와 응용 프로그램

소프트웨어는 OS와 응용 프로그램으로 크게 나눌 수 있습니다.

  특징

OS(운영체제)

OS는 ‘기본 소프트웨어’라고도 하고 하드웨어와 응용 프로그램을 중개하고 주로 다음과 같은 역할을 수행합니다.
①하드웨어 사양의 차이를 흡수
②연산 기능 및 메모리 등의 리소스(자원) 관리
③시스템 이용 효율의 최적화
④입출력 기능과 네트워크 기능의 관리

App(응용 프로그램)

응용 프로그램은 ‘응용 소프트’라고도 하고 어떤 특정한 기능을 수행하는 소프트웨어입니다. 대부분은 OS에서 동작합니다. 대표적인 예로는 OA(엔터프라이즈) 분야의 문서 작성, 표 계산 소프트를 들 수 있습니다. 임베디드 분야에서는 휴대 전화의 메일 소프트, 자동차 네비게이션의 지도 표시 소프트, 박형 텔레비전의 편성표 표시 소프트 등이 있습니다.

※미들웨어란 응용 프로그램과 OS 사이를 연결하는 것으로 많은 응용 프로그램의 공통된 기능을 채용하여
소프트웨어 모듈로 정리한 것입니다.
※ 펌웨어란 하드웨어 제어를 위한 소프트웨어입니다. 일반적으로 ROM 등에 기록한 상태에서 전자 기기에 탑재됩니다.

임베디드 소프트웨어와 OA(엔터프라이즈)용 소프트웨어

소프트웨어는 주로 용도에 따라 임베디드 소프트웨어와 OA용 소프트웨어로 크게 나눌 수 있습니다.

  특징 주요 OS와 개발 환경 주요 언어

OA용
소프트웨어

컴퓨터나 그 주변 기기 등 컴퓨터를 중심으로 한 OA기기 시스템에 사용되는 소프트웨어입니다. 최종 사용자가 스스로 설치하거나 작성할 수 있습니다.

Windows시리즈,
Mac OS, JAVA, UNIX 등

C、JAVA、Visual Basic

임베디드
소프트웨어

가전, 자동차 등에서 특정한 기능을 수행하는 소프트웨어입니다. OA용과 비교하면 실시간 제어가 중요하므로 실시간 시스템이 활용됩니다.
최근에는 하드웨어의 고성능화와 함께 기존에는 OA용이었던 소프트웨어가 휴대 전화나 태블릿 PC 등에 임베디드 소프트웨어로 사용되고 있습니다.

ITRON, VxWorks, LynxOS, QNX, Enea OSE
Android, Windows Mobile, Symbian OS, iOS 등

C assembly language,
JAVA

관련 용어 해설

– 실시간 시스템(Real-time System)이란
‘실시간 처리’라고도 하고 사용할 수 있는 리소스가 한정된 상태에서 명령이 내려졌을 때 정해진 시간(데드라인)까지 처리를 완료하는 것에 주목한 시스템입니다.

– Gcc란
GNU 프로젝트에 의해 만들어진 컴파일러로써 대부분의 UNIX계 OS에 이식되어 다양한 CPU에 대응됩니다.
예전에는 C언어만 지원하였기 때문에 GNU C Compiler라고 했었지만
C++이나 FORTRAN과 같은 다양한 언어를 지원하게 되어 GNU Compiler Collection으로 명칭이 변경되었습니다.