Priority Inversion 문제 — Mars Pathfinder 사례·Bounded vs Unbounded
고우선 task가 저우선 task 때문에 막힘. 1997 화성 탐사선 reset의 원인.
Tech articles, book reviews, and presentations.
페이지 30 / 56
고우선 task가 저우선 task 때문에 막힘. 1997 화성 탐사선 reset의 원인.
Mutex = Semaphore + pxMutexHolder + uxBasePriority. Recursive variant는 lock-count.
FreeRTOS semaphore = Queue wrapper. Counter + priority-sorted wait list.
3 가지 구현 — cpsid/BASEPRI mask, taskENTER_CRITICAL, SMP spinlock. Hold time이 latency 결정.
Percepio Tracealyzer와 Segger SystemView, Cortex-M의 ITM/ETM 하드웨어 트레이스. Task switch·ISR·queue·mutex 이벤트를 시간축에 펼쳐 인과를 추적합니다.
ISR 종료 → ready task 실행까지의 시간. 측정 방법과 worst-case 추적.
Idle 시 SysTick 멈춤 + CPU sleep. 다음 task wake 시점까지 동적 timer 설정. 배터리 IoT 핵심.
RTOS의 심장 박동. SysTick 1 kHz가 표준 — Hz 선택의 trade-off.
RISC-V는 모든 레지스터 SW save. ECALL/mret + CSR (mscratch/mepc/mcause/mstatus).
Cortex-A의 7 모드와 모드별 banked register. 모드 간 SP·LR 별도 — Cortex-M보다 복잡.