A. Pengertian
Penjadwalan atau scheduling adalah sebuah metode dalam system operasi
yang mengatur proses-proses yang akan berjalan dalam suatu system operasi. Hal
ini sangat diperlukan karena pada saat ini komputer berbasiskan
multiprogramming. Sehingga dalam suatu waktu akan berlangsung dua atau lebih
pemrosesan. Tanenbaum menyebutkan, bagian dari sistem operasi yang membuat
pilihan dinamakan scheduller, sedangkan algoritma yang digunakan dinamakan
schedulling algoritma..
Secara garis besar penjadwalan dibedakan menjadi dua kelompok besar,
yaitu:
1.
Non-preemptive
Pada metode ini jika suatu proses telah berjalan maka sistem operasi
maupun operasi lain tidak dapat mengambil alih eksekusi prosesor. Pengalihan
prosesor hanya dapat dilakukan jika proses yang sedang berjalan tadi telah
berhenti. Metode ini digunakan pada sistem batch dan sekuensial.
2.
Preemptive
Metode ini lebih canggih dari pada non-preemptive, karena sistem operasi
dan operasi lain dapat mengambil alih eksekusi prosesor tanpa harus menunggu
proses lain yang sedang running berhenti. Metode ini digunakna pada sistem real
time.
Proses penjadwalan yang dilakukan oleh sistem operasi sebenarnya dipicu
dari beberapa hal yaitu:
1.
Proses
berubah dari status running ke blocked, hal ini dapat terjadi ketika suatu
proses melakukan system call untuk meminta operasi I/O
2. Proses berubah dari status running ke ready, hal ini dapat terjadi
ketika suatu proses yang berstatus running telah habis time slice-nya.
3. Proses berubah dari status blocked ke ready, dalam hal ini merupakan
kelanjutan dari pemicu nomor 1 diatas, ketika permintaan terhadap I/O telah
terpenuhi maka proses yang tadinya berstatus blocked berubah menjadi ready
4. Ketika suatu proses berhenti atau terminated. Hal ini berarti suatu
proses telah selesai dijalankan sehingga system operasi kemudian akan
menjalankan proses yang telah ready.
Penjadwalan merupakan salah satu
fungsi dasar dari
sistem operasi. Hampir semua
sumber daya komputer dijadwalkan
sebelum digunakan.
CPU-I/O Burst Cycle
Kesuksesan penjadwaln 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.
Penjadwalan
CPU
Ketika CPU mengalami waktu idle,
sistem operasi harus memilih
salah satu proses
untuk masuk kedalam antrian yang
akan untuk dieksekusi.
Pemilihan tersebut dilakukan
oleh penjadwal jangka pendek
atau penjadwal CPU. Penjadwalan memilih proses yang ada di memori serta
siap untuk dieksekusi, dan mengalokasikan CPU untuk mengeksekusinya.
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.
4. Terminates.
Penjadwalan nomor 1 dan 4 bersifat non-preemptive atau cooperative
sedangkan lainnya preemptive. Dalam penjadwalan non-preemptive sekali CPU telah dialokasikan untuk sebuah proses,
maka tidak dapat di
ganggu, penjadwalan model
seperti ini digunakan
oleh Windows 3.x; Windows 95
telah
menggunakan penjadwalan preemptive
yaitu saat suatu
proses sedang dieksekusi,
CPU dapat diambil alih oleh
proses lain sehingga proses di tunda dan dilanjutkan kembali hingga proses
selesai.
Kriteria
Penjadwalan
Setiap algoritma penjadwalan dapat berbeda dengan nilai yang berbeda
dan sistem komputer yang berbeda. Dalam
penjadwalan CPU diperlukan beberapa kriteria diantaranya adalah:
o CPU Utilization. Kita
menginginkan kerja CPU sesibuk mungkin. Konsepnya pemanfaatan CPU
mempunyai jangkauan dari
0 sampai 100
persen. Di sistem
yang sebenarnya mungkin hanya mempunyai jangakuan
dari 40 (untuk
pemanggilan ringan sistem)
sampai 90 persen (pemanggilan berat sistem).
o Throughput. Pengukuran kinerja CPU
adalah banyaknya proses yang
diselesaikan per satuan waktu.
Jika kita mempunyai
beberapa proses yang sama dan
memiliki beberapa algoritma penjadwalan yang
berbeda, hasil kinerja
bisa menjadi salah
satu kriteria penilaian,
dimana algoritma yang menyelesaikan proses terbanyak mungkin yang
terbaik.
o 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 memilki 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 tunggu untuk dapat
ke memori, menunggu di ready queue, eksekusi CPU, dan melakukan operasi I/O atau waktu yang dihabiskan dari saat
program atau job mulai masuk sistem sampai proses diselesaikan sistem.
o Turnaround = waktu eksekusi +
waktu menunggu
o Waiting Time.
Algoritma penjadwalan CPU
tidak mempengaruhi waktu
untuk melaksanakan proses tersebut
atau I/O, karena
hanya mempengaruhi jumlah waktu
yang dibutuhkan proses diantrian ready. Waiting time adalah
jumlah waktu yang dbutuhkan proses di antrian ready.
o 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. Hal ini disebut response
time, yaitu waktu untuk memulai memberikan respon, tetapi bukan waktu yang dipakai output untuk
respon tersebut. Turnround
time umumnya dibatasi
oleh kecepatan peralatan keluaran. Ada dua jenis
response time berdasarkan penggunaannya pada sistem
interaktif dan sistem waktu nyata (real time), yaitu:
1. Terminal response
time merupakan response
time pada sistem
interaktif sebagai waktu yang dihabiskan dari saat
karakter terakhir dari perintah
dimasukkan atau transaksi sampai hasil pertama muncul di layar.
2. Event response time
merupakan response time pada sistem waktu nyata sebagai waktu dan kejadian
(internal/eksternal) sampai instruksi pertama rutin layanan yang dimaksud
dieksekusi.
Sebaiknya ketika kita akan membuat algoritma penjadwalan yang dilakukan
adalah memaksimalkan
penggunaan CPU dan throughput,
dan meminimalkan turnaround time, waiting
time, dan response
time.
• Algoritma Penjadwalan
Masalah penjadwaln CPU adalah memutuskan proses mana yang berada di dalam
antrian ready akan dialokasikan ke CPU.
Ada beberapa algoritma
penjadwalan CPU beberapa
diantaranya akan di jelaskan pada bagian berikut ini.
o First-Come First-Served (FCFS)
Algoritma ini merupakan algoritma penjadwalan yang paling sederhana yang
digunakan CPU. Dengan menggunakan algoritma ini seiap proses yang berada pada
status ready dimasukkan ke dalam antrian FIFO
sesuai dengan waktu
kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi terlebih dahulu.
o Shortest-Job First (SJF)
Algoritma ini mempunyai cara
penjadwalan yang berbeda dengan FCFS. Dengan algoritma ini maka setiap proses
yang ada di
antrian ready akan
dieksekusi berdasarkan burst
time terkecil. Hal
ini mengakibatkan waiting time
yang pendek untuk setiap proses dan karena hal
tersebut maka waiting time
rata-ratanya juga menjadi
pendek, sehingga dapat
dikatakan bahwa algoritma
ini adalah algoritma yang
optimal.
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
o 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.
o Antrian Multilevel (Multilevel Queue)
Ide dasar dari algoritma ini
adalah berdasarkan pada sistem prioritas proses. Prinsipnya adalah, jika setiap proses dapat dikelompokkan
berdasarkan prioritasnya.
o 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.
Tidak ada komentar:
Posting Komentar