[운영체제] long term, medium term, short term scheduler (장기, 중기, 단기 스케줄러)

강민혁·2023년 3월 12일
0

기술면접 | 운영체제

목록 보기
12/32

long term, medium term, short term scheduler (장기, 중기, 단기 스케줄러)에 대해 설명하세요

Keyword

작업 스케줄러, 준비 queue, 생성 상태, swapping, CPU 스케줄러, ready 상태, running 상태


Script

장기 스케줄러는 작업 스케줄러(job scheduler)라고도 부르며, 어떤 process를 준비 queue에 삽입할지를 결정하는, process의 생성 상태에 관여하는 스케줄러입니다.

중기 스케줄러는 너무 많은 process에 메모리를 할당해서 시스템의 성능이 저하되는 경우에, 메모리에 적재된 process의 수를 조절하기 위한 스케줄러입니다. 주로 swapping을 통해 문제를 해결합니다.

단기 스케줄러는 CPU 스케줄러(CPU Scheduler)라고도 부르며, ready 상태의 process 중에서 어떤 process를 다음 번에 running(실행) 상태로 만들지 결정하는 스케줄러입니다.

일반적으로 스케줄러라고 하면, 단기 스케줄러를 의미하며 미리 정한 스케줄링 알고리즘에 따라서 CPU를 할당할 process를 선택합니다.


Additional

그림

suspended state(중지 상태) - suspended ready(중지 준비 상태), suspended block(봉쇄 중지 상태)

중기 스케줄러의 swapping으로, process의 상태에는 중지(suspended, stopped) 상태가 추가되었고, 중지 상태에는 suspended ready(중지 준비 상태), suspended block(봉쇄 중지 상태)가 있다.

중지 상태는 외부적인 이유로, process 수행이 정지된 상태로 메모리에서 내려간 상태를 말한다. blocked 상태와 다른 점은, blocked 상태는 다른 I/O 작업을 기다리는 상태이기 때문에 스스로 ready state로 돌아갈수 있지만, 중지 상태는 외부적인 이유로 suspending 되었기 때문에 스스로 ready state로 돌아갈 수 없다.

suspended ready(중지 준비 상태)는 ready 상태의 process가 swap out 된 경우,
suspended block(준지 봉쇄 상태)는 blocked 상태의 process가 swap out 된 경우를 의미한다.

중기 스케줄러의 스와핑(Swapping)

만약 메모리에 너무 많은 수의 process가 적재되어 process 당 보유하고 있는 메모리량이 극도로 적어지면, CPU 수행에 당장 필요한 process의 주소 공간조차도 메모리에 올려놓기 어려운 상황이 발생한다.

이때, 가상메모리를 사용하게 되고, 너무 많은 process가 가상메모리에 적재되면 하드디스크 I/O가 과다해져서 시스템이 거의 멈추게 된다.

이 경우에, 메모리에 올라와 있는 Process 중 일부의 메모리를 통째로 빼앗아서 디스크의 swap 영역에 저장해둔다. 이 행위를 swap out이라고 한다.

swap out이 발생할 때는, 당장 CPU 획득 가능성이 낮은, 즉 blocked 상태(stopped 상태)에 있는 process들을 첫번째로 swap out 시킨다.

만약 이렇게 봉쇄 상태의 process들을 swap out 시켜도 문제가 해결되지 않는 경우, 중기 스케줄러는 timer interrupt가 발생하여 ready queue로 이동하는 process들을 추가적으로 swap out 시킨다.

swap out된 process들은 메모리에 여유가 생기면 다시 swap in 한다.


Reference

Book - 혼자 공부하는 컴퓨터 구조+운영체제

OS-스케줄러의 종류: 장기, 중기, 단기 스케줄러

profile
with programming

0개의 댓글