RTOS(Real-Time Operating System)는 사건에 제때, 결정적으로 응답하는 것을 주목적으로 하는 운영체제다.[1][2] RTOS는 흔히 우선순위 기반 선점형 스케줄러를 두고, 실행할 수 있는 태스크 가운데 우선순위가 가장 높은 것을 실행한다.[3][4] 실시간이라는 요구는 실시간 시스템에서 다룬다.

Superloop

운영체제를 쓰지 않는 임베디드 소프트웨어는 흔히 superloop 구조를 쓰며, 복잡도가 낮은 작은 시스템이 대개 이렇게 설계된다. superloop는 무한 루프 안에서 할 일을 맡은 모듈의 함수를 호출한다. 루프 밖의 인터럽트 처리기는 비동기 사건을 맡고, 시간이 급한 일을 제때 하려면 인터럽트 처리기에서 해야 한다. 인터럽트가 넘긴 일도 루프가 그 모듈의 차례에 이르러야 처리되므로, 최악의 응답 시간은 루프 한 바퀴의 실행 시간에 달린다.[5][6]

Microchip MPLAB Harmony의 main 함수는 모든 모듈을 초기화한 뒤, 무한 루프에서 각 모듈의 상태 기계 함수를 차례로 호출한다.[6]

MPLAB Harmony 문서에 따르면 폴링 superloop는 가장 이해하기 쉬운 구성이다.[6] 대신 superloop에 모듈이 늘수록 모든 일의 시간 요구를 맞추기 어려워지고, 코드를 고치면 루프의 타이밍이 바뀐다.[5][6]

Microchip 앱노트 AN2751에 따르면 superloop의 태스크마다 실행 주기가 다르면 복잡도가 커진다. 루프 한 바퀴는 시스템이 요구하는 지연보다 길 수 없고, 루프를 돌 때 그 태스크를 지금 실행할지 가리는 상태 기계 같은 제어 코드가 더 필요하다.[7]

RTOS 기반 소프트웨어는 일을 여러 태스크로 나누고, 태스크마다 우선순위를 준다.[3][4]

구성

µC/OS-III 문서는 실시간 커널에 파일 관리, 프로토콜 스택, 그래픽 사용자 인터페이스 같은 상위 서비스를 더한 것을 RTOS라 부른다.[8]

스케줄러는 커널에서 어느 태스크를 언제 실행할지 정하는 부분이다.[3][5] RTOS가 다른 태스크를 실행하기로 하면 context switch가 일어나, 지금 태스크를 내보내고 새 태스크를 들인다.[3][4] 스케줄링 방식은 실시간 스케줄링에서 다룬다.

RTOS는 흔히 주기적인 타이머 인터럽트인 시스템 틱으로 시간을 잰다.[4][9]

RTOS를 쓰면 틱을 돌리고 태스크를 전환하는 데 CPU 시간이 더 든다.[1][4] Silicon Labs 자료에 따르면 RTOS의 서비스 부담은 대개 CPU 사이클의 2~10%이고, RTOS 코드는 플래시를 대개 6~20 KB 더 쓰며, 태스크마다 스택과 TCB(Task Control Block)로 RAM(Random-Access Memory)을 더 쓴다.[4] µC/OS-III 문서는 RTOS 전체가 아니라 커널만 놓고, 잘 설계된 애플리케이션에서 커널이 CPU 시간의 2~4%를 쓴다는 값을 제시한다.[10]

RTOS는 태스크 사이의 동기화와 통신에 세마포어, 뮤텍스, 메시지 큐, 이벤트 플래그 같은 객체를 제공한다.[4][11] 인터럽트 처리기는 태스크를 깨워 처리를 그 태스크에 넘길 수 있다.[4][12]

차량용 RTOS

ISO 17356-3:2005는 차량용 멀티태스킹 실시간 운영체제인 OSEK OS의 개념을 기술하고, 그 API(Application Programming Interface)를 정한다.[13] OSEK/VDX OS 2.2.3 명세에 따르면 이 명세를 따르는 구현은 여럿이고, 인증 절차로 각 구현이 명세에 맞는지 확인한다.[14]

AUTOSAR Classic Platform R25-11의 운영체제 명세는 ISO 17356-3을 바탕으로 두고 이를 확장하거나 제한한다.[15]

AUTOSAR Adaptive Platform은 주로 고성능 연산과 통신 기능을 제공하는 플랫폼이고, 그 설계 설명서는 이 플랫폼의 운영체제가 다중 프로세스 POSIX 운영체제 기능을 제공하도록 한다.[16] 운영체제 인터페이스는 IEEE 1003.13-2003의 PSE51 인터페이스로 운영체제 기능을 제공한다.[17]

비실시간 시스템과의 차이

FreeRTOS 문서에 따르면 비실시간 다중 사용자 시스템의 스케줄링 정책은 각 태스크에 처리기 시간을 공정하게 나눈다.[3] RTOS의 스케줄링 정책은 실세계 사건의 마감 시한을 모두 지키도록 처리기 시간을 나눠야 한다.[3][18]

[1]
“FreeRTOS FAQ: What is This All About?,” FreeRTOS (Amazon Web Services), 2026. Accessed: Sep. 29, 2026. [Online]. Available: https://www.freertos.org/Why-FreeRTOS/FAQs/What-is-this-all-about
[2]
“UM1722: Developing applications on STM32Cube with RTOS,” STMicroelectronics, 2019. Accessed: Sep. 29, 2026. [Online]. Available: https://web.archive.org/web/20260306102858/https://www.st.com/resource/en/user_manual/um1722-developing-applications-on-stm32cube-with-rtos-stmicroelectronics.pdf
[3]
“RTOS Fundamentals,” FreeRTOS (Amazon Web Services), 2026. Accessed: Sep. 29, 2026. [Online]. Available: https://www.freertos.org/Documentation/01-FreeRTOS-quick-start/01-Beginners-guide/01-RTOS-fundamentals
[4]
“Introduction to RTOS - Real-Time Operating Systems (Embedded World 2019),” Silicon Labs, 2019. Accessed: Sep. 29, 2026. [Online]. Available: https://web.archive.org/web/20250614072817/https://www.silabs.com/documents/public/presentations/ew-2019-introduction-to-rtos-real-time-operating-systems.pdf
[5]
“Real-Time Systems Concepts (µC/OS-II Documentation),” Micrium (Silicon Labs), 2026. Accessed: Sep. 29, 2026. [Online]. Available: https://micrium.atlassian.net/wiki/spaces/osiidoc/pages/163855/Real-Time+Systems+Concepts
[6]
“MPLAB Harmony Overview (MPLAB Harmony v2.06),” Microchip Technology, 2017. Accessed: Sep. 29, 2026. [Online]. Available: https://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB%20Harmony%20Overview.pdf
[7]
“AN2751: Process Scheduling on an 8-bit Microcontroller,” Microchip Technology, 2018. Accessed: Sep. 29, 2026. [Online]. Available: https://ww1.microchip.com/downloads/en/Appnotes/Process-Scheduling-on-an-8bit-MCU_appnote_DS00002751A.pdf
[8]
“RTOS Real-Time Operating System (µC/OS-III Documentation),” Micrium (Silicon Labs), 2026. Accessed: Oct. 07, 2026. [Online]. Available: https://micrium.atlassian.net/wiki/spaces/osiiidoc/pages/131378
[9]
“The RTOS Tick,” FreeRTOS (Amazon Web Services), 2026. Accessed: Sep. 29, 2026. [Online]. Available: https://www.freertos.org/Documentation/02-Kernel/05-RTOS-implementation-tutorial/02-Building-blocks/03-The-RTOS-tick
[10]
“Real-Time Kernels (µC/OS-III Documentation),” Micrium (Silicon Labs), 2026. Accessed: Oct. 07, 2026. [Online]. Available: https://micrium.atlassian.net/wiki/spaces/osiiidoc/pages/131321
[11]
“CMSIS-RTOS2: Using CMSIS-RTOS2 Interface,” Arm Limited, 2026. Accessed: Sep. 29, 2026. [Online]. Available: https://arm-software.github.io/CMSIS_6/latest/RTOS2/usingOS2.html
[12]
“Deferred Interrupt Handling,” FreeRTOS (Amazon Web Services), 2026. Accessed: Sep. 29, 2026. [Online]. Available: https://www.freertos.org/Documentation/02-Kernel/02-Kernel-features/11-Deferred-interrupt-handling
[13]
ISO, “ISO 17356-3:2005 Road vehicles — Open interface for embedded automotive applications — Part 3: OSEK/VDX Operating System (OS).” 2005. Accessed: Sep. 30, 2026. [Online]. Available: https://www.iso.org/standard/40079.html
[14]
“OSEK/VDX Operating System Specification, Version 2.2.3,” OSEK/VDX, 2005. Accessed: Sep. 30, 2026. [Online]. Available: https://web.archive.org/web/20060219185811/http://osek-vdx.org/mirror/os223.pdf
[15]
“Specification of Operating System (AUTOSAR CP R25-11),” AUTOSAR, 2025. Accessed: Sep. 30, 2026. [Online]. Available: https://www.autosar.org/fileadmin/standards/R25-11/CP/AUTOSAR_CP_SWS_OS.pdf
[16]
“Explanation of Adaptive Platform Design (AUTOSAR AP R25-11),” AUTOSAR, 2025. Accessed: Sep. 29, 2026. [Online]. Available: https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_EXP_PlatformDesign.pdf
[17]
“Specification of Operating System Interface (AUTOSAR AP R25-11),” AUTOSAR, 2025. Accessed: Sep. 29, 2026. [Online]. Available: https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_OperatingSystemInterface.pdf
[18]
“AT04056: Getting Started with FreeRTOS on Atmel SAM Flash MCUs,” Atmel, 2014. Accessed: Sep. 29, 2026. [Online]. Available: https://ww1.microchip.com/downloads/en/AppNotes/Atmel-42382-Getting-Started-with-FreeRTOS-on-Atmel-SAM-Flash-MCUs_ApplicationNote_AT04056.pdf