운영체제가 준비 상태(ready)인 프로세스 중 우선순위가 높은 프로세스에게 CPU 자원을 할당하는 과정
CPU스케줄링은 컴퓨터 성능과 직결되는 대단히 중요한 문제
잘못된 CPU스케줄링은 반드시 실행되어야 할 프로세스들이 실행되지 못하거나, 급하지 않는 프로세스들이 우선으로 실행되는 등 무질서한 상태가 발생할 수 있다.
프로세스마다 우선순위가 다르다.
우선순위가 높은 프로세스는 빨리 처리해야 하는 프로세스라는 의미이다.
운영체제는 각 프로세스의 PCB에 우선 순위를 명시하고, 이를 기준으로 프로세스의 처리 순서를 결정한다.
일반적으로 CPU 집중 프로세스보다 입출력 집중 프로세스의 우선순위가 더 높다.
입출력 집중 프로세스를 가능한 빨리 실행시켜 입출력장치를 끊임 없이 작동시키고, 그 다음 CPU 집중 프로세스에 집중적으로 CPU를 할당하는 것이 더 효율적이다.
또한 입출력 집중 프로세스는 입출력장치가 작업을 완료하기 전까지 대기 상태(blocked)가 되기 때문에 입출력 집중 프로세스를 먼저 처리하면 다른 프로세스가 CPU를 집중적으로 사용할 수 있어 효율적이다.
CPU 작업이 더 많은 프로세스
대기 상태(blocked)보다 실행 상태(running)에 더 많이 머무른다.
복잡한 수학 연산, 컴파일, 그래픽 처리 작업을 담당하는 프로세스들이 CPU 집중 프로세스이다.
입출력 작업이 더 많은 프로세스
실행 상태(running)보다 입출력을 위한 대기 상태(blocked)에 더 많이 머무른다.
비디오 재생, 디스크 백업 작업을 담당하는 프로세스들이 입출력 집중 프로세스이다.
준비 상태(ready)인 프로세스들의 PCB를 저장하는 큐 (아마도 우선순위큐?)
운영체제는 PCB들이 큐에 삽입된 순서대로 프로세스를 하나씩 실행하되, 그 중 우선순위가 높은 프로세스를 먼저 실행한다.
운영체제가 관리하는 큐에는 대표적으로 준비 큐와 대기 큐가 있다.
입출력장치를 이용하기 위해 대기 상태에 접어든 프로세스들이 저장되어 있는 큐
입출력이 완료되어 완료 인터럽트가 발생하면 운영체제는 대기 큐에서 작업이 완료된 PCB를 준비 상태로 변경한 뒤, 준비 큐로 이동시킨다.
프로세스가 CPU를 비롯한 자원을 사용하고 있더라도 운영체제가 프로세스로부터 자원을 강제로 빼앗아 다른 프로세스에 할당할 수 있는 스케줄링 방식
다시 말해 어느 하나의 프로세스가 자원 사용을 독점할 수 없는 스케줄링 방식
프로세스마다 정해진 시간만큼 CPU를 사용하고, 정해진 시간을 모두 소비하여 타이머 인터럽트가 발생하면 운영체제가 해당 프로세스로부터 CPU 자원을 빼앗아 다음 프로세스에 할당하는 방식도 선점형 스케줄링의 일종
장점
단점
하나의 프로세스가 자원을 사용하고 있다면 해당 프로세스가 종료되거나 스스로 대기 상태에 접어들기 전까진 다른 프로세스가 끼어들 수 없는 스케줄링 방식
다시 말해 어느 하나의 프로세스가 자원 사용을 독점할 수 있는 스케줄링 방식
다른 프로세스들은 자원을 독점 중인 프로세스의 사용이 끝날 때까지 기다려야 한다.
장점
단점