스케줄러
프로세스를 스케줄링하기 위한 Queue에는 3가지가 존재함
1) Job Queue : 현재 시스템 내에 있는 모든 프로세스들의 집합
2) Ready Queue : 현재 메모리 내에 있으면서 CPU를 할당받아 실행되기를 기다리는 프로세스들의 집합
3) Device Queue : Device I/O작업을 대기하고 있는 프로세스의 집합.
각각의 Queue에 프로세스를 넣고 빼는 스케줄러도 3가지가 존재함
장기 스케줄러 / 단기 스케줄러 / 중기 스케줄러
장기 스케줄러 (Long-term scheduler / Job scheduler)
메모리의 크기는 한정되어 있는데 많은 프로세스가 한번에 메모리에 올라오는 경우, 대용량 메모리(일반적으로 디스크)에 임시 저장.
이 pool에 저장된 프로세스 중 어떤 프로세스에 메모리를 항당해 ready queue로 보낼지 결정.
- 메모리와 디스크 사이의 스케줄링
- 프로세스에 메모리 및 자원들을 할당
- 실행중인 프로세스 수 제어
- 프로세스의 상태: new -> ready
단기 스케줄러 (Short-term scheduler / CPU scheduler)
- CPU와 메모리 사이의 스케줄링 담당
- Ready Queue의 프로세스 중 어느것을 run할지 결정.
- 프로세스에 CPU 할당
- 프로세스의 상태: ready -> running -> waiting -> ready
중기 스케줄러 (Medium-term scheduler / Swapper)
- 여유 공간 마련을 위해 프로세스를 통째로 디스크로 보냄 (swapping)
- 프로세스에게서 메모리를 할당 해제.
- 멀티프로그래밍의 degree 제어
- 현 시스템에서 메모리에 너무 많은 프로그램이 동시에 올라가는 것을 조절.
- 프로세스의 상태: ready -> suspended
cf) suspended : 외부적 이유로 프로세스의 수행이 정지된 상태로 메모리에서 내려간 상태. 프로세스가 전부 디스크로 swap out 됨.
blocked 상태와 달리 이는 외부적 이유로 suspending되었기 때문에 스스로 돌아갈 수 없음.
CS 면접 대비를 위해 아래 깃허브를 기반으로 작성 되었습니다.
github.com/JaeYeopHan/Interview_Question_for_Beginner
'Computer Science > 운영체제' 카테고리의 다른 글
[운영체제] 교착상태 (Deadlock) 및 기아상태(Starvation) (0) | 2021.05.15 |
---|---|
[운영체제] 프로세스 동기화 (0) | 2021.05.15 |
[운영체제] 동기와 비동기 (0) | 2021.05.14 |
[운영체제] CPU 스케줄러 (0) | 2021.05.14 |
[운영체제] 프로세스와 스레드의 차이 (0) | 2021.05.14 |