OS

스케줄러

승무_ 2023. 4. 4. 22:57

프로세스를 스케줄링하기 위한 Queue 에는 세 가지 종류가 존재한다.

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

각각의 Queue 에 프로세스들을 넣고 빼주는 스케줄러에도 크게 세 가지 종류가 존재한다.

장기스케줄러(Long-term scheduler or job scheduler)

메모리는 한정되어 있는데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리(일반적으로 디스크)에 임시로 저장된다. 이 pool 에 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 ready queue 로 보낼지 결정하는 역할을 합니다.

 

단기스케줄러(Short-term scheduler or CPU scheduler)

Ready Queue 에 존재하는 프로세스 중 어떤 프로세스를 running 시킬지 결정하는 스케줄러 입니다.

 

중기스케줄러(Medium-term scheduler or Swapper)

여유 공간 마련을 위해 프로세스를 통째로 메모리에서 디스크로 쫓아내는 역할을 합니다.

 

  • 현대 OS에는 단기, 중기, 장기 스케쥴러를 모두 사용하고 있나요?
더보기

가상 메모리의 등장으로 필요한 부분만 메모리에 올리기 때문에 중기 스케줄러를 잘 사용하지 않는다

  • 프로세스의 스케쥴링 상태에 대해 설명해 주세요.
더보기

ready- ready queue에 들어가 cpu할당 받기를 기다리는 상태

running- cpu의 할당을 받아 실행중인 상태

waiting- i/o나 특정 작업이 끝나기를 기다리는 상태 

  • Memory가 부족할 경우, Process는 어떠한 상태로 변화할까요?
더보기

할당된 메모리를 반납하고 하드 디스크로 이동하는 swap-out이 발생한다.

 

'OS' 카테고리의 다른 글

프로세스 동기화  (0) 2023.04.12
동기와 비동기의 차이  (0) 2023.04.05
CPU 스케줄러  (0) 2023.04.04
멀티 스레드  (0) 2023.04.04
프로세스와 스레드의 차이  (0) 2023.04.04