Nama : Novan Nurdiana
Kuis part. 6
Penjadwalan CPU
1) Apa yang di maksud penjadwalan CPU?
Penjadwalan CPU adalah (CPU scheduling) adalah
suatu pengaturan proses-proses yang adadalam cpu. Penjadwalan ini sangatlah
penting karena menentukan performa dari sebuah cpu.Penjadwalan cpu adalah dasar
dari multiprogramming karena dengan adalnya alokasi itu maka proses-proses
itu mendapatkan alokasi resource dari CPU.
2) Sebutkan Kriteria Penjadwalan yang Optimal?
Kriteria
untuk mengukur dan optimasi kinerje penjadwalan :
·
Adil (fairness)Adalah
proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu pemroses yang
sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami
kekurangan waktu.
·
Efisiensi
(eficiency) Efisiensi atau utilisasi pemroses dihitung dengan perbandingan
(rasio) waktu sibuk pemroses.
·
Waktu tanggap
(response time).Waktu tanggap berbeda untuk : Sistem interaktif
·
Didefinisikan
sebagai waktu yang dihabiskan dari saat karakter terakhir dari perintah
dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap
ini disebut terminal response time.
·
Sistem waktu
nyata
·
Didefinisikan
sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi
pertama rutin layjkusnendaranan yang dimaksud dieksekusi, disebut event
response time.
·
Turn around time Adalah
waktu yang dihabiskan dari saat program atau job mulai masuk ke system sampai
proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan di
dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan
job) dan waktu menunggu, yaitu : Turn arround time = waktu eksekusi + waktu
menunggu.
·
Throughput Adalah
jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk
mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat
dieksekusi dalam satu unit / interval waktu. Kriteria-kriteria tersebut saling
bergantung dan dapat pula saling bertentangan sehingga tidak dimungkinkan
optimasi semua kriteria secara simultan. Contoh : untuk memberi waktu tanggap
kecil memerlukan penjadwalan yang sering beralih ke antara proses-proses itu.
Cara ini meningkatkan overhead sistem dan mengurangi throughput. Oleh karena
itu dalam menentukan kebijaksanaan perancangan penjadwalan sebaiknya melibatkan
kompromi diantara kebutuhan-kebutuhan yang saling bertentangan. Kompromi ini
bergantung sifat dan penggunaan sistem komputer.
3) Apa yang di maksud SJF?
SJF
(Shortest - Job - First) adalah Penggabungan setiap proses merupakan panjang
dari brust CPU berikutnya. Panjang tersebut digunakan untuk penjadwalan proses
pada waktu terpendek.
4) Sebutkan jenis penjadwalan?
1. Nonpreemptive, menggunakan konsep :
a. FIFO (First In First Out) atau FCFS (First
Come First Serve)
b. SJF (Shortest Job First)
c. HRN (Highest Ratio Next)
d. MFQ (Multiple Feedback Queues)
2. Preemptive, menggunakan konsep :
a. RR (Round Robin)
b. SRF (Shortest Remaining First)
c. PS (Priority Schedulling)
d. GS (Guaranteed Schedulling)
Klasifikasi lain selain berdasarkan
dapat/tidaknya suatu proses diambil secara paksa adalah klasifikasi berdasarkan
adanya prioritas di proses-proses, yaitu :
1. Algoritma penjadwalan tanpa
berprioritas.
` 2.
Algoritma penjadwalan berprioritas, terdiri dari :
a. Berprioritas
static
b. Berprioritas
dinamis
Algoritma Nonpreemptive
First In First Out (FIFO)
First In First Out (FIFO) merupakan
penjadwalan tidak berprioritas. FIFO adalah penjadwalan paling sederhana, yaitu
proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan. Pada
saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.
Penilaian penjadwalan ini berdasarkan kriteria
optimasi :
· Adil,
dalam arti resmi (proses yang datang duluan akan dilayani lebih dulu), tapi
dinyatakan tidak adil karena job-job yang perlu waktu lama membuat job-job
pendek menunggu. Job-job yang tidak penting dapat membuat job-job penting
menunggu lama.
· Efisiensi,
sangat efisien.
· Waktu
tanggap sangat jelek, tidak cocok untuk sistem interaktif apalagi untuk sistem
waktu nyata.
· Turn
around time kurang baik.
· Throughtput
kurang baik. FIFO jarang digunakan secara mandiri, tetapi dikombinasikan dengan
skema lain.
· Baik
untuk sistem batch yang sangat jarang berinteraksi dengan pemakai. Contoh :
aplikasi analisis numerik, maupun pembuatan tabel.
· Sangat tidak baik (tidak berguna) untuk
sistem interaktif, karena tidak memberi waktu tanggap yang baik.
· Tidak dapat digunakan untuk sistem waktu
nyata (real-time applications).
Contoh:Ada tiga buah proses yang datang secara
bersamaan yaitu pada 0 ms, P1 memiliki burst time 24 ms, P2 memiliki burst time
3 ms, dan P3 memiliki burst time 3 ms. Hitunglah waiting time rata-rata
dan turnaround time( burst time + waiting time) dari ketiga proses
tersebut dengan menggunakan algoritma FCFS. Waiting time untuk P1
adalah 0 ms (P1 tidak perlu menunggu), sedangkan untuk P2 adalah sebesar 24 ms
(menunggu P1 selesai), dan untuk P3 sebesar 27 ms (menunggu P1 dan P2 selesai).
Urutan kedatangan adalah P1, P2 , P3; gantt
chart untuk urutan ini adalah:
Waiting time rata-ratanya adalah
sebesar(0+24+27)/3 = 17ms. Turnaround time untuk P1 sebesar 24 ms,
sedangkan untuk P2 sebesar 27 ms (dihitung dari awal kedatangan P2 hingga
selesai dieksekusi), untuk P3 sebesar 30 ms. Turnaround time rata-rata
untuk ketiga proses tersebut adalah (24+27+30)/3 = 27 ms.
Kelemahan dari algoritma ini:
1. Waiting
time rata-ratanya cukup lama.
2. Terjadinya convoy
effect, yaitu proses-proses menunggu lama untuk menunggu 1 proses besar
yang sedang dieksekusi oleh CPU. Algoritma ini juga menerapkan konsep
non-preemptive, yaitu setiap proses yang sedang dieksekusi oleh CPU tidak dapat
di-interrupt oleh proses yang lain.
Misalkan proses dibalik sehingga
urutan kedatangan adalah P3, P2, P1. Waiting time adalah P1=6; P2=3;
P3=0. Average waiting time: (6+3+0)/3=3.
Shortest
Job First (SJF)
Penjadwalan ini
mengasumsikan waktu berjalannya proses sampai selesai telah diketahui
sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan
terpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi
dan turn around time rendah dan penjadwalannya tak berprioritas.
Contoh
:
Terdapat empat
proses (job) yaitu A,B,C,D dengan waktu jalannya masing-masing adalah 8,4,4 dan
4 menit. Apabila proses-proses tersebut dijalankan, maka turn around time untuk
A adalah 8 menit, untuk B adalah 12, untuk C adalah 16 dan untuk D adalah 20.
Apabila keempat proses tersebut menggunakan penjadwalan shortest job fisrt,
maka turn around time untuk B adalah 4, untuk C adalah 8, untuk D adalah 12 dan
untuk A adalah 20.
Karena SJF selalu
memperhatikan rata-rata waktu respon terkecil, maka sangat baik untuk proses
interaktif. Umumnya proses interaktif memiliki pola, yaitu menunggu perintah,
menjalankan perintah, menunggu perintah dan menjalankan perintah, begitu
seterusnya. Masalah yang muncul adalah tidak mengetahui ukuran job saat job
masuk. Untuk mengetahui ukuran job adalah dengan membuat estimasi berdasarkan
kelakukan sebelumnya. Prosesnya tidak datang bersamaan, sehingga penetapannya harus
dinamis. Penjadwalan ini jarang digunakan karena merupakan kajian teoritis
untuk pembandingan turn around time.
Highest
Ratio Next (HRN)
Highest Ratio
Next merupakan strategi penjadwalan dengan prioritas proses tidak hanya
berdasarkan fungsi waktu layanan tetapi juga jumlah waktu tunggu proses. Begitu
proses mendapat jatah pemroses, proses berjalan sampai selesai.
Prioritas dinamis
HRN dihitung berdasarkan rumus : Prioritas = (waktu tunggu + waktu layanan ) /
waktu layanan Karena waktu layanan muncul sebagai pembagi, maka job lebih
pendek berprioritas lebih baik, karena waktu tunggu sebagai pembilang maka
proses yang telah menunggu lebih lama juga mempunyai kesempatan lebih bagus.
Disebut HRN, karena waktu tunggu ditambah waktu layanan adalah waktu tanggap,
yang berarti waktu tanggap tertinggi yang harus dilayani.
4. Multilevel
Feedback Queue
Algoritma
ini mirip sekali dengan algoritma multilevel queue. Perbedaannya ialah
algoritma ini mengizinkan proses untuk pindah antrian. Jika suatu proses
menyita CPU terlalu lama, maka proses itu akan dipindahkan ke antrian yang
lebih rendah. Hal ini menguntungkan proses interaksi karena proses ini hanya
memakai waktu CPU yang sedikit. Demikian pula dengan proses yang menunggu
terlalu lama. Proses ini akan dinaikkan tingkatannya. Biasanya prioritas
tertinggi diberikan kepada proses dengan CPU burst terkecil, dengan
begitu CPU akan terutilisasi penuh dan M/K dapat terus sibuk. Semakin rendah
tingkatannya, panjang CPU burst proses juga semakin besar.
5) Definisikan perbedaan antara penjadualan secara preemptive dan
nonpreemptive?
Penjadwalan Non Preemptive
Jika proses sedang menggunakan CPU, proses tersebut akan membawa CPU sampai proses tersebut melepaskannya (berhenti dalam keadaan wait). Dapat dikatakan bahwa Non-Preemptive ini merupakan proses yang hanya dapat melakukan proses sekali run saja kemudian diselesaikan sampai akhir proses tersebut tanpa ada proses yang menyela proses ini.
Penjadwalan Preemptive
Pada saat proses sedang menggunakan CPU, CPU dapat diambil alih oleh proses lain.
Dalam hal ini harus selalu dilakukan perbaikan data. Proses ini adalah kebalikan dari proses Non-preemptive tadi yakni saat proses ini bekerja, maka proses dapat disela oleh proses lain sehingga prose ini akan kembali di proses setelah CPU menyelesaikan proses yang menyela tadi
Jika proses sedang menggunakan CPU, proses tersebut akan membawa CPU sampai proses tersebut melepaskannya (berhenti dalam keadaan wait). Dapat dikatakan bahwa Non-Preemptive ini merupakan proses yang hanya dapat melakukan proses sekali run saja kemudian diselesaikan sampai akhir proses tersebut tanpa ada proses yang menyela proses ini.
Penjadwalan Preemptive
Pada saat proses sedang menggunakan CPU, CPU dapat diambil alih oleh proses lain.
Dalam hal ini harus selalu dilakukan perbaikan data. Proses ini adalah kebalikan dari proses Non-preemptive tadi yakni saat proses ini bekerja, maka proses dapat disela oleh proses lain sehingga prose ini akan kembali di proses setelah CPU menyelesaikan proses yang menyela tadi







