본문 바로가기
CS

[CS] 스케줄러의 종류

by pearhyunjin 2024. 2. 7.

스케줄러 Scheduler

한정적인 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 다음 실행 시간에 실행할 수 있는 프로세스 중 하나를 선택하는 역할.

프로세스는 수많은 큐들을 프로세스 종료시까지 돌아다닌다. OS는 큐 안에 있는 프로세스 중 하나를 선택해야하는데 이를 스케줄러가 한다.

 

큐 Queue

 프로세스를 스케줄링 한다.


큐 종류

  • 작업 큐 Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합
  • 준비 큐 Ready Queue : 현재 메모리 내에 있으면서 CPU를 잡아 실행되기를 기다리는 프로세스의 집합
  • 장치 큐 Device Queue : 각 장치마다 Device I/O 작업을 대기하고 있는 프로세스 집합

 

스케줄러 종류

  • 장기 스케줄러 Long-term scheduler
    한정된 메모리에 많은 프로세스가 한번에 올라올 경우, 대용량 메모리(일반적으로 디스트)에 임시 저장된다. 그 저장되어 있는 프로세스들 중에서 어떤 프로세스에 메모리를 할당해 Ready Queue로 보낼지  결정하는 역할을 한다.

    - 메모리와 디스크 사이의 스케줄링 담당
    - 프로세스에 메모리 및 각종 리소스 할당
    - degree of Multiprogramming(DOM) 제어 -> 실행중인 프로세스 수 제어
    - 프로세스 상태를 new ->  ready로 메모리 할당

  • 단기 스케줄러 Short-term scheduler

    - CPU와 메모리 사이의 스케줄링 담당
    - Ready Queue에 존재하는 프로세스 중 running 시킬것 결정
    - 프로세스에 CPU 할당 -> scheduler dispatch
    - 프로세스 상태가 Ready -> Running -> Waiting -> Ready 순서로 진행
    - 보통 매 100ms의 짦은 텀 마다 수행

  • 중기 스케줄러 Medium-term scheduler

    - 메모리의 공간 확보를 위해 프로세스를 통째로 메모리에서 디스크로 쫓아냄 -> swapping
    - 프로세스에게서 메모리 할당을 해재 -> deallocate
    - degree of Multiprogramming (DOM) 제어
    - 현 시스템에서 메모리에 너무 많은 프로그램이 동시에 올라가는 것 조절
    - 프로세스 상태가 Ready -> Suspended 순서로 진행

 


장기 vs 단기 스케줄러

가장 큰 차이점은 실행 빈도이다.

 

프로세스는 빠르게 실행되어야 하기 때문에 우선순위를 정해 빠르게 처리하기 위해 단기 스케줄러가 동작한다. 이때 스케줄링의 시간 지연이 발생하면 안되기 때문에 단기 스케줄러는 속도가 빨라야 하고 호출 빈도수가 많다.

 

그에 반해 시스템에 새로운 작업이 생성되어 들어오는 것은 분 단위로 프로세스 실행 시간에 비해 긴 시간이다. 때문에 장기 스케줄러는 단기 기 보다 호출 빈도수가 매우 적다. 장기 스케줄링은 시간이 걸리더라도 신중한 프로세스 선택이 중요하다. 

 


* https://velog.io/@deannn/CS-기초-운영체제-2.-스케줄러

* https://kim6394.tistory.com/177

'CS' 카테고리의 다른 글

[CS] Stack, Queue  (0) 2024.02.16
[CS] RESTful API  (0) 2024.02.07
[CS] TCP/UDP  (0) 2024.02.05
[CS] OSI 7계층  (0) 2024.02.05
[CS] 객체 지향 프로그래밍 OOP  (0) 2024.01.29