Embedded System
- 임베디드 시스템/임베디드 기초 이론
- 2023. 10. 5. 19:23
임베디드 시스템은 내장형 시스템이라고도 하며, 어떤 특정한 목적을 위해 제작된 하드웨어와 소프트웨어가 결합된 시스템을 말합니다. 대표적인 임베디드 시스템으로 우리가 흔히 볼 수 있는 전기밥솥, MP3 Player, Digital Camera 등이 임베디드 시스템이라고 할 수 있습니다. 현재는 일반적인 범용 컴퓨터(PC)를 뺀 모든 기기들을 말합니다.
임베디드 시스템도 컴퓨터 시스템이기 때문에 일반 PC와 같이 하드웨어 구성요소에서 크게 차이가 나지는 않습니다. 기본적으로 CPU, Memory, I/O Controller, 저장 장치 등을 구성하고 있지만, 임베디드 시스템은 일반 PC보다 성능과 전력 소비량, 사용하는 목적 또는 기능에 따라서 달라질 수 있습니다.
임베디드 시스템은 특정한 목적을 수행하는 시스템이라고 했는데, PC와 다른 점이 바로 이것입니다. 일반적인 PC는 사용자가 다양한 목적을 위해서 사용할 수 있습니다. 하지만 임베디드 시스템은 앞서 설명한 것과 같이 사용하는 목적과 기능에 따라서 제한적인 자원(하드웨어)으로 구성되므로 다양한 목적으로 사용할 수 없습니다. 그래서 어떤 특정한 목적으로 설계된 하드웨어를 바탕으로 그 기능을 수행하도록 미리 정의된 프로그램으로 구성되어 있습니다.
또한, 임베디드 시스템에서는 실시간성을 가지는 시스템일 수 있습니다. 임베디드 리눅스 시스템이 나오기 전에는 일반적으로 실시간 운영체제를 많이 사용했습니다. 실시간성(Real-Time Reactive)이란 컴퓨터 시스템이 가지는 시간 제약성을 말합니다. 시간 제약성은 어떤 이벤트에 의해서 정해진 시간 이내에 즉각 반응해야 하는 것을 말합니다. 자동차라는 시스템을 예로 들어보죠. 자동차가 달리고 있는 상태에서 갑자기 앞쪽으로 어떤 물건이 나타나서 긴급한 상황에 빠졌다고 가정해 봅시다. 이때 컴퓨터 시스템이 자동차를 제어하고 있다면 즉각 자동차를 멈추라는 명령을 수행해야 합니다. 그렇지 않으면 생명이 위험하기 때문이죠. 그렇다고 모든 임베디드 시스템이 실시간성을 가지지는 않습니다. 실시간성 임베디드 시스템을 구성하기 위해서는 RTOS(Real-Time Operating System)와 같은 소프트웨어가 필요하죠. 리눅스는 실시간성을 보장하지 않습니다. 물론 리눅스도 패치를 통해서 실시간성을 가질 수 있지만, RTOS를 사용하는 것이 더 좋은 선택이라고 생각합니다.
실시간 시스템(Real-Time System)에는 두 가지로 분류됩니다. 경성 실시간 시스템과 연성 실시간 시스템으로 분류됩니다. 먼저 경성 실시간 시스템이란 어떤 이벤트가 발생했을 때 주어진 시간 안에 즉각 반응하지 않았을 경우 치명적인 영향을 받을 수 있는 시스템을 말합니다. 앞서 설명한 자동차와 같이 생명과 직결되는 시스템들이 이에 속하죠. 연성 실시간 시스템은 어떤 이벤트가 발생했을 때 주어진 시간 안에 즉각 반응하지 않아도 치명적인 영향을 끼치지 않는 시스템을 말합니다. 대표적으로 동영상 플레이어나 TV와 같은 것들을 예로 들 수 있습니다.
임베디드 시스템이란 무엇인지 이해가 되셨다면 좋겠네요. 이해가 안 가셨다면 제가 설명이 부족했던 거겠죠. 정리하자면 임베디드 시스템은 범용 컴퓨터(PC)를 뺀 컴퓨터 시스템을 말하며, 특정한 목적을 가지고 하드웨어와 소프트웨어로 구성된 시스템이다라고 말할 수 있습니다. 추가적으로 현재 스마트폰과 같은 모바일 기기들은 임베디드 시스템이라고 하지 않습니다. 이미 모바일 기기들은 앞서 설명한 것처럼 범용 컴퓨터와 같이 다양한 목적으로 사용할 수 있기 때문입니다.
이 글을 공유하기