BAB I
PENDAHULUAN
1.1 Latar Belakang
Scheduling merupakan konsep utama dalam
multitasking, sistem operasi multiprosesor dan sistem operasi real-time.
Scheduling adalah cara/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 dispatcher.
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 diantara proses-proses yang begitu sering sehingga user dapat
berinteraksi dengan setiap program sambil CPU bekerja. Untuk sistem
uniprosesor, 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.
1.2 Tujuan
a.
Untuk mengetahui cara penjadwalan dengan
menggunakan strategi penjadualan berprioritas dan penjadwalan terjamin,
ketika pemroses melakukan eksekusi proses yang berkaitan dengan operasi
pada beberapa peripheral I/O secara bersamaan
b.
Untuk membedakan strategi
penjadwalan berprioritas
dan penjadwalan terjamin,
ketika penjadwalan tersebut
bekerja pada peripheral I/O
BAB II
PEMBAHASAN
2.1 Pengertian
Schedulling/Penjadwalan
Penjadwalan
proses yaitu kumpulan kebijaksanaan dan mekanisme di sistem operasi yang
berkaitan dengan urutan kerja yang dilakukan oleh sistem komputer. Adapun tugas
penjadwalan yaitu untuk memutuskan :
·
Proses
yang harus berjalan.
·
Kapan
dan brapa lama proses itu berjalan.
Sasaran
atau tujuan utama penjadwalan proses adalah optimasi kinerja menurut kriteria
tertentu. Dimana kriteria untuk mengukur dan optimasi kerja penjadwalan antara
lain :
1.
Adil
(Fairness)
Adil
adalah proses-proses diperlukan sama yaitu mendapatkan jatah waktu pemroses
yang sama dan tak ada proses yang tidak kebagian layanan pemroses sehingga
mengalami startvision. Sasaran pendjadwalan seharusnya menjamin tiap proses
mendapat pelayanan dari pemroses yang adil.
2.
Efesiensi
Efesiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses. Sasaran penjadwalan adalah menjaga agar pemroses tetap dalam keadaan sibuk sehingga efesiensi mencapai maksimum. Sibuk adalah pemroses tidak menganggur, termasuk waktu yang dihabiskan untuk mengeksekusi program pemakai dan sistem operasi.
Efesiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses. Sasaran penjadwalan adalah menjaga agar pemroses tetap dalam keadaan sibuk sehingga efesiensi mencapai maksimum. Sibuk adalah pemroses tidak menganggur, termasuk waktu yang dihabiskan untuk mengeksekusi program pemakai dan sistem operasi.
·
Waktu
Tanggap (Response Time)
·
Waktu
tanggap pada sistem interaktif
Waktu tanggap dalam sistem
interaktif didefinisikan sebagai waktu yang dihabiskan dari saat karakter
terakhir dari perintah dimasukkan atau transaksi sampai hasil pertama muncul
dilayar (terminal). Waktu tanggap ini disebut terminal response time.
·
Waktu tanggap pada sistem waktu
nyata (Real Time)
Pada sistem waktu nyata, waktu
tanggap didefinisikan sebagai waktu dari saat kejadian (internal atau eksernal)
sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event
response time. Sasaran pendjadwalan adalah meminimalkan waktu tanggap.
3.
Turn Arround Time
Turn
arround time adalah waktu yang dihabiskan dari saat program atau job mulai
masuk ke sistem sampai proses diselesaikan sistem. Waktu yang dimaksud adalah
waktu yang dihabiskan dalam sistem, diekspresikan sebagai jumlah waktu eksekusi
(waktu pelayanan job) dan waktu menunggu, yaitu;
Turn
Arround Time = waktu eksekusi + waktu tunggu
Sasaran
penjadwalan adalah meminimalkan turn arround time.
4.
Throughtput
Throughtput 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. Sasaran penjadwalan adalah memaksimalkan jumlah job yang diproses per satu interval waktu. Lebih tinggi angka throughput, lebih banyak kerja yang dilakukan sistem. Kriteria-kriteria tersebut saling bergabung dan dapat pula saling bertentangan sehingga tidak dimungkinkan optimasi semua kriteria secara simultan.
Throughtput 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. Sasaran penjadwalan adalah memaksimalkan jumlah job yang diproses per satu interval waktu. Lebih tinggi angka throughput, lebih banyak kerja yang dilakukan sistem. Kriteria-kriteria tersebut saling bergabung dan dapat pula saling bertentangan sehingga tidak dimungkinkan optimasi semua kriteria secara simultan.
2.2 Tipe-tipe
Penjadwalan
Terdapat
tiga tipe penjadwalan berada secara bersama-sama pada sistem operasi yang
kompleks, yaitu :
1.
Penjadwal
Jangka Pendek
Penjadwal
ini bertugas menjadwalkan alokasi pemroses diantara proses-proses ready
di memori utama. Sasaran utama penjadwal ini memaksimalkan kinerja untuk
memenuhi satu kumpulan kriteria yang diharapakan. Penjadwalan ini dijalankan
setiap terjadi pengalihan proses untuk memilih proses berikutnya yang harus
dijalankan.
2.
Penjadwal
Jangka Menengah
Setelah
eksekusi selama suatu waktu, proses mungkin ditunda karena membuat permintaan
layanan masukan/keluaran atau memanggil suatu system call. Proses-proses
tertunda tidak dapat membuat suatu kemajuan selesai sampai kondisi-kondisi yang
menyebabkan tertunda dihilangkan.
Agar ruang
memori dapat bermanfaat, maka proses dipindah dari memori utama ke memori
sekunder agar tersedia ruang untuk proses-proses lain. Kapasitas memori utama
terbatas untuk sejumlah proses aktif. Aktivitas pemindahan proses yang tertunda
dari memori utama ke memori sekunder disebut swapping.
Penjadwal
jangka menengah adalah menangani proses-proses swapping. Proses-proses
mempunyai kepentingan kecil saat itu sebagai proses yang tertunda. Tetapi,
begitu kondisi yang membuatnya terunda hilang dan proses dimasukkan kembali ke
memori utama dan ready. Penjadwalan jangka menengah mengendalikan
transisi dari suspended-ready (dari keadaan suspend ke ready)
proses-proses swapping.
3.
Penjadwal
Jangka Panjang
Penjadwal
jangka panjang bekerja terhadap antrian batch dan memilih batch
berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses
dengan penggunaan sumber daya yang intensif (yaitu waktu proses, memori,
perangkat I/O), program-program ini berprioritas rendah, digunakan sebagai
pengisi (agar pemroses sibuk) selama periode aktivitas job-job interaktif
rendah. Sasaran utama penjadwal jangka pangjang adalah memberi keseimbangan
job-job campuran. Dikaitkan dengan state-state proses.
2.3 Strategi
Penjadwalan
Terdapat
dua strategi penjadwalan, yaitu:
1.
Penjadwalan
Nonpreemptive
Begitu
proses diberi jatah waktu pemroses maka pemroses tidak dapat diambil alih oleh
proses lain sampai proses itu selesai.
2.
Penjadwalan
Preemptive
Saat
proses diberi jatah waktu pemroses maka pemroses dapat diambil alih proses lain
sehingga proses disela sebelum selesai dan harus dilanjutkan menunggu jatah
waktu pemroses tiba kembali pada proses itu.
Penjadwalan
preemptive berguna pada sistem dimana proses-proses yang mendapat perhatian
tanggapan pemroses secara cepat. Misalnya :
·
Pada
sistem waktu nyata, kehilangan interupsi (yaitu interupsi tidak segera
dilayani) dapat berakibat fatal.
·
Pada
sistem interaktif/time-sharing, penjadwalan preemptive penting agar dapat
menjamin waktu tanggap yang memadai.
Penjadwalan
preemptive bagus, tapi tidak tanpa ongkos. Perlaihan proses (yaitu proses
beralih ke proses lain) memerlukan overhead (karena banyak tabel yang
dikelola). Agar preemptive efektif, banyak proses harus berada di memori utama
sehingga proses-proses tersebut dapat segera running begitu diperlukan.
Menyimpan banyak proses tak running benar-benar di memori merupakan suatu
overhead tersendiri.
2.4 Algoritma
Penjadwalan
Terdapat
banyak algoritma penjadwalan ,baik nonpreemptive maupun preemptive.
Algoritma-algoritma yang menerapkan strategi nonpreemptive diantaranya:
1.
FIFO
(Frist In First Out)
Penjadwalan
ini merupakan:
·
Penjadwalana
non-preemptive
·
Penjadwalan
tidak berprioritas
Ketentuan:
Penjadwalan FIFO adalah penjadwalan paling sederhana, yaitu:
Penjadwalan FIFO adalah penjadwalan paling sederhana, yaitu:
·
Proses-proses
diberi jatah waktu pemroses berdasarkan waktu kedatangan.
·
Begitu
proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.
Penjadwalan
ini dikatakan adil dalam arti resmi (dalam semantik/arti antrian, yaitu proses
yang datangduluan, dilayani duluan juga), tapi dinyatakan tak adil karena
job-job yang perlu waktu lama membuat job-job pendek menunggu. Job-job tak
penting dapat membuat job-job penting menunggu.
FIFO
jarang digunakan secara mandiri tapi dikombinasikan dengan skema lain, misalnya
·
keputusan
berdasarkan prioritas proses. Untuk proses-proses berprioritas sama diputuskan
berdasarkan FIFO.
·
Berdasarkan
kriteria penilaian penjadwalan :
·
Fairness : Penjadwalan FIFO adil bila
dipandang dari semantik antrian.
·
Efesiensi : Penjadwalan FIFO sangat efesien
·
Waktu
tanggap :
Penjadwalan FIFO sangat jelek, tidak cocok untuk sistem interaktif apalagi
waktu nyata.
·
Turn
arround time :
Penjadwalan FIFO jelek
·
Throughput : Penjadwalan FIFO jelek.
Penggunaan:
·
Cocok
untuk sistem batch yang sangat jarang interaksi dengan pemakai. Contoh aplikasi
analisis numerik, pembuatan tabel.
·
Penjadwalan
ini sama sekali tak berguna untuk sistem interaktif karena tidak memberi waktu
tanggap yang bagus.
·
Tidak
dapat digunakan untuk sistem waktu nyata.
2.
SJF
(Shortest Job First)
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.
Keuntungan :
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.
Kelemahan :
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.
3.
HRN
(Highest Ratio Next)
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 dinamis HRN dihitung berdasarkan rumus :
Prioritas = (waktu tunggu + 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.
MFQ
(Multiple Feedback Queues)
Penjadwalan
ini merupakan:
·
Penjadwalan
preemptive (by-time)
·
Penjadwalan
berprioritas dinamis.
Penjadwalan
ini untuk mencegah banyaknya swapping dengan proses-proses yang sangat
banyakmenggunakan pemroses (karena menyeelesaikan tugasnya memakan waktu lama)
diberi jatah waktu (jumlah kwanta) lebih banyak dalam satu waktu.
Penjadwalan
ini menghendaki kelas-kelas prioritas bagi proses-proses yang ada. Kelas
tertinggi berjalan selama satu kwanta, kelas berikutnya berjalan selama dua
kwanta, kelas berikutnya berjalan empat kwanta, dan seterusnya. Ketentuan yang
berlaku adalah sebagai berikut:
·
Jalankan
proses pada kelas tertinggi
·
Jika
proses menggunakan seluruh kwanta yang dialokasikan maka diturunkan
kelas prioritasnya.
·
Proses
yang masuk untuk pertama kali ke sistem langsung diberi kelas tertinggi.
Mekasnime ini dapat mencegah proses yang perlu berjalan lama swapping berkali-kali dan mencegah proses-proses interaktif yang singkat harus menunggu lama.
Mekasnime ini dapat mencegah proses yang perlu berjalan lama swapping berkali-kali dan mencegah proses-proses interaktif yang singkat harus menunggu lama.
BAB
III
PENUTUP
Kesimpulan
Penjadwalan proses yaitu kumpulan kebijaksanaan dan mekanisme di sistem operasi
yang berkaitan dengan urutan kerja yang dilakukan oleh sistem komputer.
Penjadwalan bertugas menentukan proses mana yang harus berjalan serta kapan dan
berapa lama proses itu berjalan. Kriteria untuk mengukur dan optimasi kerja
penjadwalan yaitu : Adil, Efesiensi, Waktu Tanggap, Turn Arround Time, dan
Throughtput. Terdapat 3 tipe penjadwalan dalam sistem operasi yaitu :
Penjadwalan Jangka Pendek, Jangka Menengah, dan Jangka Panjang. Macam-macam
strategi penjadwalan dibagi menjadi 2 yaitu Penjadwalan Nonpreemptive dan
Penjadwalan Preemprive. Algoritma penjadwalan pun dibagi menjadi 2, untuk
Algoritma Penjadwalan Nonpreemptive adalah : FIFO, SJF, HRN, dan MFQ. Sedangakan
untuk Algoritma Penjadwalan Preemptive adalah : RR, SRF, PS, GS.
DAFTAR PUSTAKA
http://blog.uin-malang.ac.id/iantoro/2010/10/13/algoritma-penjadwalan/ .(Diakses online pada tanggal, 30
Oktober 2010)