CPU 스케줄링(scheduling)
→ 다중 프로그램 운영체제의 기본으로, 운영체제는 CPU를 프로세스 간에 교환함으로써 컴퓨터를 보다 생산적으로 만든다.
- 이번 단원에서는 기본적인 스케줄링 개념 및 여러 스케줄링 알고리즘을 학습한다!
1. 기본 개념
→ 코어가 하나인 시스템에서는 한순간에 오직 하나의 프로세스만이 실행될 수 있다.
- 나머지 프로세스는 CPU의 코어가 가용 상태가 되어 다시 스케줄 될 수 있을 때까지 기다려야 한다.
다중 프로그래밍의 목적
→ CPU 이용률을 최대화하기 위해, 항상 실행 중인 프로세스를 가지게 하는 것이다.
- 하나의 프로세스는 어떤 입출력 요청이 완료되기를 기다려야만 실행된다.
- 단순한 컴퓨터 시스템에서 CPU는 놀고 있게 되고, 대기 시간은 낭비되며 유용한 작업도 수행하지 못한다.
→ 다중 프로그래밍에서는 이러한 시간을 생산적으로 활용하려고 시도한다.
- 다수의 프로세스를 메모리 내에 유지하고, 어떤 프로세스가 대기해야 할 경우 운영체제는 CPU를 그 프로세스로부터 회수한다.
스케줄링은 운영체제의 기본적인 기능이며, 운영체제 설계의 핵심이 된다.