스케줄링이란?
큐에 대기중인 작업들중에서, 어떤 작업을 먼저 처리할 것인지 결정하는 선택 기준
우선순위 기반 / 비우선순위 기반,
선점형과 비선점형으로 나뉘어진다.
선점이란?
현재 CPU가 실행중인 작업보다 더 높은 우선순위의 작업이 들어오면, 진행중인 작업을 중단하고, 높은 우선순위의 작업을 실행함
프로세스 스케줄링의 목표
- 시스템 효율, 응답성, 공정성 높임
- CPU 사용률 최대화
- 처리율 최대화
- 반환시간 최소화
- 대기시간 최소화
- 응답시간 최소화
스케줄링에는 어떤 것이 있을까?
1. FCFS / FIFO (비선점 스케줄링 기법)
- FCFS ( First Come, First serverd )
- FIFO ( First In, First Out )
도착 순서대로 프로세스를 할당한다. 그러다보니 사용시간이 긴 프로세스로 인하여, 사용시간이 짧은 프로세스가 오랫동안 기다리는 현상이 발생하는데, 이를 호위효과라고 한다.
한 프로세스가 종료되기 전까지 다른 프로세스를 실행할 수 없는 비선점 스케줄링 기법이다.
- 장점
구현이 단순하다.
높은 처리율
기아상태가 없다.
(기아상태란, 우선 순위가 낮은 특정 프로세스가 영원히 실행되지 못하는 상태를 말한다.)
- 단점
한 프로세스가 CPU를 장기간 점유할 수 있다. -> 대화형 시스템에 부적합
2. SJF
- Shortest Job First
말 그대로 짧은 작업부터 먼저 진행한다. 비선점 스케줄링 기법이다.
- 장점
최적 평균 대기시간
- 단점
런타임을 예측하기 어렵다.
기아 상태가 발생할 수 있다.
3. SRT
- Shortest Remaining Time next
SJF의 선점형 버전.
실행중인 프로세스보다 실행시간이 적은 프로세스가 들어오면 CPU를 선점하게 된다.
4. RR
- Round Robin
시분할 시스템을 위해서 설계되었으며, 실행시간과 상관없이 일정 시간만큼 순차적으로 CPU를 점유한다.
때문에 문맥 교환이 많이 발생한다.
- 장점
대화형 시스템에 적합하다.
- 단점
타임 슬라이스가 너무 작으면 문맥 교환 오버헤드가 증가한다.
'전공' 카테고리의 다른 글
[ 운영체제 ] 문맥교환이란? (0) | 2025.04.27 |
---|---|
[ 운영체제 ] 운영체제 개요 (0) | 2025.04.27 |