면접 준비/Embedded
RTOS (Real Time Operating System) - Scheduling Algorithm (1)
유로 청년
2024. 11. 4. 21:51
1. RTOS의 Scheduling Algorithm
- RTOS의 Scheduling Algorithm에는 크게 선점형 (Preemptive)과 비선점형 (Non-preemptive)으로 나눌 수 있다.
- 선점형 알고리즘과 비선점형 알고리즘을 나누는 기준은 "실행중인 테스크를 중단할 수 있는가?"이다.
2. 선점형 스케줄링 알고리즘
- 높은 우선 순위 테스크가 발생하면 우선 순위가 낮은 테스크를 중단하고, 해당 테스크를 실행
- 이를 통해 테스크 강제 전환 허용
- 선점형 스케줄링 알고리즘의 장점
▶ 긴급 테스크에 대해서 빠르게 응답 가능
▶ 실시간성 보장
▶ 우선 순위 체계에 대해서 엄격한 통제 - 선점형 스켈줄링 알고리즘의 단점
▶ 문맥 교환에 따른 오버헤드 발생
▶ 구현하기 복잡함
★★★★★★★★★★★★ - Q) "문맥 교환에 따른 오버헤드 발생"이 무엇을 의미하는가?
- A) 만약, 임의의 테스크를 실행하던 중, 긴급 테스크이 발생하면 레지스터에 "이전에 실행했던 테스크가 어디까지 실행되었는가?"에 대한 정보를 저장한다. 그리고, 해당 테스크에 대해서 처리한 뒤, 다시 레지스터에 접근하여 "우리 어디까지 테스크를 했었지?"에 대한 정보를 읽고, 해당 테스크를 해당 지점부터 다시 실행한다.
이는 계속해서 발생되는 테스크에 대해서 레지스터에 값을 저장/복원 과정을 반복해야 하며, 이 과정에서 테스크 동작 시간 + 메모리 접근 시간 까지 시간이 소요되기 때문에 실제로 잦은 문맥 교환은 실제 작업 시간보다 오버헤드가 더 커질 수 있는 심각한 성능 저하를 초래 할 수 있다.
아래 예시를 통해 이해하면 보다 쉽게 이해 할 수 있다.
3. 비선점형 스케줄링 알고리즘
- 비선점형 스케줄링은 선점형 스케줄링과 다르게 실행 중인 테스크를 중단 할 수 없으며,
- 해당 테스크에서 자발적으로 CPU를 반환할 때까지 대기하게 된다.
- 비선점형 스케줄링 알고리즘의 장점
▶ 적은 오버헤드가 발생
▶ 예측 가능한 실행
▶ 구현하기 쉽다 - 비선점형 스케줄링 알고리즘의 단점
▶ 긴급 테스트에 대해서 대응하기 어렵다.
▶ 실시간성 보장 어려움
▶ 우선순위 역전 현상