스케줄러

김수혁·2023년 12월 29일

OS

목록 보기
2/6

스케줄러


  • 어떤 프로세스에게 자원을 할당할지를 결정하는 운영체제 커널의 코드

종류

1. 장기 스케줄러(Long term scheduler)/잡 스케줄러(Job scheduler)

  • 메모리는 한정되어 있는데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리에 임시로 저장된다.
  • 이 pool에 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 ready queue로 보낼지 결정하는 역할을 한다.
  • 메모리와 디스크 사이의 스케줄링을 담당
  • 프로세스에 메모리를 할당
  • degree of Multiprogramming (메모리에 여러 프로그램이 올라가는 것) 제어
  • 프로세스의 상태 (new -> ready(in memory))

메모리에 프로그램이 너무 많이 올라가거나 적게 올라가면 성능이 좋지 않은 것임

2. 중기 스케줄러(Medium-term scheduler)/스와퍼(Swapper)

  • 여유 공간 마련을 위해 프로세스를 통쨰로 메모리에서 디스크로 쫓아냄
  • 프로세스에게서 메모리를 deallocate
  • degree of Multiprogramming 제어
  • 현 시스템에서 메모리에 너무 많은 프로그램이 동시에 올라오는 것을 조절하는 스케줄러
  • 프로세스의 상태 (ready -> suspended)

suspended : 외부적인 이유로 프로세스의 수행이 정지된 상태로 메모리에서 내려간 상태

  • 프로세스 전부 swap out 된다.
  • blocked 상태의 경우 스스로 ready state로 돌아갈 수 있지만 suspended 상태의 경우 스스로 ready state로 돌아갈 수 없다.

3. 단기 스케줄러(Short term scheduler)/CPU 스케줄러(CPU scheduler)

  • CPU와 메모리 사이의 스케줄링을 담당
  • Ready Queue에 존재하는 프로세스 중 어떤 프로세스를 running 시킬지 결정
  • 프로세스에 CPU를 할당

    프로세스의 상태 (ready -> running -> waiting -> ready)

스케줄링 알고리즘


1. FCFS(First Come First Served)

  • 먼저 준비된 프로세스를 먼저 처리
  • 간단하고 공정함 (우선순위, 실행시간 등의 다른 요소는 전혀 고려 X, 먼저 준비되면 먼저 실행)
  • 실행시간이 긴 프로세스 먼저 실행 시 대기시간이 길어짐
  • 콘보이 현상 발생(Convoy Effect)
  • 비선점 스케줄링

콘보이 현상(Convoy Effect)
burst time이 긴 프로세스가 먼저 도착해 다른 프로세스의 실행 시간이 전부 늦처줘 효율을 떨어뜨리는 현상

2. SJF(Shortest Job First)

  • Starvation 발생 가능
  • burst time이 짧은 프로세스가 먼저 CPU를 할당
  • 비선점 스케줄링

3. SRT(Shortest Remaining Time First)

  • 남은 burst time이 더 짧은 프로세스에 CPU를 할당
  • Starvation 발생 가능
  • 선점형 스케줄링 방식

4. 우선순위 스케줄링(Priority Scheduling)

  • 우선순위가 높은 프로세스에 CPU를 먼저 할당
  • 기아 현상과 무기한 봉쇄가 발생할 수 있으며 에이징 기법을 통해 해결
  • 선점 비선점 모두 가능

에이징 기법
먼저 도착한 프로세스가 나이를 계속 먹으며 우선순위가 올라가는 기법

5. 라운드 로빈(RR, Round Robin)

  • 프로세스에 동일한 할당 시간만큼 순서대로 계속 CPU를 할당
  • 응답시간이 빠르며, 모든 프로세스가 공정하게 CPU를 할당받을 수 있음을 보장
  • 선점형 스케줄링 방식

6. 다단계 큐(Multilevel Queue)

  • Background에서 돌아가는 프로세스와 Foreground의 프로세스에 다른 알고리즘을 적용하는 방식
  • 큐 사이에 서로 다른 CPU 할당시간 적용
  • Background에서는 FCFS, Foreground에서는 RR 알고리즘 적용
  • 선점 스케줄링 방식

7. 다단계 피드백 큐 (Multilevel Feedback Queue)

  • 프로세스가 큐 사이를 이동 가능
  • 각 큐에 서로 다른 CPU 할당 시간을 적용함으로써, 프로세스가 해당 시간동안 작업을 다 처리하지 못했다면, 점점 긴 Time Quantum을 할당해주는 큐로 이동
  • 우선 순위는 Time Quantum이 짧은 큐가 높음
  • Starvation이 발생 가능하며 에이징을 통해 해결 가능

선점 스케줄링

한 프로세스가 CPU를 할당받아서 실행하고 있을 때 다른 프로세스가 CPU를 사용하고 있는 프로세스를 중지시키고 CPU를 차지할 수 있는 스케줄링 기법

  • 우선순위가 높은 프로세스를 먼저 수행할 때 유리하고 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 유용
  • 많은 오버헤드 초래
  • 기아(Starvation) 현상 발생 가능

비선점 스케줄링

이미 사용되는 CPU를 빼앗지 못하고 사용이 끝날 떄까지 기다리는 스케줄링 기법

  • 할당받은 CPU는 끝날 때까지 사용
  • 응답 시간을 예측 가능
  • 일괄 처리 방식이 적합
  • 모든 프로세스의 요구에 대해 공정
  • 중요도가 높은 작업이 낮은 작업을 기다릴 수 있음
  • 문맥교환(Context Switching)으로 인한 오버헤드가 적음

좋은 스케줄링 방식인지 판단하는 기준


  • CPU utilization
  • Throughput
  • Turnaround Time
  • Waiting Time
  • Response Time
참고

profile
안녕안녕안녕

0개의 댓글