임베디드 스터디 - 스케줄링 기초, 선점/비선점, 성능 척도
임베디드 스터디 - 스케줄링 기초, 선점/비선점, 성능 척도
선점형 vs 비선점형 스케줄링
| 구분 | 설명 | 예시 |
|---|---|---|
| 선점형 | OS가 실행 중인 프로세스에서 강제로 CPU 회수 가능 | Linux, Windows, FreeRTOS |
| 비선점형 | 프로세스가 자발적으로 CPU를 양보할 때까지 대기 | 초기 Windows 3.x, MS-DOS |
- 비선점형에서는 무한루프 프로세스 하나가 시스템 전체를 멈출 수 있음
- FreeRTOS에서
vTaskDelay()를 사용하는 이유 : 명시적으로 양보하여 다른 태스크 실행 기회 부여
스케줄링 성능 척도 (Criteria)
스케줄러가 잘 동작하는지 측정하는 5가지 지표
CPU 이용률 (CPU Utilization)
- CPU가 전체 시간 중 실제로 일한 비율
- 이상적으로는 100%에 가깝게, 실제 목표는 70~90% 수준
- 목표 : 프로세스 지연 없이 최대의 이용률 유지
처리량 (Throughput)
- 단위 시간당 완료된 프로세스의 수
- CPU 이용률이 높아도 처리량이 낮을 수 있음 (예: 대용량 행렬 연산 등 단일 프로세스 장시간 실행)
- 목표 : 완료 프로세스의 최대화
시간 관련 척도
1
2
3
4
5
6
프로세스 도착 첫 CPU 할당 뺏김 다시 실행 완료
↓ ↓ ↓ ↓ ↓
─────●───────────────────●─────────────●──────────●──────────●─────
│←──── 응답시간 ─────→│ │
│←────────────────── 반환시간 ───────────────────────────→│
│ 대기시간 = 반환시간 - 실제 실행시간(CPU 점유 구간 합)
| 척도 | 의미 | 목표 |
|---|---|---|
| 반환시간 (Turnaround Time) | 도착 → 완료까지 전체 시간 | 최소화 |
| 대기시간 (Waiting Time) | Ready Queue 대기 시간의 누적 합산 | 최소화 |
| 응답시간 (Response Time) | 도착 → 첫 CPU 할당까지 일회성 시간 | 최소화 |
- 응답 시간과 대기 시간의 차이
- 응답시간 : 도착 → 첫 번째 CPU 할당까지 (1회, 고정) → 인터랙티브 앱에서 중요
- 대기시간 : Ready Queue에서 기다린 시간의 (누적 합산) → 배치 작업에서 중요
비교 요약
| 척도 | 의미 | 목표 |
|---|---|---|
| CPU 이용률 | CPU가 실제로 일한 비율 | 최대화 |
| 처리량 | 단위 시간당 완료된 프로세스 수 | 최대화 |
| 반환시간 | 도착 → 완료까지 전체 시간 | 최소화 |
| 대기시간 | Ready Queue 대기 시간 누적 합산 | 최소화 |
| 응답시간 | 도착 → 첫 CPU 할당까지 (1회) | 최소화 |
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.