CS/OperatingSystem

스케줄러

whyWhale 2021. 4. 17.

스케줄러


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

 

 

스케줄러 작업 상태


  •  Jop Queue
    • 현재 시스템 내에 있는 모든 프로세스의 집합.
  • Ready Queue
    • 현재 메모리 내에 있으면서 CPU를 할당받기 위해 기다리는 프로세스의 집합.
  • Device Queue
    • I/O 작업을 대기하고 있는 프로세스의 집합.

 

스케줄러 종류


  • 장기 스케줄러 (JobScheduler)
    • 디스크와 메모리 사이의 스케줄링 담당. 
    • 메모리는 제한적인데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리(디스크)에 임시로 저장된다.
    • 이 Pool에 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 Ready Queue로 보낼지 결정하는 역할.
      • 프로세스에 memory(및 각종 자원들(리소스들))을 할당(admit)
      • degree of Multiprogramming 제어 (실행 중 프로세스 수의 제어)
      • 프로세스의 상태 ( new -> ready( in memory)

 

  • 중기 스케줄러 (Swapper)
    • 여유 공간 마련을 위해 프로세스를 통쨰로 메모리에서 디스크로 쫓아내는 것 (swapping)
    • 프로세스에게서 memory를 deallocate
    • degree of Multiprogramming 제어
    • 현 시스템에서 메모리에 너무 많은 프로그램이 동시에 올라가는 것을 조절하는 스케줄러.
    • 프로세스의 상태 ( ready -> suspended )
      • ※ suspended
        • 외부적인 이유로 프로세스 수행이 정지된 상태로 메모리에서 내려간 상태를 의미한다.
        • 프로세스 전부 디스크로 swqp out된다. 
        • block 상태는 다른 I/O작업을 기다리는 상태이기 때문에 스스로 ready state로 들어갈 수 있지만, 이 상태는 외부적인 이유로 suspending 되었기 때문에 스스로 돌아갈 수 없는 차이가 있다.

 

  • 단기 스케줄러 (CPU Scheduler)
    • CPU와 메모리 사이의 스케줄링 담당.
    • Ready Queue에 존재하는 프로세스 중 어떤 프로세스를 running 시킬지 결정.
    • 프로세스에 CPU를 할당( dispatcher )
    • 프로세스의 상태
      • ready -> running -> waiting -> ready

'CS > OperatingSystem' 카테고리의 다른 글

프로세스 동기화  (0) 2021.04.21
Blocking, Non-Blocking and Async  (0) 2021.04.21
스케줄러 알고리즘  (0) 2021.04.19
멀티 스레드, 멀티 프로세스  (0) 2021.04.17
프로세스와 스레드  (0) 2021.04.16

댓글