임베디드 시스템: 두 판 사이의 차이

22 바이트 제거됨 ,  2023년 6월 1일 (목)
편집 요약 없음
편집 요약 없음
13번째 줄: 13번째 줄:
* 신뢰성 - 주어진 조건에서 '''반드시 규정된 시간 내에 요구된 기능을 완료'''해야 하므로 버그를 용인할 상황이 절대 있어선 안 된다.
* 신뢰성 - 주어진 조건에서 '''반드시 규정된 시간 내에 요구된 기능을 완료'''해야 하므로 버그를 용인할 상황이 절대 있어선 안 된다.


임베디드 시스템에 기본 탑재된 소프트웨어는 흔히 하드웨어와 소프트웨어 사이에서 작동한다는 의미에서 펌웨어(firmware)라고 부른다. 보통 펌웨어로 실시간 응답이 가능한 RTOS(Real-Time Operating System) 종류를 많이 쓴다. 범용 운영체제는 요구 성능이 상당히 무거워 리눅스라도 임베디드 시스템에서는 각종 잡다한 기능(예: 시스템에 탑재할 예정이 없는 장치의 디바이스 드라이버 소프트웨어, [[Gnome]]이나 [[KDE]] 같은 범용 GUI Shell, 웹 브라우저 같은 일반적인 응용 소프트웨어 및 그런 소프트웨어들을 위한 API 등)을 쳐내고 핵심 기능만 남기는 경량화 작업을 거친다. 극단적으로는 센서 데이터 처리 등에 보통의 소프트웨어는 사용하지 않는 높은 우선순위의 처리를 특정 소프트웨어에게만 프로세스 스케줄링 과정에서 부여하거나 아예 모든 태스크에 실행 시간과 휴면 후 다시 실행할 주기를 수동으로 지정하는 태스크 선점의 수동 제어 등 PC에서 쓸 법한 연산 성능 향상 기법과는 다른 목표를 둔다.
임베디드 시스템에 기본 탑재된 소프트웨어는 흔히 하드웨어와 소프트웨어 사이에서 작동한다는 의미에서 펌웨어(firmware)라고 부른다. 보통 펌웨어로 실시간 응답이 가능한 RTOS(Real-Time Operating System) 종류를 많이 쓴다. 범용 운영체제는 요구 성능이 상당히 무거워 리눅스라도 임베디드 시스템에서는 각종 잡다한 기능(예: 시스템에 탑재할 예정이 없는 장치의 디바이스 드라이버 소프트웨어, [[Gnome]]이나 [[KDE]] 같은 범용 GUI Shell, 웹 브라우저 같은 일반적인 응용 소프트웨어 및 그런 소프트웨어들을 위한 API 등)을 쳐내고 핵심 기능만 남기는 경량화 작업을 거친다. 극단적으로는 센서 데이터 처리 등에 보통의 소프트웨어는 사용하지 않는 높은 우선순위의 처리를 특정 소프트웨어에게만 프로세스 스케줄링 과정에서 부여하거나 아예 모든 태스크에 실행 시간과 휴면 후 다시 실행할 주기를 수동으로 지정하는 태스크 선점의 수동 제어 등 PC에서 쓰지 않는 기법을 활용하기도 한다.


== 개발 업계 ==
== 개발 업계 ==