[Embedded] 시스템 프로그래밍 개요 : 시스템에 대한 전반적 이해❌ 휴지통 ❌2025. 4. 27. 19:40
Table of Contents
📚 시스템
📖 시스템 (System)
👉 시스템의 핵심 = 서로 다른 부분들이 모여 전체를 이룬다
- 서로 상호작용하며 어떤 목적을 달성하는 구성 요소들의 집합 또는 집합체
- 단순히 하나만 존재하는 것이 아니라, 여러 요소(component)가 협력해서 하나의 큰 기능을 수행하는 구조
📌 시스템의 예시
- 인간의 몸 : 여러 기관(심장, 폐, 신경계 등)이 협력하여 생명 유지라는 목적을 달성
- 회사 : 여러 부서(영업, 개발, 인사 등)가 협력해서 사업 운영이라는 목적을 달성
- 자동차 : 여러 부품(엔진, 바퀴, 브레이크 등)이 서로 연결되어 주행이라는 목적을 달성
📖 컴퓨팅 시스템 (Computing System)
👉 하드웨어와 소프트웨어가 함께 동작해서 원하는 작업을 수행할 수 있게 만든 전체 구조를 의미
📌 컴퓨팅 시스템의 기본 구성
👉 컴퓨팅 시스템은 하드웨어, 소프트웨어, 사용자로 구성
- 하드웨어 : 물리적인 장치로, CPU, 메모리, 디스크, 네트워크 카드, 키보드, 모니터 등 포함
- 소프트웨어 : 하드웨어를 제어하고 사용자가 프로그램을 실행할 수 있게 하는 것으로, 운영체제(OS), 응용 프로그램 등 포함
- 사용자 : 시스템을 사용하는 사람 (직접 명령어를 입력하거나 프로그램을 실행하는 주체)
📌 컴퓨팅 시스템의 작동 흐름
➡️ 사용자가 프로그램을 실행하거나 명령어를 입력
➡️ 소프트웨어(운영체제)가 요청을 해석해서 적절한 하드웨어에 작업 요청
➡️ 하드웨어가 물리적인 작업(계산, 저장, 출력 등)을 수행
➡️ 수행 결과가 운영체제로 전달
➡️ 운영체제는 전달받은 결과를 사용자에게 전달
📖 시스템의 주요 특징
- 복잡한 하드웨어를 소프트웨어가 숨겨줌
- 사용자는 간단하게 명령을 내리지만, 복잡한 하드웨어 제어가 자동으로 이루어짐
- 모듈화 (Modularity)
- 여러 개의 작은 부품(모듈)들이 독립적으로 설계되고, 서로 결합되어 하나의 시스템을 이룸
- 인터페이스(Interface) 제공
- 사용자가 쉽게 시스템을 사용할 수 있도록 인터페이스를 제공 (ex. 명령줄, GUI, API 등)
- 자원(Resource) 관리
- CPU, 메모리, 디스크, 네트워크 같은 시스템 자원을 효율적으로 관리
📚 임베디드 시스템
📖 임베디드 시스템 (Embedded System)
👉 멀티 목적이 아닌, "특수 목적"을 위한 시스템
- 특정한 기능을 수행하기 위해 만들어진 컴퓨팅 시스템
- 임베디드 시스템은 딱 한 가지(또는 소수의 정해진 기능)만 수행하는 시스템
📌 임베디드 시스템의 예시
- 스마트폰 안의 통신 모뎀 : 통신 기능만 담당하는 독립 시스템
- 자동차의 ABS 제어기 : 브레이크 잠김을 막기 위해 동작하는 컴퓨팅 시스템
- 가전제품 (TV, 세탁기, 냉장고 등) : 각각 특화된 소프트웨어로 제어
- 의료기기 (심장 박동기 등) : 생명 유지 기능을 특수하게 수행
👉 주변 모든 전자제품 안에 작은 컴퓨터(임베디드)가 들어있어 특수 기능을 수행 = 임베디드 시스템
📖 임베디드 시스템의 특징
- 특수 목적 : 딱 정해진 기능만 수행 (다용도 시스템이 아님)
- 자원 제약 (Resource Constraint) : CPU, 메모리, 저장공간이 매우 작음
- 실시간성 (Real-Time Requirements) : 빠르고 정확하게 반응이 필요 (특히 자동차, 의료 분야)
- 높은 안정성 (Reliability) : 고장나면 안되며, 오래 작동해야 함
- 전력 최적화 : 배터리로 동작하거나, 소모 전력이 매우 중요
📖 임베디드 시스템의 구성
- 프로세서 (CPU, 마이크로컨트롤러)
- 메모리 (RAM, ROM)
- 입출력 장치 (센서, 액추에이터, 통신모듈)
- 운영체제 (Linux, RTOS, Bare-metal) ➡️ 경우에 따라 없을 수도 있음
📌 임베디드 시스템의 운영체제
- 임베디드 시스템은 운영체제가 없는 경우도 많이 있음 ➡️ Bare-metal
- 코드를 CPU 바로 위에 직접 올려서 동작시키는 경우에 해당
- 운영체제가 있는 경우에도, 매우 작은 OS를 사용
- ex. FreeRTOS, VxWorks, Embedded Linux 등
📖 일반 컴퓨터 vs 임베디드 시스템
| 항목 | 일반 컴퓨터 (PC 등) | 임베디드 시스템 |
| 목적 | 다양한 작업 | 특정 작업 |
| 성능 | 고성능 (CPU, 메모리 풍부) | 제한적 성능 (최소 필요만 충족) |
| 운영체제 | Windows, macOS, Linux 등 | 없음 / RTOS / Embedded Linux |
| 자원관리 | 유연하고 방대함 | 자원 절약이 필수 |
| 사용자 인터페이스 | 키보드, 마우스, 디스플레이 등 | 없는 경우도 많음 (자동 제어) |
'❌ 휴지통 ❌' 카테고리의 다른 글
| [임베디드] LwM2M 프로토콜의 개념과 이해 (1) | 2025.06.30 |
|---|---|
| [Embedded] 시스템 프로그래밍 개요 : 시스템 프로그래밍에 대한 전반적 이해 (0) | 2025.04.27 |
| [Embedded] 시스템 프로그래밍 개요 : 리눅스 시스템 프로그래밍의 이해 (1) | 2025.04.25 |
| [WEB][DB] MySQL DBMS 설치 (0) | 2025.03.13 |
| [WEB] 웹 서버(Web Server)와 REST API 개념 정리 (0) | 2025.03.07 |
@청월누리 :: DevKuk 개발 블로그
since 2025.01.27. ~ 개발자를 향해....🔥