KATA PENGANTAR
Puji syukur kepada Allah SWT atas karunia, hidayah dan nikmatnya penulis dapat
menyelesaikan makalah tentang “CPU Scheduling (Penjadwalan CPU)”. Penulisan makalah ini
bertujuan untuk memenuhi salah satu tugas yang diberikan oleh dosen pengampu mata kuliah
Sistem Operasi. Dalam hal ini penulis menyajikan beberapa pembahasan mengenai Konsep
Dasar, Kriteria Penjadwalan, dan Algoritma Penjadwalan .
Kami sadar bahwa makalah yang kami susun ini masih banyak kekurangan. Mungkin dari
segi bahasa, susunan kalimat atau hal lain yang tidak kami sadari. Oleh sebab itu, kami
membutuhkan kritik dan saran kepada segenap pembaca yang bersifat membangun untuk lebih
meningkatkan kualitas di kemudian hari. Akhir kata kami ucapkan terima kasih yang sebesar-
besarnya atas perhatiannya.
Penyusun
i
DAFTAR ISI
KATA PENGANTAR..................................................................................................................................i
DAFTAR ISI...............................................................................................................................................ii
BAB I..........................................................................................................................................................1
1. Latar Belakang.................................................................................................................................1
2. Tujuan..............................................................................................................................................1
BAB II.........................................................................................................................................................2
1. Konsep Dasar...................................................................................................................................2
1.1. CPU Scheduler........................................................................................................................4
1.2. Dispatcher...............................................................................................................................5
2. Kriteria Penjadwalan.......................................................................................................................5
3. Algoritma Penjadwalan...................................................................................................................6
1. First-Come First-Served Scheduling (FCFS)...............................................................................6
2. Shortest Job First Scheduler (SJF)...............................................................................................7
3. Priority Scheduling......................................................................................................................9
4. Round-Robin Scheduling...........................................................................................................10
ii
iii
BAB I
PENDAHULUAN
1. Latar Belakang
Scheduling merupakan konsep utama dalam multitasking, sistem operasi multiprosesor
dansistem operasi real-time. Scheduling adalah cara/metode berbagai proses dilaksanakan
padaCPU, dimana biasanya terdapat lebih banyak proses yang dijalankan daripada jumlah
CPUyang tersedia. Hal ini diatur oleh software scheduler dan dispatcher.
Tujuan dari multiprogramming adalah untuk menjaga beberapa proses berjalan setiap saat
untuk memaksimalkan penggunaan CPU. Tujuan dari pembagian waktu adalah untuk sering
mengalihkan CPU di antara proses sehingga pengguna dapat berinteraksi dengan setiap program
saat CPU sedang berjalan. Untuk sistem uniprosesor, tidak lebih dari satu proses dapat berjalan.
Jika ada lebih banyak proses, proses lain harus menunggu hingga CPU kosong dan dapat dijadwal
ulang.
2. Tujuan
a. Untuk memahami tentang konsep dasar CPU scheduling
b. Untuk memahamim kriteria yang diperlukan untuk CPU scheduling
c. Untuk memahami beberapa algoritma penjadwalan CPU yang terdiri dari algoritma First
Come First Serve, Shortest Job First, Priority dan Round Robin
1
BAB II
PEMBAHASAN
1. Konsep Dasar
Pada sistem multiprogramming, selalu akan terjadi beberapa proses berjalan dalam
suatu waktu. Sistem multiprogramming diperlukan untuk memaksimalkan utilitas CPU.
Sedangkan pada uniprogramming hal ini tidak akan terjadi, karena hanya ada satu proses
yang berjalan pada saat tertentu. Bila ada proses yang lebih dari satu maka yang lain harus
mengantri sampai CPU bebas.
Penjadwalan adalah fungsi dasar dari suatu sistem operasi. Hampir semua sumber
komputer dijadwalkan sebelum digunakan. CPU yaitu salah satu sumber dari komputer yang
penting yang menjadi sentral dari sentral penjadwalan di sistem operasi. Maksimum utilisasi
CPU diperoleh dengan multiprogramming CPU-I / O Burst Cycle – Eksekusi proses terdiri
dari siklus eksekusi CPU dan I / O menunggu CPU burst distribusi.Ide dari multi porgamming
sangat sederhana. Ketika sebuah proses dieksekusi, yang lain harus menunggu sampai selesai.
Di system komputer yang sederhana CPU akan banyak dalam posisi idle.Semua waktu ini
sangat terbuang,. Dengan multiprogramming kita mencoba menggunakan waktu secara
produktif. Beberapa proses di simpan dalam memori dalam satu waktu. Ketika proses harus
menunggu, sistem operasi mengambil CPU untuk memproses proses tersebut dan
meninggalkan proses yang sedang dieksekusi.
Pada saat proses dijalankan terjadi siklus eksekusi CPU dan menunggu I/O yang
disebut dengan siklus CPU-I/O burst. Eksekusi proses dimulai dengan CPU burst dan
dilanjutkan dengan I/O burst, diikuti CPU burst lain, kemudian I/O burst lain dan
seterusnya seperti pada gambar dibawah ini.
2
Gambar 1 : Siklus CPU-I/O Burst
Pada saat suatu proses dieksekusi, terdapat banyak CPU burst yang pendek dan
terdapat sedikit CPU burst yang panjang. Program yang I/O bound biasanya sangat pendek
CPU burst nya, sedangkan program yang CPU bound kemungkinan CPU burst nya sangan
lama. Hal ini dapat digambarkan dengan grafik yang eksponensial atau hiper eksponensial
3
seperti pada gambar diatas. Oleh karena itu sangat penting pemilihan algoritma penjadwalan
CPU. CPU burst adalah tahapan dimana proses sedang dijalankan di CPU, sedangkan I/O
burst adalah tahapan dimana proses menunggu suatu I/O. Suatu program I/O bound
biasanya memiliki CPU burst yang pendek, sebaliknya program CPU bound memiliki CPU
burst yang lebih panjang.
Pada saat CPU menganggur, maka sistem operasi harus menyeleksi proses-
proses yang ada di memori utama (ready queue) untuk dieksekusi dan mengalokasikan
CPU untuk salah satu dari proses tersebut. Seleksi semacam ini disebut dengan short-
term scheduler (CPU scheduler). Keputusan untuk menjadwalkan CPU mengikuti
empat keadaan dibawah ini :
1. Berpindah dari keadaan running ke waiting;
2. Berpindah dari keadaan running ke ready;
3. Berpindah dari keadaan waiting ke ready;
4. Terminate.
Apabila model penjadwalan yang dipilih menggunakan keadaan 1 dan 4, maka
penjadwakan semacam ini disebut non-peemptive. Sekali CPU ditetapkan untuk suatu
proses maka proses tidak akan melepaskan CPU hingga terminate atau dalam keadaan
waiting.
4
1.2. Dispatcher
Dispatcher adalah suatu modul yang akan memberikan kontrol pada CPU
terhadap penyeleksian proses yang dilakukan selama short-term scheduling. Fungsi-
fungsi yang terkandung di dalam-nya meliputi:
1. Switching context;
2. Switching ke user-mode;
3. Melompat ke lokasi tertentu pada user program untuk memulai program.
2. Kriteria Penjadwalan
Suatu Algoritma penjadwalan CPU yang berbeda dapat mempunyai nilai yang berbeda
untuk system yang berbeda. Banyak kriteria yang bisa dipakai untuk menilai algoritma
penjadwalan CPU. Ada beberapa kriteria yang digunakan untuk melakukan pembandingan
algoritma penjadwalan CPU, antara lain:
1. CPU utilization : membuat CPU selalu dalam keadaan sibuk (Menggunakan CPU
semaksimal mungkin). Utilitas CPU dinyatakan dalam bentuk prosen yaitu 0-100%.
Namun dalam kenyataannya hanya berkisar antara 40-90%.
2. Throughput : Adalah banyaknya proses yang selesai dikerjakan dalam satu satuan
waktu.
3. Turnaround time : Banyaknya waktu yang diperlukan untuk mengeksekusi proses,
dari mulai menunggu untuk meminta tempat di memori utama, menunggu di ready
queue, eksekusi oleh CPU, dan mengerjakan I/O.
4. Waiting time : Waktu yang diperlukan oleh suatu proses untuk menunggu di ready
queue. Waiting time ini tidak mempengaruhi eksekusi proses dan penggunaan I/O.
5. Response time : Waktu yang dibutuhkan oleh suatu proses dari minta dilayani hingga
ada respon pertama yang menanggapi permintaan tersebut.
6. Fairness : Meyakinkan bahwa tiap-tiap proses akan mendapatkan pembagian waktu
penggunaan CPU secara terbuka (fair).
5
3. Algoritma Penjadwalan
Pada dasarnya, scheduling adalah kegiatan memilih sebuah proses dalam ready queue
untuk dieksekusi CPU. Butuh algoritma agar pilihan tadi memberi hasil optimal sesuai kriteria.
Terdapat beberapa algoritma penjadwalan CPU :
Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU
akan dilayani terlebih dahulu. Pada skema ini, proses yang meminta CPU
pertama kali akan dialokasikan ke CPU pertama kali.
Contoh :
Misalnya terdapat tiga proses yang dapat dengan urutan P1, P2, dan P3 denganwaktu CPU-
burst dalam milidetik yang diberikan sebagai berikut :
P1 24
P2 3
P3 3
P1 P2 P3
0 24 27 30
Waktu tunggu (Waiting time) untuk P1 adalah 0, P2 adalah 24 dan P3 adalah 27 sehingga
rata-rata waktu tunggu (Average waiting time) adalah (0 + 24 + 27)/3 = 17 milidetik.
6
Sedangkan apabila proses datang dengan urutan P2, P3 dan P1, hasil dari penjadwalan CPU
dapat dilihat pada gant chart berikut:
P2 P3 P1
0 3 6 30
Waktu tunggu sekarang untuk P1 adalah 6, P2 adalah 0 dan P3 adalah 3 sehingga rata-
rata waktu tunggu adalah (6 + 0 + 3)/3 = 3 milidetik. Rata-rata waktu tunggu kasus ini
jauh lebih baik dibandingkan dengan kasus sebelumnya. Pada penjadwalan CPU
dimungkinkan terjadi Convoy effect apabila proses yang pendek berada pada proses
yang panjang.
Pada penjadwalan SJF, proses yang memiliki CPU burst psling kecil dilayani terlebih
dahulu. Terdapat dua skema :
a. Non preemptive, bila CPU diberikan pada proses, maka tidak bisa ditunda sampai CPU
burst selesai.
7
b. Preemptive, jika proses baru datang dengan panjang CPU burst lebih pendek dari sisa
waktu proses yang saat itu sedang dieksekusi, proses ini ditunda dan diganti dengan
proses baru. Skema ini disebut dengan Shortest-Remaining-Time-First (SRTF).
0 3 7 8 12 16
P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16
8
suatu rata-rata eksponensial yang ditentukan dari CPU burst sebelumnya atau
“Exponential Average.
n1
t 0 (1 )
n
dengan:
n1
= panjang CPU burst yang diperkirakan
0
= panjang CPU burst sebelumnya
n
= panjang CPU burst yang ke-n (yang sedang berlangsung)
3. Priority Scheduling
Setiap proses akan mempunyai nomor prioritas (integer). CPU dialokasikan untuk
proses yang memiliki prioritas paling tinggi (nilai integer terkecil biasanya merupakan
prioritas terbesar). Jika beberapa proses memiliki prioritas yang sama, maka akan digunakan
algoritma FCFS. Penjadwalan berprioritas terdiri dari dua skema yaitu :
Non-preemptive : proses dengan prioritas tinggi akan mengganti pada saat pemakaian
time-slice habis
Preemptive : proses dapat di interupsi jika terdapat prioritas tinggi yang memerlukan
CPU.
SJF adalah contoh priority scheduling dimana prioritas ditentukan oleh waktu
pemakaian CPU berikutnya. Permasalahan yang muncul dalam penjadwalan prioritas adalah
indefinite blocking atau starvation, dimana proses dengan prioritas terendah mungkin tidak
akan pernah dieksekusi. Solusi untuk algoritma penjadwalan prioritas adalah aging, prioritas
akan naik jika proses makin lama menunggu waktu jatah CPU. Starvation adalah kondisi
dimana proses yang kekurangan resource tidak akan pernah mendapat resource yang
dibutuhkan terjadi setelah deadlock.
Contoh :
Misalnya terdapat lima proses P1, P2, P3, P4 dan P5 yang datang secara berurutan dengan
CPU burst dalam milidetik.
9
P2 1 1
P3 2 3
P4 1 4
P5 5 2
Penjadwalan proses dengan algoritma priority dapat dilihat pada gant chart berikut :
P2 P5 P1 P3P4
0 1 6 16 18 19
4. Round-Robin Scheduling
Algoritma Round Robin (RR) dirancang untuk sistem time sharing. Algoritma ini
mirip dengan penjadwalan FCFS, namun bersifat preemptive. Setiap proses mendapat jatah
waktu CPU (time slice/quantum time) tertentu misalkan 10 atau 100 milidetik. Setelah waktu
tersebut habis, maka proses akan ditunda dan dipindahkan ke ready queue.
Jika suatu proses memilkik CPU burst lebih kecil dibandingkan dengan waktu
quantum, maka proses tersebut akan melepaskan CPU jika telah selesai bekerja, sehingga CPU
dapat segera digunakan oleh proses selanjutnya. Sebaliknya, jika suatu proses memiliki CPU
burst yang lebih besar dibandingkan dengan waktu quantum, maka proses tersebut akan
dihentikan sementara jika sudah mencapai waktu quantum, dan selanjutnya mengantri kembali
pada posisi ekor dari ready queue, CPU kemudian menjalankan proses berikutnya.
Jika terdapat n proses di “ready queue” dan waktu quantum q (milidetik), maka setiap
proses akan mendapatkan 1/n dari waktu CPU. Proses tidak akan menunggu lebih lama dari:
(n-1) q time units. Performasi algoritma round robin dapat dijelaskan sebagai berikut, jikaq
besar, maka yang digunakan adalah algoritma FIFO, tetapi jika q kecil makan sering terjadi
context switch.
Contoh :
Misalkan ada 3 proses yang meminta pelayanan CPU dengan quantum-time sebesar 4
milidetik.
10
Penjadwalan proses dengan algoritma round robin dapat dilihat pada gant chart berikut:
P1 P2 P3 P1 P2 P1
0 4 8 11 15 16 18
Waktu turnaround juga tergantung ukuran waktu quantum. Seperti pada Gambar 4,
rata-rata waktu turnaround tidak meningkat bila waktu quantum dinaikkan. Secara umum,
rata-rata waktu turnaround dapat ditingkatkan jika banyak proses menyelesaikan CPU
burst berikutnya sebagai satu waktu quantum. Sebagai contoh, terdapat tiga proses
masing-masing 10 unit waktu dan waktu quantum 1 unit waktu, rata-rata waktu
turnaround adalah 29. Jika waktu quantum 10, sebaliknya, rata-rata waktu turnaround
turun menjadi 20.
11
Gambar 4 : Menunjukkan waktu turnaround berbeda pada waktu
quantum yang berbeda
12