CPU Scheduling

Scheduler

먼저 스케줄러란 어떤 프로세스에게 자원을 할당할 지를 결정하는 운영체제 커널의 모듈을 지칭한다. 스케줄러에는 장기, 단기, 중기 스케줄러가 있다.

또한, 프로세스를 스케줄링하기 위한 Queue에는 세 가지 종류가 존재한다.

Untitled

‼️승인 (Admitted) : 프로세스 생성이 가능하여 승인됨

‼️스케줄러 디스패치 (Scheduler Dispatch) : 준비 상태에 있는 프로세스 중 하나를 선택하여 실행시키는 것

‼️인터럽트 (Interrupt) : 예외, 입출력, 이벤트 등이 발생하여 현재 실행 중인 프로세스를 준비 상태로 바꾸고, 해당 작업을 먼저 처리하는 것

‼️입출력 또는 이벤트 대기 (I/O or Event wait) : 실행 중인 프로세스가 입출력이나 이벤트를 처리해야 하는 경우, 입출력/이벤트가 모두 끝날 때까지 대기 상태로 만드는 것

‼️입출력 또는 이벤트 완료 (I/O or Event Completion) : 입출력/이벤트가 끝난 프로세스를 준비 상태로 전환하여 스케줄러에 의해 선택될 수 있도록 만드는 것

장기 스케줄러**(Long-term scheduler or Job scheduler)**

단기 스케줄러**(Short-term scheduler or CPU scheduler)**

중기 스케줄러**(Medium-term scheduler or Swapper)**