6. 스케쥴링 알고리즘의 기본

프로세스란?

메모리에 올려져 실행 중인 프로그램은 프로세스라고 한다.
프로세스는 작업, task, job과 혼용되어 사용한다.

하지만 응용프로그램 != 프로세스다.
왜냐면, 한 응용프로그램에 여러 개의 프로세스로 이뤄져있을 수 있기 때문!

스케쥴러

스케줄러는 프로세스 실행을 관리하는 녀석.

RTOS(RealTime OS)

  • 응용 프로그램 실시간 성능 보장을 목표로 한 OS
  • 정확하게 프로그램 시작, 완료 시간을 보장!
  • 공장, 공정 같은 곳에서 사용.

GPOS(General Purpose OS)

  • 프로그램 실행시간에 민감하지 않음.
  • 일반적인 목적으로 사용됨

스케쥴링 알고리즘

어느 순서대로 프로세스를 실행시킬지 정하는 알고리즘

  • 시분할 시스템 : 프로세스 응답 시간을 가능한 짧게
  • 멀티 프로그래밍 : CPU 활용도를 최대한 높여서 프로세스를 빨리 실행

CPU를 처음부터 끝까지 사용을 가정. (저장매체를 읽는다던지, 프린팅한다던지 작업 없이)

FIFO 스케쥴러

  • 가장 간단한 스케쥴러(배치 처리 시스템)
  • 먼저 들어온 프로세스를 먼저 실행
  • 큐 자료구조를 활용해서 구현

최단 작업 우선(SJF) 알고리즘

  • Shortest Job First
  • 프로세스 실행시간이 짧은 프로세스 먼저 실행시키는 알고리즘

우선순위 기반 스케쥴러(Priority-Based)

  • 정적 우선순위(프로세스마다 우선순위를 미리 지정)
  • 동적 우선순위(스케줄러가 상황에 따라 우선순위를 동적으로 변경)

Round Robin 스케쥴러

  • 시간 단위마다 각 프로세스마다 돌아가면서 프로세스를 실행시키는 방법(시분할 시스템 기반)
  • 자기 차례 이후에도 작업이 더 필요한 프로세스는 RoundRobin queue에 들어가 다시 자기차례가 오기를 기다린다.
Share