본문 바로가기

FreeRTOS 공부하기 01 - FreeRTOS에 대해

@밀양박씨!2026. 5. 2. 03:59

 

1. FreeRTOS란 무엇이고, 왜 쓸까?


1. FreeRTOS가 뭐예요?

FreeRTOS는 실시간 커널(real-time kernel)과 여러 모듈형 라이브러리로 이루어진 C 라이브러리 모음입니다.

여기서 커널(Kernel) 이란 운영체제의 핵심 부분, 즉 "누가 언제 CPU를 쓸지 결정하는 교통경찰" 같은 존재입니다. Windows나 macOS처럼 거대한 OS가 아니라, 아주 작은 마이크로컨트롤러(예: 세탁기 칩, 드론 제어 보드 등)에서 돌아갈 수 있을 만큼 가볍습니다.



2. 어디에 쓰이나요?

FreeRTOS 커널은 마이크로컨트롤러나 소형 마이크로프로세서에서 실행되는 deeply embedded(깊이 내장된) 실시간 애플리케이션에 적합합니다. 이런 애플리케이션은 보통 하드 실시간 요구사항과 소프트 실시간 요구사항이 혼합되어 있습니다.


여기서 두 가지 개념이 나옵니다.

  • 소프트 실시간(Soft Real-Time): 시간 제한이 있지만, 그 제한을 넘겨도 시스템이 완전히 망가지지는 않습니다. 예를 들어 키보드 입력에 너무 늦게 반응하면 짜증스럽긴 해도 시스템 자체는 쓸 수 있습니다.
  • 하드 실시간(Hard Real-Time): 시간 제한을 넘기면 시스템이 완전히 실패합니다. 예를 들어 자동차 에어백이 충돌 센서 입력에 너무 늦게 반응하면 오히려 더 큰 해를 끼칠 수 있습니다.


즉, FreeRTOS는 "이 일은 반드시 0.1ms 안에 처리해야 한다!"는 요구사항을 지킬 수 있도록 도와주는 시스템입니다.



3. RTOS의 장점들

간단한 시스템이라면 커널 없이도 잘 만들 수 있습니다. 하지만 복잡한 경우에는 커널을 쓰는 것이 훨씬 유리합니다. 책에서 소개하는 장점들을 쉽게 풀어 설명하면 이렇습니다.

  1. 타이밍 추상화 — 개발자가 "언제 실행할지"를 직접 관리하지 않아도 됩니다. RTOS가 대신 처리해 주므로 코드가 훨씬 단순해집니다.
  2. 유지보수성/확장성 — 타이밍 세부사항이 분리되어 있어서, 하드웨어가 바뀌어도 애플리케이션 코드를 거의 수정하지 않아도 됩니다.
  3. 모듈성 — 각 태스크는 독립적인 모듈로, 명확한 역할을 가집니다. 마치 회사에서 각 팀이 자기 업무만 담당하는 것처럼요.
  4. 팀 개발 — 태스크마다 인터페이스가 명확하므로, 여러 사람이 동시에 개발하기 편합니다.
  5. 테스트 용이성 — 독립된 모듈은 각각 따로 테스트하기가 쉽습니다.
  6. 코드 재사용 — 모듈화된 코드는 다른 프로젝트에서도 재활용하기 좋습니다.
  7. 효율성 — 이벤트 기반으로 동작하므로, 할 일이 없을 때 CPU를 낭비하지 않고 저전력 대기 상태로 들어갈 수 있습니다.


4. FreeRTOS만의 강점 

FreeRTOS는 전문적으로 개발되었고, 엄격한 품질 관리를 거치며, 상업용 애플리케이션에서도 자신의 소스코드를 공개할 필요 없이 완전 무료로 사용할 수 있습니다. AWS의 관리 하에 보안 대응, 대규모 개발팀, 공식적 검증 전문성, 장기 지원 등이 제공되며, 특정 하드웨어나 클라우드 서비스에 종속되지 않는 중립적인 오픈소스 프로젝트로 유지됩니다.

한마디로 무료인데 기업 수준의 품질과 지원을 받을 수 있다는 게 핵심입니다. 


5. "태스크(Task)"라는 용어에 대해

FreeRTOS에서는 각 실행 흐름을 '태스크(task)'라고 부릅니다. 임베디드 커뮤니티 내에서 통일된 용어는 없지만, '스레드(thread)'는 특정 분야에서 더 구체적인 의미를 가질 수 있기 때문에 '태스크'라는 표현을 선호합니다.

앞으로 "태스크"라는 말이 계속 나올 예정인데, 그냥 "CPU가 처리해야 할 하나의 독립적인 일감"이라고 이해하면 됩니다.



정리: 

"작은 마이크로컨트롤러에서도 여러 일을 안전하고 정확한 타이밍으로 처리하려면, FreeRTOS 같은 RTOS 커널이 필요하다. 그리고 FreeRTOS는 무료이면서도 실무에서 충분히 믿고 쓸 수 있는 도구다."

 

밀양박씨!
@밀양박씨! :: 박씨의 개발블로그

lovebotw049 님의 블로그 입니다.

목차