Preemptive vs Nonpreemptive Scheduling
포스트 난이도: HOO_Middle
# Preemptive Scheduling
Preemptive scheduling은 선점 스케줄링이라도 불리는데, 말 그대로 우선순위가 높은 Process가 오면 기존 Process를 중단하고 우선순위대로 프로세스가 진행되는 걸 의미한다.
Preemptive scheduling은 실행 상태에서 준비상태로 전환되거나 wait 상태에서 준비상태로 전환될 때 사용된다.
대표적인 해당 스케줄링의 알고리즘으로는 SRTN, RR, Priority 등이 있다.
# Shortest Remaining Time Next(SRTN)
SRTN은 Preemptive scheduling algorithm이다.
Scheduler가 남은 실행시간이 짧은 프로세스를 선택하고 새로운 작업과 해당 작업 시간을 비교한다.
이때 새로운 작업이 금방 끝날 것 같으면 해당 작업을 대기시키고 더 짧은 작업을 우선하여 실행한다.
예를 들어, 은행 창구에서 업무를 보던 중에 갑자기 급하게 처리할 일이 있다며 다른 손님의 업무를 잠깐 대신하여 처리하는 경우가 SRTN과 비슷한 상황이라고 볼 수 있다.
또한 이러한 특성 덕분에 SRTN은 run time을 미리 예측할 수 있다.
# Round Robin Scheduling
RR scheduling algorithm은 time interval quantum을 고려하여 작업을 수행한다.
정해진 TQ 내에 작업 수행을 다하지 못할 경우 남은 작업 프로세스를 마지막 block으로 남겨두어 앞선 작업 수행을 하고 나서 남은 작업을 수행한다.
마찬가지로 그 다음 작업에서도 남은 작업이 생길 경우 마지막 block으로 옮겨 나머지 작업 수행을 마저 수행한다.
Round-robin scheduling은 모든 프로세스들을 동일하게 중요하게 여긴다.
# Priority Scheduling
말 그대로 가장 우선순위가 높은 scheduling 작업을 우선적으로 수행한다.
우선순위가 가장 높은 프로세스의 작업을 먼저 수행할 수 있도록 해주는 스케줄링 알고리즘이다.
우선순위가 높은 프로세스 작업이 모두 끝나야지만 다음 낮은 우선순위의 프로세스가 작업을 시작할 수 있는 대기열에 배치될 수 있다.
Priority scheduling은 Round robin 알고리즘과 같이 사용하는 경우가 종종 있다.
이 경우 마찬가지로 우선순위가 높은 프로세스들을 가지고 RR 알고리즘이 구현되고 우선순위가 높은 프로세스가 모두 종료되고 나서 후순위의 프로세스들이 RR 알고리즘으로 작업을 수행하게 된다.
'Computer Science' 카테고리의 다른 글
[Automata] Function and Concept (0) | 2022.03.07 |
---|---|
[Automata] Automata란? (0) | 2022.03.07 |
[Operating System] Scheduling (0) | 2022.03.04 |
[Operating System] OS Structure (0) | 2022.03.04 |
[Operating System] System Calls Example Tables (0) | 2022.03.04 |
댓글