CPU 스케쥴링 : 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것
운영체제는 프로세스의 중요도에 맞게 프로세스가 CPU를 이용할 수 있도록 하기 위해 프로세서마다 우선순위를 부여한다.
CPU를 사용하고 싶은 프로세스들, 메모리에 적재되고 싶은 프로세스들, 특정 입출력장치를 사용하고 싶은 프로세스들을 스케줄링 큐로 대기열을 구현하고 관리한다.
준비큐 : CPU를 이용하고 싶은 프로세스들이 서는 줄
대기큐 : 입출력장치를 이용하기 위해 대기 상태에 접어든 프로세스들이 서는 줄
스케줄링 큐에서는 큐에 삽입된 순서대로 프로세스를 하나씩 꺼내어 실행하지만, 우선순위가 높은 프로세스는 먼저 실행한다.
프로세스가 CPU를 비롯한 자원을 사용하고 있더라도 운영체제가 강제로 자원을 빼앗아 다른 프로세스에 할당하는 스케줄링 방식
하나의 프로세스가 자원을 사용하고 있다면 그 프로세스가 종료되거나 스스로 대기 상태에 접어들기 전까지 다른 프로세스가 끼어들 수 없는 스케줄링 방식