728x90
반응형
스케줄러
Ready Queue에 존재하는 프로세스들을 특정한 우선순위를 기반으로 CPU를 할당받게 하는 역할로 장기, 중기, 단기 스케줄러가 있다.
프로세스를 스케줄링하기 위한 Queue의 종류
1. Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합
2. Ready Queue : 현재 메모리 내에 있으면서 CPU를 할당받기를 기다리는 프로세스의 집합
3. Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합
1. 장기 스케줄러(Long-Term Scheduler)
수행할 Job이 10개지만 메모리에는 6개만 올릴 수 있는 상황일 때, Job을 고르는 역할을 하는 것이 장기 스케줄러이다.
-> 따라서 Job 스케줄러라고도 부른다.
- Ready Queue에 적재하는 메모리와 디스크 사이의 스케줄링을 담당하는 스케줄러
- 디스크 상의 프로세스를 선택해 Ready Queue에 저장한다.(메모리로 적재)
- I/o bound 중심의 프로세스들과 CPU bound 프로세스들의 적절한 비율을 조절해 Ready Queue에 올린다.
- 디스크 상의 프로세스를 선택해 Ready Queue에 저장한다.(메모리로 적재)
-
- 다중 프로그래밍의 정도(메모리에 있는 프로세스의 수)를 제어한다.
- 수십 초 ~ 수 분 단위로 호출되기 때문에, 속도가 느릴 수 있다.
I/O bound process : 입출력이 많은 프로세스
CPU bound process : CPU가 계산을 해줘야 하는 비중이 큰 프로세스
2. 단기 스케줄러(Short-Term Scheduler)
장기 스케줄러를 통해서 Job을 6개를 고른 상태일 때, CPU에서 Job을 수행완료하면 남은 Job 중에 CPU가 수행할 Job을 고르는 역할을 하는 스케줄러이다.
-> 따라서 CPU 스케줄러라고도 한다.
- 실행 준비가 완료되어 Ready Queue에 있는(메모리에 존재하는) 프로세스들 중에서 선택하여 CPU를 할당하는 스케줄러
- 최소 100ms마다 수행되어 단기 스케줄러라고 한다.
3. 중기 스케줄러(Medium-Term Scheduler)
장기 스케줄러에 의해 10개 중 6개의 Job을 선별해 수행중인 상태일 때, CPU가 수행하기엔 너무 많아 문제가 생겨 6개 중 2개를 내리면 상황이 해결될 것이라 판단한다.
이 때 6개 중 어떤 Job을 내려보낼지 고르는 역할을 하는 스케줄러이다.
-> Swapper라고도 한다.
- 메모리에서 CPU를 점유하기 위해 경쟁하는 프로세스를 디스크로 보내는 스케줄러
- 다중 프로그래밍의 정도를 완화시켜준다.
- 치후에 다시 프로세스를 메모리로 불러와 중단되었던 지점에서 실행을 재개하는 Swapping의 기능을 수행한다.
728x90
반응형
'CS > 운영체제' 카테고리의 다른 글
[CS/운영체제] 프로세스의 동기화 (1) | 2024.01.30 |
---|---|
[CS/운영체제] 병행성 vs 병렬성 (0) | 2024.01.29 |
[CS/운영체제] CPU 스케줄링 (0) | 2024.01.23 |
[CS/운영체제] 교착 상태와 기아 상태 (0) | 2024.01.23 |
[CS/운영체제] 멀티 프로세스와 멀티 스레드 (0) | 2024.01.18 |