728x90
운영체제에서 하나의 CPU는 한 번에 하나의 프로세스만 실행할 수 있습니다. 이때 어떤 프로세스를 먼저 실행시킬지를 결정하는 것이 바로 프로세스 스케줄링입니다. 다양한 방식이 존재하며, 각각의 장단점이 다릅니다.
1. FCFS (First-Come, First-Served)
- 의미: 먼저 도착한 순서대로 실행
- 장점: 구현이 쉽고 직관적
- 단점: 대기 시간이 길어질 수 있음 (특히 실행 시간이 긴 작업이 앞에 있을 경우)
예시
A(도착 0, 실행 30), B(도착 5, 실행 10), C(도착 10, 실행 5)
실행 순서: A → B → C
2. SJF (Shortest Job First)
- 의미: 실행 시간이 가장 짧은 프로세스를 먼저 실행
- 장점: 평균 대기 시간을 최소화할 수 있음
- 단점: 실행 시간이 긴 작업은 계속 밀림 (기아 현상 발생 가능)
3. HRN (Highest Response Ratio Next)
- 의미: SJF의 단점을 보완한 방식으로, 대기 시간과 실행 시간을 고려해 우선순위 결정
- 계산식: (대기시간 + 실행시간) / 실행시간
- 장점: 공정성을 어느 정도 유지하면서 효율성도 높임
4. SRT (Shortest Remaining Time)
- 의미: SJF의 선점형 버전. 남은 실행 시간이 가장 짧은 프로세스를 우선 실행
- 장점: 응답 시간이 짧아짐
- 단점: 문맥 전환이 자주 발생해 오버헤드가 큼
5. RR (Round Robin)
- 의미: 프로세스마다 동일한 시간 할당량을 주고, 순차적으로 CPU를 번갈아가며 사용
- 장점: 공정하게 분배
- 단점: 타임 퀀텀이 너무 작으면 오버헤드 증가, 너무 크면 FCFS처럼 동작
비교 요약
알고리즘 | 선점 여부 | 평균 대기 시간 | 공정성 | 특징 |
FCFS | 비선점 | 높음 | 낮음 | 단순, 비효율 가능성 |
SJF | 비선점 | 낮음 | 낮음 | 기아 현상 위험 |
HRN | 비선점 | 중간 | 중간 | 공정성과 효율성의 균형 |
SRT | 선점 | 매우 낮음 | 낮음 | 오버헤드 발생 가능 |
RR | 선점 | 중간 | 높음 | 타임퀀텀 설정 중요 |
마무리
각 스케줄링 기법은 사용하는 환경과 목적에 따라 선택되어야 합니다. 짧은 작업 위주인지, 응답 시간이 중요한지, 공정성이 중요한지에 따라 알맞은 방식이 다릅니다. 운영체제를 깊이 있게 이해하려면 이들 알고리즘의 작동 방식과 차이를 잘 알아두는 것이 중요합니다.
728x90
'정보처리기사 단골주제 정리' 카테고리의 다른 글
데이터 오류 검출의 핵심! CRC와 체크섬 완전 정리 (0) | 2025.05.02 |
---|---|
소프트웨어 공학 (0) | 2025.04.23 |
==와 equals (0) | 2025.04.18 |