OS

[OS] 스케쥴러

집한구석 2021. 11. 10. 21:41
728x90

프로세스 Queue 종류

프로세스는 수행하면서 상태가 여러번 변하는데에 따라서 서비스 받아야하는 곳이 다름, 프로세스는 일반 적으로 여러개가 한번에 수행되므로 그에 따른 순서가 필요함, 이러한 순서를 대기하는 곳이 Queue이며 내부에는 각 프로세스의 PCB가 저장되어 있음, 이러한 순서를 정해주는것이 스케쥴러임

  • Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합, 프로그램이 실행되기 위한 메인 메모리의 할당순서를 기다림
  • Ready Queue : 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합, CPU 점유순서를 기다림
  • Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합, I/O 하기 위한 각 장치를 기다림

스케쥴러

  • 한정적인 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 다음 실행 시간에 실행 할 수 있는 프로세스중에 하나를 선택하는 역할
  • 다중 프로그래밍을 가능하게하는 운영체제의 동작 기법

스케쥴러 종류 

각각의 Queue에 프로세스들을 넣고 빼주는 스케쥴러 3가지 존재

장기스케쥴러 (Long-tem scheduler)

메모리는 한정되어 있는데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리에 임시로 저장되며, pool에 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 Ready Queue로 보낼지 결정하는 역할, new -> ready 상태로 전이를 승인하기 때문에 승인스케줄러라고 함, 메모리와 디스크사이의 스케쥴링을 담당

  • 메모리와 디스크 사이의 스케쥴링을 담당
  • 프로세스에 메모리를 할당
  • 실행중인 프로세스의 수를 제어 

단기스케쥴러 (Short-term scheduler)

Ready Queue에 존재하는 프로세스 중 어떤 프로세스를 Running 시킬지 결정, ready -> runing 상태로 전이시켜줌

  • CPU와 메모리 사이의 스케쥴링을 담당
  • 프로세스에 CPU를 할당
  • 프로세스의 상태 : ready -> running -> waiting -> ready

중기 스케쥴러

여유 공간 마련을 위해 프로세스를 통째로 메모리에서 디스크로 쫓아냄 (Swapping), Swapping을 통해 CPU경쟁이 심해지는 것을 방지하는 역할

  • 현 시스템에서 메모리에 너무 많은 프로그램이 동시에 올라가는 것을 조절하는 스케쥴러
  • 프로세스의 상태 : ready -> suspended

장기 스케쥴러 / 단기 스케쥴러 차이

장기 스케쥴러와 단기 스케쥴러의 가장 큰 차이점은 실행 빈도

  • 프로세스는 겨우 수밀리초로 실행되고 다음 프로세스를 처리 하기 위해선 단기 스케쥴러를 실행하기 때문에 단기스케쥴러는 빨라야함
  • 시스템에 새로운 작업이 들어오는 것은 분단위라 해당 경우 장기 스케쥴러가 실행
단기 스케쥴러 준비 / 실행 / 대기 상태 관리
중기 스케쥴러 중단된 준비 / 대기 상태 관리
장기 스케쥴러 생성 상태 관리

'OS' 카테고리의 다른 글

[OS] 캐시지역성  (0) 2021.12.26
[OS] CPU 스케쥴링  (0) 2021.11.13
[OS] 메모리 관리 전략  (0) 2021.11.08
[OS] Swap  (0) 2021.11.07
[OS] 외부 단편화 / 내부 단편화  (0) 2021.11.07