본문 바로가기
CS 지식

CPU 스케쥴러

by BottleCoffin 2022. 8. 10.

준비큐 있는 프로세스에 대해 CPU를 할당하는 방법


여러  프로세스가 동시에 실행되는 것 처럼 보이지만 내부적으로는 여러 프로세스를 짧게 바꿔가면서 실행하여 사용자가 느끼기에는 동시에 실행하는 것 처럼 보인다.
이 작업을 CPU 스케쥴러가 처리한다.

선점(이미 실행되고 있는 프로세스를 뺏는다) vs 비선점(안뺏는다)


스케줄링 알고리즘


   -
비선점 스케줄링


      * FCFS(First Come First Served)
        먼저 들어온 순서대로 처리하는 방식
      * SJF(Shortest Job First)
        버스트 시간이 짧은 프로세스부터 CPU를 할당한다.

 


   -
선점 스케줄링


       * SRT(Shortest Remaining Time)
         최단 잔여시간을 우선으로 하는 스케줄링(도착 시간에서 잔여 시간을 비교)
         진행 중인 프로세스가 있어도, 최단 잔여시간인 프로세스를 위해 Sleep 시키고 짧은 프로세스를 먼저 할당.
       *RR(Round Robin)
         모든 프로세스가 같은 우선순위를 가지고 time slice(타임 퀀텀)를 기반으로 스케줄링 한다.
         타임퀀텀이 크면 FCFS와 다를게 없고 너무 작으면 불필요한 Context Switch가 많이 일어남.
       * Priority Scheduling(
우선 순위 스케쥴링)
         우선 순위가 높은 프로세스에 CPU를 우선 할당하는 방식의 스케줄링
         우선 순위는 시간 제한, 메모리 요구량, 프로세스의 중요성, 자원사용 비용 등에 따라 달라질 수 있다.
        우선 순위가 같을 경우, FCFS와 다를게 없다.


정리
CPU 스케쥴러란 준비큐에 있는 프로세스에 대해서 CPU를 할당하는 방법으로 크게 다섯가지가 있다.
FCFS, SJF, SRT, Priority Scheduling, Round Robin

댓글