이번 시간에는 스케줄러에 대해 공부해 보겠습니다. 스케줄러란 어떤 프로세스에게 자원을 할당할지를 결정하는 운영체제 커널의 모듈을 지칭합니다. 스케줄러에는 장기, 단기, 중기 스케줄러가 있으며 이들에 대해 알아 보겠습니다.
저번 프로세스 상태에서 아래의 그림를 사용했는데 장기, 단기, 중기 스케줄러는 몇몇 부분을 의미합니다.
장기 스케줄러(long term scheduler) : 어떤 프로세스를 준비큐에 넣을 것인가 ?
작업 스케줄러라고도 부르며 어떤 프로세스를 준비비 큐에 삽입할지를 결정하는 역할을 합니다. 디스크에서 하나의 프로그램을 가져와 커널에 등록하면 프로세스가 되는데 이때 디스크에서 어떤 프로그램을 가져와 커널에 등록할지(준비큐에 등록할지) 결정합니다.
장기 스케줄러는 수십 초 내지 수 분 단위로 가끔 호출되기 때문에 상대적으로 속도가 느린 것이 허용됩니다. 또한 장기 스케줄러는 메모리에 동시에 올라가 있는 프로세스의 수를 조절하는 역할을 합니다.
하지만 현대의 시분할 시스템에서 사용되는 운영 체제에는 일반적으로 장기 스케줄러를 두지 않는 경우가 대부분입니다. 과거에는 적은 양의 메로리를 많은 프로세스들에게 할당하면 프로세스당 메모리 보유량이 적어져 장기 스케줄러가 이를 조절하는 역할을 했지만 현대의 운영체제 에서는 프로세스가 시작되면 장기 스케줄러 없이 바로 그 프로세스에 메모리를 할당해 준비 큐에 넣어주게 됩니다.
단기 스케줄러(short term scheduler) : 어떤 프로세스에게 cpu를 할당해 줄 것인가 ?
CPU스케줄러라고도 하며 준비 상태의 프로세스 중에서 어던 프로세스를 다음 번에 실행 상태로 만들 것인지를 결정합니다. 시분한 시스템에서 타이머 인터럽트가 발생하면 단기 스케줄러가 호출됩니다.
일반적으로 스케줄러라 함은 단기 스케줄러를 의미하며 단기 스케줄러는 미리 정한 스케줄링 알고리즘에 따라 cpu를 할당 할 프로세스를 선택합니다.
단기 스케줄러는 밀리 세컨트(ms) 이하의 시간 단위로 매우 빈번하게 호출되기 때문에 수행 속도가 충분히 빨라야 합니다.
중기 스케줄러(medium term scheduler) : 메모리에 적재된 프로세스 수 관리
'computer science > 운영체제' 카테고리의 다른 글
[운영체제] 문맥교환(Context Switching) (1) | 2020.02.16 |
---|---|
[운영체제] CPU 스케줄링 (0) | 2020.02.15 |
[운영체제] 프로세스 상태 (0) | 2020.02.09 |
[운영체제] 단편화? (1) | 2019.03.03 |
[운영체제] 쓰레드란? (0) | 2019.03.02 |