∞. 기술 면접/3. 운영체제

03. 기술면접 - 운영체제 - 스케줄러 (Schedula)

THE HEYDAZE 2021. 10. 6. 09:46
공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다

x

스케줄러

- 스케줄링(Scheduling) 이란?
  - 시스템이 실행하고자 할 때 프로세서(CPU) 를 프로그램들에게 할당하는 과정

프로세스(Process)는 자신의 임무를 모두 수행하고 사라질 때 까지 많은 큐를 돌아다닌다
이 때 프로그램들은 제한된 프로세서(CPU)를 서로 사용하려고 한다
OS 는 이러한 프로세스(Process) 중 하나를 택하는 데, 바로 스케줄러(Schedula)가 이러한 역할을 담당한다

가장 자주 사용되는 스케줄러는 장기 스케줄러단기 스케줄러이다 (주로 일괄처리 시스템에 사용)

실행 준비가 완료된 프로세스(Process) 들은 준비큐(Ready Queue)에 놓인다
프로세스는 프로세서를 할당 받을 때 까지 준비 큐에서 대기한다

 

장기 스케줄러 (Long Term Scheduler)

- 작업 스케줄러, 승인 스케줄러 라고도 한다
- 디스크 내의 작업을 어떤 순서로 메모리에 가져올지 결정하는 프로그램
- 디스크와 같은 저장장치에 작업들을 저장해놓고, 필요할 때 실행할 작업을 작업 큐에서 꺼내 준비 큐를 통해서 메인메모리에 적재
- 장기 스케줄러에 의해서 new -> ready 상태로 전이를 승인하게 됨

 

단기 스케줄러 (Short Term Scheduler)

- 프로세스 스케줄러, CPU 스케줄러 라고도 함
- 우선, CPU 에게 필요한 데이터를 확보해주고, 메모리에 있는 프로세스 중 하나를 선택해서 프로세서(CPU)에게 할당함
- 준비큐에 있는 프로그램 중 먼저 도착한 프로세스에게 CPU 할당  (= dispatch)
- 단기 스케줄러에 의해서 ready -> running 상태로 전이

 

요약
  장기 스케줄러   단기 스케줄러  
new ready running

흐름