Penjadwalan CPU adalah permasalahan menentukan suatu proses mana yang ready queue (dalam antrian) dan di ekseskusi.
dalam penjadwalan CPU ada yang bersifat preemtive dan bersifat non-preemtive.

  1. Preemtive, adalah penjadwalan CPU yang dapat ditunda atau disela oleh proses lain. Proses yang dapat di preemtive adalah Running ke Ready State dan Waiting ke Ready State.
  2. No-Preemtive adalah penjadwalan CPU yang tidak dapat ditunda atau disela oleh proses lain. Proses yang dapat di preemtive adalah Running ke Waiting Time dan Terminate.
Ada beberapa algoritma penjadwalan CPU, antara lain:

A. First Come First Served (FCFS)
Proses yang pertama kali datang akan dieksekusi atau dikerjakan terlebih dahulu sampai selesai tanpa bisa disela oleh proses lain.
Contoh soal FCFS:
1. Ada 3 proses yang datang berurutan dibawah ini. tentukan rata-rata waiting time nya?
 Jawaban:
gambarkan terlebih dahulu gant chart nya terlebih dahulu,
pada gant chart tersebut dapat dilihat:
P1 pertama kali datang langsung di proses sehingga waktu tunggunya 0
P2 menunggu penyelesaian P1 sehingga waktu tunggunya 24
P3 menunngu penyelesaian P1 dan P3 (24+3) sehingga waktu tunggunya 27
Rata-rata waktu tunggunya WT = (WT P1 + WT P2 + WT Pn) / n
AWT = (0 + 24 + 27) / 3
AWT = 17

2. Ada 4 proses yang datang dengan waktu kedatangan (arival time), tentukan rata-rata waiting time nya?
Jawaban:
gambarkan terlebih dahulu gant chart nya,

pada gant chart tersebut dapat dilihat:
P1 datang pada waktu ke 0, langsung di eksekusi sehingga WT P1 = 0
P2 datang pada waktu ke 2, dieksekusi pada waktu ke 7, sehingga WT P2 = 7-2 = 5
P3 datang pada waktu ke 4 dieksekusi pada waktu ke 11, sehingga WT P3 = 11-4 = 7
P4 datang pada waktu ke 5 dieksekusi pada waktu ke 12 sehingga WT P4 = 12-5 = 7
Rata-rata waktu tunggunya WT = (WT P1 + WT P2 + WT P3 + WT P4) / 4

AWT = (0 + 5 + 7 + 7) / 4
AWT = 4,75

B. Short Job First Serverd (SFJ)
SFJ adalah penjadwalan CPU dimana proses yang memiliki waktu pengerjaan (burst time) terkecil dikerjakan terlebih dahulu.
Jika ada du atau lebih proses yang memiliki burst time yang sama pada waktu pengerjaan yang sama maka sistem FJFS digunakan.
SFJ dapat berupa preemtive dan non-preemtive 
Contoh soal:
1. Lakukan penjadwalan SFJ preemtive, dan tentukanlah AWT nya?
Jawaban:
Gant chart nya
pada gant chart tersebut dapat dilihat:
P1 datang pada waktu ke 0 dan langsung dieksekusi, namun pada waktu ke 2 datang P2. sehingga bandingkan Sisa BT P1 = 7 - 2 = 5 dengan BT P2 = 4. BT P2 lebih kecil daripada BT P1, sehingga P1 ditunda, P2 dijalankan.
P2 datang dan dijalankan pada waktu ke 2, namun pada waktu ke 4 datang P3. sehingga bandingkan BT P1 = 5, BT P2 = 4 - 2 = 2, dan BT P3 = 1. BT P3 lebih kecil dari P2 dan P1, sehingga P2 dan P1 ditunda, P3 dijalankan.
P3 datang dan dijalankan pada waktu ke 4 dengan BT P3 = 1 selesai pada waktu ke 5. sehingga WT P3 = 0
Pada waktu ke 5 ada tiga proses yang menunggu untuk dikerjakan yaitu P1, P2, dan P4. sehingga kita bandingkan BT tersisanya, P1 = 5, P2 = 2, dan P4 = 4. BT P2 lebih kecil dari BT P1 dan P4, sehingga P2 dilanjutkan.
P2 yang tetunda pada waktu ke 4, dilanjutkan pada waktu ke 5 dengan 2 BT tersisa hingga selesai pada waktu ke 7. P2 dilakukan dua kali proses, proses pertama pada waktu ke 2 sehingga WTnya = 2-2 = 0, proses kedua pada waktu ke 5 dan dijalan terakhir kali pada waktu ke 4 sehingga WTnya = 5-4 = 1. WT P2 = 0 + 1 = 1.
Pada waktu ke 7, masih ada P1 dan P4, dibandingkan sisa BTnya. BT P1 = 5 dan BT P4 = 4. BT P4 lebih kecil dari BT P5, sehingga P4 dijalankan.
P4 yang datang pada waktu ke 5, dijalan pada waktu ke 7. sehingga WT P4 = 7-5 = 2.
Terakhir P1 yang tertunda pada waktu ke 2. dilanjutkan pada waktu ke 11 dengan 5 BT tersisa. P1 dilakukan dua kali proses, proses pertama pada waktu ke 0 sehingga WTnya = 0-0 = 0, proses kedua pada waktu ke 11 dan dijalan terakhir kali pada waktu ke 2 sehingga WTnya = 11-2 = 9. WT P1 = 0+9 = 9.
 Rata-rata waktu tunggunya WT = (WT P1 + WT P2 + WT P3 + WT P4) / 4

AWT = (9 + 1 + 0 + 2) / 4
AWT = 3

2. Lakukan penjadwalan SFJ non-preemtive, dan tentukanlah AWT nya?
Jawaban:
Gant chart
P1 datang pada waktu ke 0, langsung dikerjakan sampai selesai. WT P1 = 0.
pada menit ke 7 (selesainya P1) ada tiga proses yang menunggu, sehingga bandingkan BTnya. BT P3 lebih kecil sehingga dijalankan.
P3 datang pada waktu ke 4 dijalankan pada waktu ke 7, WT P3 = 7-4 = 3.
pada menit ke 8 (selesainya P3) ada 2 proses yang menunggu, sehinga bandingkan BTnya. BT P2 dan P4 sama maka lakukan FCSF, sehingga P2 dijalankan.
P2 datang pada waktu ke 2 dijalankan pada waktu ke 8, WT P3 = 8-2 = 6.
Terakhir, P4 datang pada waktu ke 5 dijalankan waktu ke 12 (selesainya P2), WT P4 = 12-5 = 7.
 Rata-rata waktu tunggunya WT = (WT P1 + WT P2 + WT P3 + WT P4) / 4
AWT = (0 + 6 + 3 + 7) / 4
AWT = 4
C. Priority Scheduling (Prioritas)
Priority Scheduling adalah proses penjadwalan dengan prioritas terendah akan dikerjakan terlebih dahulu.
Jika terdapat dua proses atau lebih yang sama maka lakukan FCFS.
Contoh soal:
1. Hitung AWT dengan Priority Scheduling?
Jawaban:
Gant Chart
Prioritas 1 adalah P2, sehingga WT P1 = 0
Prioritas 2 adalah P5, sehingga WT P5 = 1
Prioritas 3 P1 dan P3, lakukan FCFS, karena P1 lebih dulu dari P3 maka P1 jalankan.
sehingga WT P1 = 6
Lanjutkan P3, sehingga WT P3 = 16
Prioritas 4 adalah P4, sehingga WT P4 = 18
 Rata-rata waktu tunggunya WT = (WT P1 + WT P2 + WT P3 + WT P4 + WT P5) / 5

AWT = (0 + 1 + 6 +16 + 18) / 5
AWT = 8,2


D. Round Robin (RR)