여러 CPU 스케줄링 알고리즘 중 SRT(Shortest Remaining Time)는 선점형 방식의 알고리즘으로, 처리 시간이 가장 적게 남은 작업을 우선 실행하는 독특한 방식을 가지고 있습니다. 이번 글에서는 SRT의 개념, 특징, 장단점, 예시, 그리고 실제 사용 사례를 살펴보겠습니다.
1. SRT(Shortest Remaining Time) 스케줄링이란?
SRT(Shortest Remaining Time)는 SJF(Shortest Job First)의 선점형 버전입니다. 현재 실행 중인 프로세스보다 남은 처리 시간이 짧은 새로운 프로세스가 도착하면 CPU를 그 프로세스에 할당합니다. 즉, 가장 짧은 남은 처리 시간을 가진 프로세스가 항상 CPU를 점유하게 됩니다.
주요 동작:
- 현재 실행 중인 프로세스와 대기 중인 프로세스의 남은 시간을 비교
- 더 짧은 남은 시간을 가진 프로세스가 있다면 현재 프로세스를 선점
2. SRT의 특징
선점형 알고리즘 | 실행 중인 프로세스라도 남은 시간이 더 짧은 프로세스가 도착하면 선점이 발생함 |
응답 시간 최적화 | 작업 시간이 짧은 프로세스가 빠르게 완료되므로 응답 시간이 최소화 됨 |
CPU 집중형 프로세스 최적화 | 대기 큐에서 짧은 프로세스를 먼저 처리하여 시스템 효율을 높임 |
컨텍스트 스위칭 빈번 | 프로세스 전환이 잦아져 컨텍스트 스위칭 오버헤드가 발생할 수 있음 |
3. SRT의 장단점
장점 | 단점 |
|
|
4. SRT의 예시
구분 | 설명 |
조건 | 프로세스 3개의 도착시간 및 실행시간이 아래와 같다고 가정. - P1: 도착시간 0ms, 실행시간 8ms - P2: 도착시간 1ms, 실행시간 4ms - P3: 도착시간 2ms, 실행시간 2ms |
실행과정 |
|
결과 |
|
5. 실제 사용 사례
- 실시간 시스템
SRT는 프로세스의 남은 실행 시간을 기준으로 선점하기 때문에 실시간(real-time) 환경에서 사용하기 적합합니다.
예를 들어, 멀티미디어 스트리밍이나 게임 렌더링에서 빠른 응답성이 필요한 작업에 활용됩니다. - 단기 작업 우선 처리
웹 서버나 DB 서버에서 짧은 요청(예: 검색 질의)을 빠르게 처리하여 사용자 응답 시간을 줄이는 데 사용됩니다. - CPU 집중형 작업 스케줄링
짧은 CPU 작업을 우선 처리하여 작업 처리량(Throughput)을 높이고 시스템 효율성을 극대화하는 경우 사용됩니다.