답변:
일부 임베디드 시스템은 (a) 어려운 실시간 요구 사항을 충족해야하지만 (b) 하드웨어가 매우 제한적이므로 이러한 요구 사항을 충족하기가 훨씬 어렵습니다.
하드웨어를 변경할 수없는 경우 Linux를 배제하고 대신 다른 것을 사용해야하는 몇 가지 상황이 있습니다.
나는 전혀 실시간 작업을하지 않았으므로 소금 한 알로 이것을 가져 가십시오 ...
"실시간"에는 하드 실시간과 소프트 실시간이라는 두 가지 범주가 있다고 들었습니다.
"부드러운 실시간"은 비공식적으로 "가능한 빨리 완료"를 의미합니다. 현대 CPU의 Linux가 이런 종류의 일에 좋다고 생각합니다.
"하드 실시간"은 비공식적으로 "필요한 시간 내에 완료"를 의미합니다. 창은 아주 작거나 밀리 초 정도일 수 있습니다. 크루즈 미사일 또는 위성 발사 차량을위한 비행 제어 시스템은 일반적인 예처럼 보입니다. 산업 공정 제어 시스템도 필요할 수 있습니다. Stuxnet 웜은 이러한 종류의 제어를 수행하는 시스템을 방해 한 것으로 보입니다.
후자의 경우 RTOS를 사용합니다. RTOS는 종종 너무 많은 명령이나 클럭 틱 또는 그 밖의 것에서 인터럽트 전달을 보장합니다.
다른 고려 사항은 RTOS가 제한없이 스택 공간을 소비하지 않도록 설계, 테스트 및 / 또는 "증명 된"것입니다. 그것은 최소한의 메모리 내에서 살 수 있으며 "OOM Killer"와 같은 것은 존재하지 않을 것입니다. 초기 FORTRAN의 구 피어 기능 중 일부는 이러한 유형의 요구 사항에서 비롯됩니다. FORTRAN II 프로그램을 컴파일 할 때, 재귀 할 수없고 동적으로 할당 할 수 없기 때문에 필요한 스택과 힙의 양을 정확히 알고있었습니다.
실제로, 두 번째 고려 사항 (최대 메모리 소비 보장)은 "0.001 초의 보장 된 인터럽트 대기 시간"보다 일부 안전이 중요한 응용 분야에서 더 중요 할 수 있습니다.
또한 지원하는 언어의 무화과 잎의 선택 과정을 제거하면 엔지니어가 "요구 사항에 따라"RTOS를 선택한다는 것을 알게 될 것입니다.