01. 운영체제의 개요 02. 컴퓨터의 구조와 성능 향상 03. 프로세스와 스레드 04. CPU 스케줄링 05. 프로세스 동기화 06. 교착 상태 07. 물리 메모리 관리 08. 가상 메모리의 기초 09. 가상 메모리 관리 10. 입출력 시스템과 저장장치 11. 파일 시스템 12. 네트워크와 분산 시스템
스케줄링의 개요
CPU 스케줄러
스케줄링은 여러 프로세스의 상황을 고려하여 CPU와 시스템 자원을 어떻게 배정할지 결정하는 일을한다. 스케줄링은 규모에 따라 고수준 스케줄링, 중간 수준 스케줄링, 저수준 스케줄링으로 구분된다.
고수준 스케줄링
가장 큰 틀에서 이루어지는 CPU 스케줄링이다. 시스템 내의 전체 작업 수를 조절하고 어떤 작업을 시스템이 받아들일지 또는 거부할지를 결정한다. 고수준 스케줄링에 따라 시스템에서 실행 가능한 총 프로세스의 갯수가 정해진다.
저수준 스케줄링
가장 작은 단위의 스케줄링이다. 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 일이다.
중간 수준 스케줄링
고수준과 저수준 사이에서 일어나는 스케줄링이다. 중지나 활성화로 시스템의 활성화된 프로세스 수를 조절하여 과부하를 막는다.
스케줄링의 목적
CPU 스케줄링의 원래 목적은 모든 프로세스가 공평하게 작업하도록 하는 것이다.
스케줄링의 목적 - 공평성 - 효율성 - 안정성 - 확정성 - 반응 시간 보장 - 무한 연기 보장