[OS] Scheduling Algorithms

Scheduling Criteria

CPU 스케쥴링을 비교하기 위한 기준은 다음과 같다.

  1. CPU Utilization
  2. Throughput
  3. Turnaround Time
    • 메모리에 적재되기 위해 기다리며 소비한 시간 + Ready 큐에서 대기한 시간 + CPU 사용 시간 + 입출력 시간
  4. Waiting Time
  5. Response Time
    • 대화식 시스템에서 총 처리시간은 최선의 기준이 아닐수도 있기에 사용자가 하나의 요구를 제출한 후 첫 번째 응답이 나올 때 까지 걸리는 시간이다.

Scheduling Algorithms


FCFS

First Come First Serve
비선점 스케쥴링기법
Ready Queue에 프로세스가 들어온 순서대로 CPU를 할당한다

SJF

Shortest Job First
비선점 스케쥴링기법
먼저 들어온 순서와 관계없이 작업 시간이 짧은 프로세스에게 CPU를 할당한다

Priority Scheduling

우선순위가 낮은 프로세스가 오랜시간동안 작업을 할당받지 못한다면 Aging 기법을 통해 우선순위를 높힌다

선점형 Priority Scheduling

더 높은 우선순위의 프로세스가 도착하면 Ready Queue의 Head에 삽입한다

비선점형 Priority Scheduling

더 높은 우선순위 프로세스 도착시 실행을 멈추고 CPU를 우선순위가 높은 프로세스에게 할당한다

Round Robin

동일한 사용 시간동안 프로세스에게 CPU를 할당한다
할당된 시간이 만료되면 Ready Queue에 삽입한다
할당시간이 너무 크다면 FCFS와 동일하게 동작하게 되고 너무 작다면 context switch의 오버헤드가 발생하게 된다

Multi Level Queue

Ready Queue를 두가지 종류의 Queue로 분리해 각각 다른 스케쥴링 알고리즘을 적용한다
사용자와 인터렉티브하게 사용되는 서비스 혹은 프로세스의 응답시간이 요구되는 프로세스는 포어그라운드 큐에 할당 되고 상대적으로 중요도가 낮은 서비스는 백그라운드 큐에 할당된다

Foreground Queue

우선순위가 높은 프로세스가 할당되는 큐로 Round Robbin같은 알고리즘이 사용된다

Background Queue

우선순위가 낮은 프로세스가 할당되는 큐로 FCFS같은 알고리즘이 사용된다

Multi Level Feedback Queue

Multi Level Feedback Queue에 기아상태 방지를 위한 Aging 기법을 적용한다

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/07/21/OS/Scheduling-Algorithms/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.