스케쥴링 알고리즘

패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다.


프로세스(process)란?

실행 중인 프로그램

  • 메모리에 올려져서 실행중인 프로그램
  • 작업, task, job 이라는 용어와 혼용해서 사용.

응용 프로그램은 프로세스가 아니다

  • 응용 프로그램은 여러 개의 프로세스로 이루어질 수 있음
  • 하나의 응용 프로그램은 여러 개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수도 있음

스케줄러

  • 프로세스 실행을 관리!

스케줄링 알고리즘의 목표

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

종류

  • FIFO 스케줄러
  • 최단 작업 우선(SJF) 스케줄러
  • 우선순위 기반 스케줄러
  • Round Robin 스케줄러

FIFO 스케줄러

  • 먼저 요청한대로 실행
  • 가장 간단한 스케줄러 (배치 처리 시스템과 비슷)
  • FCFS(First Come First Served)스케줄러

스케줄러도 프로그램이라 자료구조를 썼을것이고

FIFO 개념을 적용했던 자료구조는? -> 바로 Queue!


최단 작업 우선(SJF) 스케줄러

SJF(Shortest Job First)스케줄러

  • 프로세스 실행시간이 가장 짧은 프로세스부터 먼저 실행

장점

  • 실행시간이 긴 프로세스들로 인해 짧은 프로세스들이 실행되는 딜레이가 없어짐

단점

  • 각 프로세스별 실행시간을 알아야 함

우선순위 기반 스케줄러

Priority-Based 스케줄러

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

Round Robin 스케줄러

우선순위 기반 스케줄러와 반대되는 개념으로,

프로세스들 사이에 우선순위를 두지 않고 순서대로 시간단위로 CPU를 할당하는 방식

장점

  • 응답시간이 짧아져 실시간 시스템에 유리

단점

  • 문맥전환의 오버헤드가 크다

정리

다양한 기본 스케줄링 알고리즘

  • FIFO(FCFS)스케줄링 알고리즘 (배치 처리 시스템)
  • 최단 작업 우선(SJF) 스케줄링 알고리즘
  • 우선순위 기반 스케줄링 알고리즘
    • 정적 우선순위, 동적 우선순위
  • Round Robin 스케줄링 알고리즘
    • 시분할 시스템 기반

Reference

패스트캠퍼스 - 올인원 패키지: 컴퓨터 공학 15강

위키백과 - 라운드 로빈 스케줄링

Comments