KATA PENGANTAR
Puji syukur kehadirat Tuhan Yang Maha Kuasa atas segala limpahan
Rahmat, Inayah, Taufik dan Hinayahnya sehingga saya dapat menyelesaikan
penyusunan makalah ini dalam bentuk maupun isinya yang sangat sederhana. Semoga
makalah ini dapat dipergunakan sebagai salah satu acuan, petunjuk maupun
pedoman bagi pembaca .
Harapan
saya semoga makalah ini membantu menambah pengetahuan dan pengalaman bagi para
pembaca, sehingga saya dapat memperbaiki bentuk maupun isi makalah ini sehingga
kedepannya dapat lebih baik.
Makalah
ini saya akui masih banyak kekurangan karena pengalaman yang saya miliki sangat
kurang. Oleh kerena itu saya harapkan kepada para pembaca untuk memberikan
masukan-masukan yang bersifat membangun untuk kesempurnaan makalah ini.
Penulis
BAB
I
PENDAHULUAN
A. LATAR BELAKANG MASALAH
Penjadwalan
merupakan konsep utama dalam multitasking,sistem operasi multi prosesor dan
sistem operasi real-time Penjadwalan adalah cara atau metode berbagai proses
dilaksanakan pada CPU, dimana biasanya terdapat lebih banyak proses yang
dijalankan daripada jumlah CPU yang tersedia. Hal ini diatur oleh software
scheduler dan dispatchare.
Tujuan
dari multiprogramming adalah untuk memiliki sejumlah proses yang berjalan pada
sepanjang waktu, untuk memaksimalkan penggunaan CPU. Tujuan dari pembagian
waktu adalah untuk mengganti CPU dantara proses-proses yang begitu sering
sehingga user dapat berinteraksi dengan setap program sambil CPU bekerja.
Untuk
sistem unipprosesor,tidak akan ada lebih dari satu proses berjalan.
Jika ada proses yang lebih
dari itu, yang lainnya akan harus menunggu sampai CPU bebas dan dapat
dijadwalkan kembali.
B. TUJUAN
PERMASALAHAN
Setelah
mempelajari materi dalam bab ini, pembaca diharapkan mampu
1.
Memahami tentang konsep dasar penjadwalan CPU
2.
Memahami kriteria yang diperlukan untuk penjadwalan CPU
3. Memahami
beberapa algoritma penjadwlan CPU yang terdiri atas algoritma First Shortest JOB first. Priority dan Round Robin
BAB
II
PEMBAHASAN
Macam – macam Penjadwalan Proses
Algoritma ini adalah algoritma yang paling sederhana.
Prinsip dari algoritma ini adalah seperti prinsip antrian (antrian tak
berprioritas), halaman yang masuk lebih dulu maka akan keluar lebih dulu juga.
Ketentuan dari penjadwalan FCFS adalah:
Proses-proses diberi jatah waktu pemroses, diurut
dengan waktu kedatangannya.
Begitu proses mendapat jatah waktu pemproses, proses
dijalankan sampai proses tersebut selesai, walaupun ada proses lain yang
datang, proses tersebut berada dalam antrian sistem atau disebut dengan ready
queue.
Pada dasarnya algoritma penjadwalan ini cukup adil
dalam hal bahasa, karena proses yang datang lebih dulu dikerjakan terlebih
dahulu. Dari segi konsep sistem operasi, penjadwalan model ini tidak adil
karena proses-proses yang membutuhkan waktu yang lama membuat proses-proses
yang memiliki waktu proses yang lebih pendek menunggu sampai proses yang lama
tersebut selesai, sedangkan proses-proses yang tidak penting membuat proses
penting menunggu.
Penjadwalan FCFS cocok digunakan untuk sistem batch
yang sangat jarang melakukan interaksi dengan user secara langsung, tapi tidak
cocok digunakan untuk sistem interaktif karena tidak memberi waktu tanggap yang
bagus, begitu juga dengan waktu sistem nyata.
Kelebihan :
Algoritma yang paling sederhana, dengan skema proses
yang meminta CPU mendapat prioritas.
Kelemahan :
Terjadi convoy effect dimana seandainya ada sebuah
proses yang kecil tetapi mengantri dengan proses yang membutuhkan waktu yang
lama mengakibatkan proses tersebut akan lama juga untuk dieksekusi.
Contoh Kasus :
Burst Time = 3+5+2+4=14
Diagram Grant =
pada diagram ini, arrival timenya yang paling kecil
dahulu lah yang dikerjakan. jadi urutannya adalah
P1 P2 P4
P3
|----|------|----|--|
0
3 8 12 14
Average
Waiting Time = 12/4=3
Algoritma penjadwalan Shortest Job First (SJF) merupakan proses penjadwalan yang ada di ready queue dan
akan dieksekusi berdasarkan burst time terkecil.
Hal ini mengakibatkan waiting time yang pendek untuk setiap proses. Karena hal tersebut,
maka waiting time rata-ratanya juga menjadi pendek, sehingga dapat
dikatakan bahwa algoritma ini adalah algoritma yang optimal.
SJF memiliki 2 sifat :
· non-preemptive (tidak
dapat diinterupt), pemilihan proses adalah proses dalam antrian yang memiliki
waktu eksekusi tercepat. CPU tidak memperbolehkan proses yang ada di ready queue untuk
menggeser proses yang sedang dieksekusi oleh CPU meskipun proses yang baru
tersebut mempunyai burst time yang lebih kecil.
· preemptive (dapat diinterupsi), proses yang dipilih adalah proses
yang memiliki waktu sisa eksekusi terkecil. Teknik ini juga dikenal dengan
nama Shortest Remaining
Time First.
Contoh Jika ada proses
P1 yang datang pada saat P0 sedang berjalan lalu akan dilihat CPU burst P1
apabila :
· Preemptive, Jika
CPU burst P1 lebih kecil dari sisa waktu yang dibutuhkan
oleh P0 maka CPU ganti dialokasikan untuk P1.
· Non-Preemptive, Akan
tetap menyelesaikan P0 sampai habis CPU burst-nya.
Preemptive Shortest
Job First (PSJF) disebut juga sebagai Shortest Remaining Time
First. PSJF merupakan penjadwalan dengan prioritas dan dengan preempsi.
Prioritas didasarkan kepada pendeknya sisa proses. Makin pendek sisa proses
makin tinggi prioritasnya. Selanjutnya dengan ketentuan ini, ketika tiba,
proses terpendek di bagian belakang antrian tidak saja berpindah ke bagian
depan antrian, melainkan juga melalui preempsi, mengeluarkan proses yang pada
saat itu berada di dalam proses (jika ada). Pada PSJF, jika
ada proses yang sedang dieksekusi oleh CPU dan terdapat proses di ready
queue dengan burst timeyang lebih kecil daripada proses yang sedang
dieksekusi tersebut, maka proses yang sedang dieksekusi oleh CPU akan
digantikan oleh proses yang berada di ready queue tersebut. Beberapa
istilah yang akan sering muncul :
· Process : Urutan
proses yang akan dilakukan
· Arrival
Time : Waktu
kedatangan dari proses yang akan dilakukan
· Average
Turn Around Time : Rata-rata waktu total yg dibutuhkan
sebuah proses dari datang sampai selesai dieksekusi oleh CPU
· Burst
Time : Waktu
yg dibutuhkan untuk mengeksekusi sebuah proses
· Average
Waiting Time : Rata-rata waktu yang dihabiskan
proses selama berada pada status ready ( menunggu eksekusi CPU )
Misalnya ada 2 buah
proses yang datang berurutan yaitu P1 dengan arrival time pada 0.0 ms
dan burst time 10 ms, P2 dengan arrival time pada 2.0 ms
dan burst time 2 ms.
|
Process
|
Arrival Time
|
Burst Time
|
|
P1
|
0.0
|
10
|
|
P2
|
2.0
|
2
|
waiting time PSJF
nya :
P1 = 0 + ( 4 ms – 2 ms
) = 2 ms
P2 = 0
Average waiting time
: (2 ms + 0 ms ) / 2 = 2 ms
Average turn
around : (12 ms + 0 ) / 2 = 12 ms
Tabel
Solusi
|
Process
|
Arrival
Time
|
Burst
Time
|
Waktu
Mulai
|
Waktu
selesai
|
Waiting
Time
|
Turn
Around
|
|
P1
|
0
|
10
|
0
|
12
|
2
|
12
|
|
P2
|
2
|
2
|
0
|
4
|
0
|
0
|
|
Average
|
2
|
12
|
||||
Merupakan salah satu algoritma penjadwalan yang paling
sederhana untuk proses dalam sistem operasi, dimana quantum time diberi
untuk setiap proses pada porsi yang sama dan dalam urutan melingkar,
menjalankan semua proses tanpa prioritas.
· Algoritma ini menggilir proses yang ada di antrian.
Proses akan mendapat jatah sebesar quantum time. Jika quantum-nya habis atau
proses sudah selesai, CPU akan dialokasikan ke proses berikutnya sesuai
antrian.
· Quantum time menentukan berapa lama suatu proses
berjalan sebelum diganti oleh proses lain.
· Penjadwalan proses dengan algoritma round robin ini
bukan diinterupsi oleh proses lain, melainkan diinterupsi oleh quantum
time (preempt by time).
· Dapat dikatakan semua proses memiliki kepentingan yang
sama, sehingga tidak ada prioritas tertentu.
· Jika proses memiliki burst time < quantum time, maka proses akan melepaskan CPU dan jika telah
selesai digunakan, CPU dapat segera digunakan oleh proses selanjutnya.
· Jika proses memiliki burst time > quantum time, jika sudah mencapai quantum time, proses ditunda dan
ditambahkan pada ready queue. CPU kemudian menjalankan proses berikutnya.
Kelebihan algoritma Round Robin :
1. Dapat menghindari ketidakadilan layan terhadap proses
kecil seperti yang terjadi pada FCFS
2. Response time lebih cepat untuk proses berukuran
kecil.
3. Overheat kecil, jika ukuran proses rata – rata lebih
kecil disbanding ukuran quantum.
Kekurangan :
1. Performa lebih buruk dibanding FCFS jika ukuran
quantum time lebih besar daripada ukuran proses terbesar.
2. Dapat terjadi overheat berlebihan jika ukuran quantum
time terlalu kecil.
Contoh Soal :
Diketahui
quantum time 3 ms
|
Proses
|
Burst Time (ms)
|
Arriving Time (ms)
|
|
P1
|
0
|
8
|
|
P2
|
3
|
5
|
|
P3
|
5
|
2
|
|
P4
|
6
|
6
|
Jadi,
rata – rata waktu yang dibutuhkan pada metode Penjadwalan Round Robin dengan
quantum time = 3 adalah 7,25ms.
Pada
priority scheduling kita akan membahas penjadwalan dalam kasus prioritas tinggi
dan prioritas rendah. Prioritas diindikasikan dalam beberapa bilangan yang
telah ditentukan, misalnya dari 0 ke 7, atau dari 0 ke 4,095. Tidak ada ketentuan
jika bilangan terkecil memiliki prioritas yang lebih rendah atau lebih tinggi.
Hal ini sering menimbulkan kerancuan. Dalam kasus ini, kita asumsikan bilangan
yang lebih kecil menandakan prioritas yang lebih tinggi.
Misalnya
kita mempunyai sekumpulan proses, sebut saja P1, P2,…, P5 yang tiba dalam waktu
ke-0, dengan burst time sebagai berikut (dalam miliseconds):
|
Proses
|
Burst Time
|
Prioritas
|
|
P1
|
10
|
3
|
|
P2
|
1
|
1
|
|
P3
|
2
|
4
|
|
P4
|
1
|
5
|
|
P4
|
5
|
2
|
Prioritas
dapat didefinisikan secara internal maupun eksternal. Secara internal,
prioritas didefinisikan dengan beberapa kuantitas besaran atau kuantitas untuk
menghitung prioritas suatu proses, antara lain sebagai berikut.
1. Time limits (batas waktu).
2. Memory requirements (kebutuhan
akan memori).
3. The number of open files
(jumlah file yang dibuka).
4. The ratio of average I/O burst
to average CPU burst have been used in computing priorities (rasio dari
rata-rata I/O burst ke rata-rata CPU burst).
Secara
eksternal, prioritas ditentukan oleh hal-hal di luar sistem operasi, seperti:
1. Tingkat kepentingkan dari
proses itu sendiri.
2. Jenis dan jumlah dana yang
dibayarkan untuk penggunaan komputer tersebut.
3. Departemen yang mensposori
tugas tersebut.
4. Faktor politik.
Priority
scheduling bisa jadi preemptive atau nonpreemtive. Ketika sebuah proses tiba di
ready queue, prioritas proses tersebut dibandingkan dengan prioritas proses
yang sedang berjalan.
1. Preemtive priority:
menghentikan CPU jika prioritas dari proses yang tiba mempunyai prioritas yang
lebih tinggi dari proses yang sedang berjalan.
2. Nonpreemtive priority:
menempatkan proses yang baru tiba di depan ready queue atau tidak dapat mengambil
alih proses yang sedang berjalan.
Masalah
utama dari priority scheduling ini adalah indefinite block atau stravation.
Sebuah proses yang telah siap berjalan namun masih menunggu CPU bisa dianggap
telah diblok. Priority scheduling dapat menyebabkan proses yang memiliki
prioritas rendah menunggu CPU dalam waktu yang sangat lama. Sebuah proses yang
memiliki proritas tinggi dapat mencegah proses prioritas rendah untuk
dieksekusi CPU. Secara umum, dalam kasus tersebut proses prioritas rendah dapat
berjalan ketika beban kerja CPU sudah berkurang, atau bisa jadi sistem komputer
akan kehilangan semua proses prioritas rendah yang belum sempat dieksekusi.
Solusi
dari permasalahan ini adalah dengan menggunakan aging. Aging adalah sebuah
teknik untuk meningkatkan secara bertahap prioritas proses yang telah lama
menunggu. Misalnya, jika prioritasnya berada pada range 127 (rendah) ke 0
(tinggi), kita dapat meningkatkan prioritasnya sedikit demi sedikit setiap
rentang waktu tertentu. Misalnya prioritasnya ditingkatkan 1 setiap 15 menit
sekali. Dengan cara ini, proses yang memiliki prioritas 127 pun dapat memiliki
prioritas 0, hingga akhirnya mendapat giliran dieksekusi.
BAB
III
PENUTUP
Kesimpulan
Dari penjelasan diatas, dapat ditarik kesimpulan bahwa :
Penjadwalan proses merupakan kumpulan kebijaksanaan
dan mekanisme di system operasi yang berkaitan dengan urutan kerja yang
dilakukan sistem komputer. Adapun macam – macam penjadwalan proses yaitu
: First Come First
Served, Shortest Job First, Round Robin, dan Priority Scheduling.




Tidak ada komentar:
Posting Komentar