NAMA KELOMPOK :
1. RIBCA ATONIS
2.
APSYALOM
MAGANG
3.
AMARYA NITSAE
4.
Yulmira
Naibano
PENJADWALAN
CPU
A.
KONSEP
DASAR
Dalam pemroses
tunggal, hanya satu proses yang dapat dijalankan pada saat tertentu, sedangkan
yang lain harus menunggu CPU bebas dan dijadwal ulang. Multiprogramming
merupakan cara untuk menjalankan proses setiap waktu sehingga memaksimalkan
penggunaan CPU. Penjadwalan merupakan salah satu fungsi dasar dari sistem
operasi. Hampir semua sumber daya komputer dijadwalkan sebelum digunakan.
Penjadwalan CPU adalah suatu proses pengaturan atau penjadwalan
proses-proses yang ada di dalam komputer. Dimana proses-proses tersebut
berjalan dalam pola yang disebut Siklus Burst.Penjadwalan CPU secara garis
besar dibagi menjadi 2, yaitu Penjadwalan Preemptive dan Penjadwalan Non
Preemptive.
Pada Penjadwalan
Preemptive. Penjadwalan CPU mungkin akan dijalankan ketika proses dalam
keadaan:
1. Berubah dari running ke waiting state.
2. Berubah dari running ke ready state.
3. Berubah dari waiting ke ready state.
4. Dihentikan.
Penjadwalan Preemptive mempunyai arti kemampuan sistem
operasi untuk memberhentikan sementara proses yang sedang berjalan untuk
memberi ruang kepada proses yang prioritasnya lebih tinggi. Penjadwalan ini
bisa saja termasuk penjadwalan proses atau M/K. Penjadwalan Preemptive
memungkinkan sistem untuk lebih bisa menjamin bahwa setiap proses mendapat sebuah
slice waktu operasi. Dan juga membuat sistem lebih cepat merespon terhadap
event dari luar (contohnya seperti ada data yang masuk) yang membutuhkan reaksi
cepat dari satu atau beberapa proses.
Membuat penjadwalan yang Preemptive mempunyai keuntungan
yaitu sistem lebih responsif daripada sistem,yang memakai penjadwalan Non
Preemptive.
Dalam waktu-waktu tertentu, proses dapat dikelompokkan ke
dalam dua kategori: proses yang,memiliki Burst M/K yang sangat lama disebut I/O
Bound, dan proses yang memiliki Burst CPU yang sangat lama disebut CPU Bound.
Terkadang juga suatu sistem mengalami kondisi yang disebut busywait, yaitu saat
dimana sistem menunggu request input(seperti disk, keyboard, atau jaringan).
Saat busywait tersebut, proses tidak melakukan sesuatu yang produktif, tetapi
tetap memakan resource dari CPU. Dengan penjadwalan Preemptive, hal tersebut
dapat dihindari.
Penjadwalan Non
Preemptive ialah salah satu jenis penjadwalan dimana sistem operasi tidak
pernah melakukan context switch dari proses yang sedang berjalan ke proses yang
lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt.
Penjadwalan Non Preemptive terjadi ketika proses hanya:
1. Berjalan dari running state sampai waiting state.
2. Dihentikan.
Ini berarti CPU menjaga proses sampai proses itu pindah ke
waiting state ataupun dihentikan (proses tidak diganggu). Metode ini digunakan
oleh Microsoft Windows 3.1 dan Macintosh. Ini adalah metode yang dapat
digunakan untuk platforms hardware tertentu, karena tidak memerlukan perangkat
keras khusus (misalnya timer yang digunakan untuk meng interupt pada metode
penjadwalan Preemptive).
Komponen yang lain yang terlibat dalam penjadwalan CPU
adalah dispatcher[2]. Dispatcher adalah modul yang memberikan kontrol CPU
kepada proses yang sedang terjadwal. Fungsinya adalah:
· Context switching . Mengganti state dari suatu proses dan
mengembalikannya untuk menghindari monopoli CPU time. Context switching
dilakukan untuk menangani suatu interrupt(misalnya menunggu waktu M/K). Untuk
menyimpan state dari proses-proses yang terjadwal sebuah Process Control Block
harus dibuat untuk mengingat proses-proses yang sedang diatur scheduler. Selain
state suatu proses, PCB juga menyimpan process ID, program counter(posisi saat
ini pada program), prioritas proses dan data-data tambahan lainnya.
· Switching to user mode dari kernel mode.
· Lompat dari suatu bagian di progam user untuk mengulang
program.
B.
SIKLUS BURST
CPU-M/K
Kesuksesan
penjadwalAn CPU tergantung dari observasi proses-proses. Pengeksekusian proses
terdiri putaran ekseskusi CPU dan penungguan I/O. Eksekusi proses dimulai dari CPU
burst, yaitu diikuti oleh I/O burst kemudian diikuti CPU burst lainnya
lalu I/O burst lainnya dan begitu seterusnya.
C.
DISPATCHER
Dispatcher
seharusnya dapat dilakukan secepat mungkin. Dispatch Latency adalah waktu yang
diperlukan dispatcher untuk menghentikan suatu proses dan memulai proses yang
lain.
D.
KRITERIA
PENJADWALAN
Suatu algoritma penjadwalan CPU yang berbeda dapat mempunyai
nilai yang berbeda untuk sistem yang berbeda. Banyak kriteria yang bisa dipakai
untuk menilai algoritma penjadwalan CPU.Kriteria yang digunakan dalam menilai
adalah:
a.
CPU Utilization
. Kita ingin menjaga CPU sesibuk mungkin. CPU utilization akan mempunyai range
dari 0 sampai 100 persen. Di sistem yang sebenarnya ia mempunyai range dari 40
sampai 100 persen.
b.
Throughput
. Salah satu ukuran kerja adalah banyaknya proses yang diselesaikan per satuan
waktu. Jika kita mempunyai beberapa proses yang sama dan memiliki beberapa
algoritma penjadwalan yang berbeda, throughput bisa menjadi salah satu kriteria
penilaian, dimana algoritma yang menyelesaikan proses terbanyak mungkin yang
terbaik.
c.
Turnaround Time
. Dari sudut pandang proses tertentu, kriteria yang penting adalah berapa lama
untuk mengeksekusi proses tersebut. Memang, lama pengeksekusian sebuah proses
sangat tergantung dari hardware yang dipakai, namun kontribusi algoritma
penjadwalan tetap ada dalam lama waktu yang dipakai untuk menyelesaikan sebuah
proses. Misal kita memiliki sistem komputer yang identik dan proses-proses yang
identik pula, namun kita memakai algoritma yang berbeda, algoritma yang mampu
menyelesaikan proses yang sama dengan waktu yang lebih singkat mungkin lebih
baik dari algoritma yang lain. Interval waktu yang diijinkan dengan waktu yang
dibutuhkan untuk menyelesaikan sebuah proses disebut turnaround time.
Turnaround time adalah jumlah periode untuk menunggu untuk dapat ke memori,
menunggu di ready queue, eksekusi CPU, dan melakukan operasi M/K.
d.
Waiting Time
. Algoritma penjadwalan CPU tidak mempengaruhi waktu untuk melaksanakan proses
tersebut atau M/K, itu hanya mempengaruhi jumlah waktu yang dibutuhkan proses
di antrian ready. Waiting time adalah jumlah waktu yang dibutuhkan proses di
antrian ready.
e.
Response Time
. Di sistem yang interaktif, turnaround time mungkin bukan waktu yang terbaik
untuk kriteria. Sering sebuah proses dapat memproduksi output di awal, dan
dapat meneruskan hasil yang baru sementara hasil yang sebelumnya telah
diberikan ke pengguna. Ukuran lain adalah waktu dari pengiriman permintaan
sampai respon yang pertama diberikan. Ini disebut response time, yaitu waktu
untuk memulai memberikan respon, tetapi bukan waktu yang dipakai output untuk
respon tersebut.
f.
Fairness
. Suatu algoritma harus memperhatikan pengawasan nilai prioritas dari suatu
proses (menghindari terjadinya starvation CPU time).
g.
Efisiensi.
Rendahnya overhead dalam context switching, penghitungan prioritas dan
sebagainya menentukan apakah suatu algoritma efisien atau tidak. Sebaiknya
ketika kita akan membuat algoritma penjadwalan yang dilakukan adalah
memaksimalkan CPU utilization dan throughput, dan meminimalkan turnaround time,
waiting time, dan response time.
Memaksimalkan: CPU utilization dan throughput
Meminimalkan:
turnaround time, waiting time dan response time
E.
ALGORITMA
PENJADWALAN
First-Come
First-Served Scheduling (FCFS) adalah Proses yang pertama kali meminta
jatah waktu untuk menggunakan CPU akan dilayani terlebih dahulu.
Kelebihan
dari proses FCFS adalah:
§ Merupakan metode
scheduling paling sederhana
§ Overhead kecil
§ Dapat mencegah
starvation
Kekurangan :
Proses
yang pendek dapat dirugikan, bila urutan eksekusinya setelah proses yang
panjang
Algoritma FCFS
termasuk non-preemptive. karena, sekali CPU dialokasikan pada suatu proses,
maka proses tersebut tetap akan memakai CPU sampai proses tersebut
melepaskannya, yaitu jika proses tersebut berhenti atau meminta I/O.
Penjadwalan
dengan Prioritas.
Priority Scheduling merupakan algoritma penjadwalan yang mendahulukan proses
dengan nilai prioritas tertinggi. Setiap proses memiliki prioritasnya
masing-masing. Prioritas suatu proses dapat ditentukan melalui beberapa
karakteristik antara lain:
a.
Batas
waktu
b.
Kebutuhan
Memori
c.
Akses
file
d.
Perbandingan
antara I/O Burst dengan CPU Burst
e.
Tingkat
kepentingan proses
Penjadwalan
dengan prioritas juga dapat dijalankan secara preemptive maupun non-preemptive.
Pada preemptive,
jika ada suatu proses yang baru datang memiliki prioritas yang lebih tinggi
daripada proses yang sedang dijalankan, maka proses yang sedang berjalan
tersebut dihentikan, lalu CPU dialihkan untuk proses yang baru datang tersebut.
Sementara itu, pada non-preemptive, proses yang baru datang tidak dapat
menganggu proses yang sedang berjalan, tetapi hanya diletakkan di depan antrian.
Kelemahan pada
penjadwalan prioritas adalah dapat terjadinya indefinite blocking (starvation)
yaitu suatu proses dengan prioritas yang rendah memiliki kemungkinan untuk
tidak dieksekusi jika terdapat proses lain yang memiliki prioritas lebih tinggi
darinya. Solusi dari permasalahan ini adalah aging, yaitu
meningkatkan prioritas dari setiap proses yang menunggu dalam antrian secara
bertahap.
Round Robin. Algoritma ini
didesin untuk sistem time-sharing. Proses akan mendapat jatah sebesar
time quantum dengan nilai quantum umumnya sebesar 10-100 ms. Jika time
quantum-nya habis atau proses sudah selesai CPU akan dialokasikan ke proses
berikutnya. Tentu proses ini cukup adil karena tak ada proses yang
diprioritaskan, semua proses mendapat jatah waktu yang sama dari CPU (1/n), dan
tak akan menunggu lebih lama dari (n-1)/q. Algoritma ini sepenuhnya bergantung
besarnya time quantum. Jika terlalu besar, algoritma ini akan sama saja dengan
algoritma first-come first-served. Jika terlalu kecil, akan semakin banyak
peralihan proses sehingga banyak waktu terbuang.
Permasalahan
utama pada Round Robin adalah menentukan besarnya time quantum. Jika time quantum
yang ditentukan terlalu kecil, maka sebagian besar proses tidak akan selesai
dalam 1 time quantum. Hal ini tidak baik karena akan terjadi banyak switch,
padahal CPU memerlukan waktu untuk beralih dari suatu proses ke proses lain
(disebut dengan context switches time). Sebaliknya, jika time Berawal dari
priority scheduling, algoritma ini pun memiliki kelemahan yang sama dengan
priority scheduling, yaitu sangat mungkin bahwa suatu proses pada queue dengan
prioritas rendah bisa saja tidak mendapat jatah CPU. Untuk mengatasi hal
tersebut, salah satu caranya adalah dengan memodifikasi algoritma ini dengan
adanya jatah waktu maksimal untuk tiap antrian, sehingga jika suatu antrian
memakan terlalu banyak waktu, maka prosesnya akan dihentikan dan digantikan oleh antrian dibawahnya, dan tentu saja batas
waktu untuk tiap antrian bisa saja sangat berbeda tergantung pada prioritas
masing-masing antrian.
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. 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
dimanfaatkan penuh dan I/O dapat terus sibuk. Semakin rendah tingkatannya,
panjang CPU
burst proses
juga semakin besar.
SJF (Shortest
Job First). Pada penjadwalan SJF, proses yang
memilikiCPU burst paling kecil dilayani terlebih dahulu. Terdapat dua skema :
1. Non preemptive,
bila CPU diberikan pada proses, maka tidak bisa ditunda sampai CPU burst selesai.
2. 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). Ada beberapa kekurangan dari algoritma
ini yaitu :
Ø Susahnya untuk memprediksi burst time proses yang akan dieksekusi selanjutnya. Diasumsikan waktu running (burst time) sudah diketahui.
Ø Proses yang mempunyai burst time yang besar akan memiliki waiting time yang besar pula karena yang dieksekusi terlebih dahulu adalah proses dengan burst time yang lebih kecil.
Multilevel Queue
Kategori proses sesuai dengan sifat
proses:
Ø
Interaktif(response
cepat)
Ø
Batch
dll
Partisi “ready queue” dalam beberapa
tingkat (multilevel) sesuai dengan proses
;
Ø
Setiapqueue
menggunakanalgoritmaschedule sendiri
Ø
Foreground
proses(interaktif, high prioritiy): RR
Ø
Background
proses(batch, low priority): FCFS
Ø
Setiapqueue
mempunyai prioritas yang fixed
F.
KESIMPULAN
Penjadwalan CPU adalah pemilihan proses dari antrian ready
untuk dapat dieksekusi. Penjadwalan CPU merupakan konsep dari multiprogramming,
dimana CPU digunakan secara bergantian untuk proses yang berbeda. Suatu proses
terdiri dari dua siklus yaitu Burst M/K dan Burst CPU yang dilakukan bergantian
hingga proses selesai.Komponen yang lain dalam penjadwalan CPU adalah
dispatcher, dispatcher adalah modul yang memberikan kendali CPU kepada proses.
Waktu yang diperlukan oleh dispatcher untuk menghentikan suatu proses dan
memulai proses yang lain disebut dengan dispatch latency. Jika dalam suatu
proses Burst CPU jauh lebih besar daripada Burst M/K maka disebut CPU Bound.
Demikian juga sebaliknya disebut dengn M/K Bound. Dalam menilai baik atau buruknya
suatu algoritma penjadwalan kita bisa memakai beberapa kriteria, diantaranya
CPU utilization, throughput, turnaround time, waiting time, dan response time.
Algoritma yang baik adalah yang mampu memaksimalkan CPU utilization dan
throughput, dan meminimalkan turnaround time, waiting time, dan response time.