0. 스케줄링의 목적
- CPU나 자원을 효율적으로 사용하기 위함
- 멀티 프로그래밍에서 CPU 효율을 극대화 하기 위함
1. 스케줄러 종류
- 장기 스케줄러 ( Long Term )
- 단기 스케줄러 ( Short Term )
- 중기 스케줄러 ( Medium Term )
2. 장기 스케줄러
- 디스크와 메모리 사이의 스케줄링을 관리
- 디스크에 비해 메모리 크기는 한정되어 있음으로 수행해야할 일(pool)에서 선택적으로 프로세스에 메모리를 할당하여
Ready Queue로 보내는 역할
- 즉, 실행을 위해 메모리에 적재한다.
- I/O가 자주 필요한 프로세스들은 I/O 시간이 오래 걸리므로 이러한 프로세스들만 많이 올라가면 CPU가 비효율적으로
사용됨
- CPU 사용이 많은 프로세스들만 올라가면 사용자는 불편함을 느낄 수 있음
- 적절히 섞어서 올려주는 것이 장기 스케줄러의 역할
3. 단기 스케줄러
- 메모리와 CPU사이의 스케줄링을 관리
- Ready Queue에서 어떤 프로세스를 Running 할 지 결정
- 10개의 프로세스가 장기 스케줄러에 의해 Ready Queue로 올라왔다고 가정하자
- CPU는 이 중 하나의 프로세스를 선택해서 실행해야 하는데 그것을 스케줄링 해주는 것이 단기 스케줄러
(CPU 스케줄러라고도한다.)
- CPU 자원을 효율적으로 사용하기 위함이다.
- 사용자에게 여러개의 프로세스를 동시실행되고 있는 것 처럼 보이게 하기위해 아주 짧은 시간으로 쪼개서 스케줄링
- 또는 A프로세스를 실행하다가 I/O를 해야하면 이를 기다리는 시간동안 B프로세스를 올려서 작업한다.
- 매우 짧은 시간단위로 수행되므로 단기 스케줄러라고 한다.
4. 중기 스케줄러
- 너무 많은 프로세스가 메모리에 올라와있을 경우 이를 다시 디스크로 보낸다.
- CPU를 사용하려는 프로세스들 사이에서 중재하여 일시 보류, 재활성화를 수행한다. (swapper라고도 한다.)
- 일정시간 이상 CPU에서 수행되지 않았거나, 우선순위를 기준으로 판단하여 내려보낸다.
'학부생 공부 > 운영체제(os)' 카테고리의 다른 글
멀티 프로세스 VS 멀티 스레드 (0) | 2021.09.19 |
---|---|
Context Switching ( 문맥 교환 ) (0) | 2021.05.27 |
프로그램, 프로세스와 쓰레드 (0) | 2021.05.19 |