-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
- CPU 스케줄링 알고리즘은 매우 다양하고 운영체제마다 다르기 떄문에 암기하기 보다는 작동 방식과 장단점을 이해하기!
스케줄링 알고리즘 종류
1. 선입 선처리 스케줄링(FCFS 스케줄링)
- First Come First Served Scheduling
- 준비 큐에 삽입된 순서대로 프로세스를 처리하는 비선점형 스케줄링 방식이다.
- 호휘 효과가 발생한다. 호위 효과는 CPU를 오래 사용하는 프로세스가 먼저 도착하면 다른 프로세스는 그 프로세스가 CPU를 사용하는 동안 무작정 기다리는 현상이다.
2. 최단 작업 우선 스케줄링(SJF 스케줄링)
- Shortest Job First Scheduling
- 호위 효과를 방지하기 위해 탄생한 스케줄링이다.
- 즉, CPU 이용 시간의 길이가 가장 짧은 프로세스부터 실행하는 스케줄링 방식이다.
- 기본적으로 비선점형 스케줄링 알고리즘으로 분류되지만, 선점형으로 구현될 수도 있다.
3. 라운드 로빈 스케줄링
- 선입 선처리 스케줄링 + 타임 슬라이스 개념이 더해진 스케줄링 방식이다.
- 타임 슬라이스: 각 프로세스가 CPU를 사용할 수 있는 정해진 시간
- 즉, 정해진 타임 슬라이스만큼의 시간 동안 돌아가며 CPU를 이용하는 선점형 스케줄링이다.
- 타임 슬라이스 크기가 매우 중요하다. 타임 슬라이스가 지나치게 크면 선입 선처리 스케줄링과 다를 바 없어 호위 효과가 생길 여지가 있고, 지나치게 작으면 문맥 교환에 발생하는 비용이 크기 때문이다.
4. 최소 잔여 시간 우선 스케줄링(SRT 스케줄링)
- Shortest Remaining Time
- 2번과 3번을 합친 스케줄링 방식이다. (최단 작업 우선 스케줄링 + 라운드 로빈 스케줄링)
- 최소 잔여 시간 우선 스케줄링 하에서 프로세스들을 정해진 타임 슬라이스만큼 CPU를 사용하되, CPU를 사용할 다음 프로세스로는 남아있는 작업 시간이 가장 적은 프로세스가 선택된다.