Process Scheduler
Process Scheduler
Process Scheduler
- 프로세스 스케줄러는 어떤 프로세스에게 자원을 할당할지를 결정하는 OS 커널의 모듈
- 장기, 중기, 단기 스케줄러 존재
Long Term Scheduler
- 장기 스케줄러, 작업 스케줄러로 불림
- 디스크에서 어떤 프로그램을 가져와 ready queue에 적재해서 프로세스로 만들지 결정
- 긴 간격으로 가끔 호출되므로, 속도가 느린 것이 허용됨
- I/O Bound 프로세스와 CPU Bound 프로세스를 적절히 선택해 올려야 함
- 현대 OS에서는 모든 프로세스가 실행되면 ready queue에 적재해 주므로, 장기 스케줄러를 두지 않음
- Virtual memory를 사용하기 때문에 가능
Short Term Scheduler
- CPU 스케줄러, 단기 스케줄러로 불림
- Ready queue에 있는 프로세스 중에서 어떤 프로세스에 CPU를 할당할 지 결정
- CPU가 idle 상태가 되거나 인터럽트가 발생하는 등의 사건이 생기면 호출됨
- 스케줄링 알고리즘에 따라 CPU를 할당할 프로세스를 선택
- 아주 짧은 간격으로 빈번하게 호출되므로, 속도가 굉장히 중요
Medium Term Scheduler
Swapping
을 담당하는 스케줄러로, 메모리에 있는 프로세스 수를 동적으로 조절- 많은 수의 프로세스에게 메모리를 할당해서 메모리가 부족해지면 시스템 성능에 저하가 발생 가능
- 메모리를 할당받은 일부 프로세스에게서 메모리를 빼앗아 디스크에 저장하는
swap out
을 수행- Block 된 프로세스 혹은 우선순위가 낮은 프로세스 먼저
- 반대로
swap in
을 통해swap out
된 프로세스에게 다시 메모리를 할당하기도 함
References
- https://kosaf04pyh.tistory.com/191
- https://jhnyang.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS-%EC%9E%A5%EA%B8%B0%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC-vs-%EC%A4%91%EA%B8%B0%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC-vs-%EB%8B%A8%EA%B8%B0%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90-long-medium-short-scheduler-%EB%93%A4%EC%96%B4%EB%B4%A4%EB%8B%9D