스케줄러

.·2021년 8월 11일
0

스케줄러
프로세스를 스케줄하기 위한 Queue에는 세가지 종류가 존재한다.
Job queue : 현재 시스템 내에 있는 모든 프로세스의 집합.
Ready Queue : 현재 메모리에 올라와 있으면서 CPU를 할당받아 실행되기를 기다리는 프로세스의 집합.
Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합.

각각의 큐에 프로세스들을 넣고 빼주는 스케줄러종류도 세가지가 있다.

  1. 장기스케줄러(Job scheduler, 잡큐에서 활동하기에)
    - 메모리는 한정되어 있는데 많은 프로세서들이 한꺼번에 메모리에 올라올 경우, 보조기억장치에 임시로 저장시킨다(중기스케줄러). 이 잡큐에 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 Ready Queue로 보낼지 결정하는 역할을 한다.
    - 메모리와 디스크 사이의 스케줄링을 담당
    - 프로세스에 메모리(및 각종 리소스)를 할당(admit)
    - degree of Multiprogramming 제어( 실행중인 프로세스의 수 제어)
    - 프로세스의 상태 new -> ready(in memory)
    cf) 메모리에 프로그램이 적당히 올라가는 것이 좋다. 참고로 time sharing system에서는 장기스케줄러가 없다. 그냥 곧바로 메모리에 올라가 ready상태가 된다.
  1. 단기스케줄러(CPU Scheduler)
  • cpu와 메모리 사이의 스케줄링을 담당.

  • 레디 큐에 존재하는 프로세스 중 어떤 프로세스를 running 시킬지 결정

  • 프로세스에 cpu를 할당(scheduler dispatch)

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

  1. 중기스케줄러(swapper)
  • 여유 공간 마련을 위해 프로세스를 통째로 디스크로 쫓아냄(swapping)

  • 프로세스에게서 memory를 deallocate

  • degree of multiprogramming 제어(프로세스의 수)

  • 현 시스템에서 메모리에 너무 많은 프로그램이 동시에 올라가는 것을 조절하는 스케줄러

  • 프로세스의 상태 ready -> suspended.

  • suspended : 외부적인 이유로 프로세스의 수행이 정지된 상태로 메모리에서 내려간 상태를 의미한다. 프로세스 전부 디스크로 swap out 된다. blocked 상태는 다른 I/O 작업을 기다리는 상태이기 때문에 스스로 ready state로 돌아갈 수 있지만 이 상태는 외부적인 이유로 suspending 되었기에 스스로 돌아갈 수 없다.

profile
.

0개의 댓글