Penjadwalan Proses
Penjadwalan CPU merupakan basis dari
multiprogramming sistem operasi. Dengan men-switch CPU diantara proses, akibatnya sistem operasi dapat membuat komputer
lebih produktif.
Apa itu
MULTIPROGRAMMING?
Multiprogramming adalah suatu proses menjalankan
proses-proses di dalam computer secara bersamaan (yang disebut paralel). Multiprogramming
dapat meningkatkan produktivitas dari sebuah komputer. Tujuan dari
multiprogramming adalah menjalankan banyak proses secara bersamaan, untuk
meningkatkan performance dari komputer.
Tipe
Penjadwalan ada 3, yaitu:
- Penjadwalan jangka pendek, bertugas menjadwalkan alokasi pemroses diantara proses-proses ready di memori utama.
- Penjadwalan jangka menengah, bertugas mengendalikan transisi dari keadaan suspend ke ready proses-proses swapping.
- Penjadwalan jangka panjang, bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi.
Properti Penjadwalan
CPU Burst
Yaitu pengeksekusian
dari proses tersebut terdiri atas siklus CPU ekskusi dan I/O Wait (bolak-balik). Pengeksekusian proses
dimulai dengan CPU Burst, setelah itu diikuti oleh I/O burst, kemudian CPU
Burst lagi lalu I/O Burst lagi begitu seterusnya dan dilakukan secara
bergiliran. CPU Burst terakhir, akan berakhir dengan permintaan sistem untuk
mengakhiri pengeksekusian daripada melalui I/O Burst lagi.
Dispatcher
adalah
modul yang memberikan kontrol CPU kepada proses yang fungsinya adalah:
o
Switching
context
o
Switching
to user mode
o
Lompat
dari suatu bagian di progam user untuk mengulang progam.
Dispatch
Latency adalah waktu yang diperlukan dispatcher untuk menghentikan suatu proses
dan memulai proses yang lain.
Kriteria Optimalisasi Kinerja
- Adil (fairness) >> Proses-proses diberlakukan sama (mendapat jatah waktu pemroses yang sama & tak ada proses yang tak kebagian layanan pemroses). Sasaran: menjamin tiap proses mendapat bagian dari pemroses yang adil.
- Efisiensi >> Pemroses dihitung dengan berapa perbandingan (rasio) waktu sibuk pemroses. Sasaran: menjaga proses agar tetap dalam keadaan sibuk (efisiensi maksimum).
- Waktu Tanggap (response time) >> Waktu yg dihabiskan dari saat karakter terakhir dari perintah dimasukkan program sampai hasil pertama yg muncul di layar. Sasaran: meminimalkan waktu tanggap.
- Turn Arrround Time >> Waktu yg dihabiskan dari saat program/job mulai masuk ke sistem sampai proses diselesaikan system. Sasaran: meminimalkan turn arround time. TA = waktu eksekusi + waktu menunggu
- Waiting Time >> Waiting time adalah jumlah waktu yang dibutuhkan proses di antrian ready. Sasaran: meminimalkan waktu tunggu masing-masing proses.
- Throughput >> jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Sasaran: memaksimalkan jumlah job yang diproses per satu interval waktu. Lebih tinggi angka throuhput, lebih banyak kerja yang dilakukan sistem.
Penjadwalan CPU mungkin akan dijalankan ketika
proses dalam keadaan:
- Berubah dari running ke waiting state.
- Berubah dari running ke ready state.
- Berubah dari waiting ke ready.
- Terminates
Preemptive
Dalam penjadwalan preemptive, semua proses yang ada
dalam antrian ready (siap) harus
dikerjakan oleh CPU. CPU sendiri
harus memilih salah satu proses yang akan dikerjakan dalam satu waktu. Pemilihan
tersebut dilakukan oleh short term scheduler dan proses yang dipilih akan
dieksekusi dalam CPU dalam satu waktu yang telah ditentukan oleh scheduler.
Non-Preemptive
Dalam penjadwalan non-preemptive sekali CPU telah dialokasikan untuk sebuah proses, maka tidak
dapat di ganggu. Ini berarti CPU menjaga
proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses
tidak diinterupt). Metode ini digunakan oleh Microsoft Windows 3.1 dan
Macintosh versi lama.
FCFS /
FIFO (FIRST IN FIRST OUT)
FCFS (FIRST COME FIRST SERVE) adalah proses yg tiba lebih
dahulu akan dilayani lebih dahulu. Kalau ada proses tiba pada waktu yg sama,
maka pelayanan mereka dilaksanakan melalui urutan mereka dalam antrian. Proses
di antrian belakang harus menunggu sampai semua proses di depannya selesai. Setiap
proses yang berada pada status ready dimasukkan ke dalam FCFS queue sesuai
dengan waktu kedatangannya.
Kelemahan
dari algoritma ini:
- Waiting time rata-ratanya cukup lama.
- Terjadinya convoy effect, yaitu proses-proses menunggu lama untuk menunggu 1 proses besar yang sedang dieksekusi oleh CPU.
- Algoritma ini juga menerapkan konsep nonpreemptive, yaitu setiap proses yang sedang dieksekusi oleh CPU tidak dapat di-interrupt oleh proses yang lain.
SJF (Shortest-Job First)
SJF
adalah setiap proses yang ada di ready queue akan dieksekusi berdasarkan burst
time terkecil. Mengakibatkan waiting time yang pendek untuk setiap proses dan
waiting time rata-ratanya juga menjadi pendek, sehingga dapat dikatakan ini
adalah algoritma yang optimal. Langkahnya:
Langkah I: tentukan urutan
prioritas berdasarkan pendeknya proses yang dilayani
Langkah II: penentuan proses mana
yg dilayani oleh pemroses
Priority
Scheduling merupakan algoritma
penjadwalan yang mendahulukan proses yang memiliki prioritas tertinggi. Setiap
proses memiliki prioritasnya masing-masing. Prioritas suatu proses dapat
ditentukan melalui beberapa karakteristik antara lain: Time limit, Memory
requirement, Akses file, Perbandingan antara I/O Burst dengan CPU Burst dan Tingkat
kepentingan proses.
Priority Scheduling juga dapat dijalankan secara
preemptive maupun non-preemptive.
- 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.
- non-preemptive, proses yang baru datang tidak dapat menganggu proses yang sedang berjalan, tetapi hanya diletakkan di depan queue
Kelemahan:
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.
Round Robin adalah algoritma yang menggilir proses
yang ada di antrian. Proses akan mendapat jatah sebesar time quantum.
Jika time quantum-nya habis atau proses sudah selesai, CPU akan dialokasikan
ke proses berikutnya. Proses ini cukup adil karena tak ada proses yang diprioritaskan, semua proses dapat jatah waktu
yang sama dari CPU.
Kelemahan Round Robin:
Permasalahan utama 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 (context switches time). Jika time quantum terlalu besar,
algoritma Round Robin akan berjalan seperti algoritma First Come First Served.
Multilevel Queue
ini
berdasarkan pada sistem prioritas proses. Prinsipnya adalah, jika setiap proses
dapat dikelompokkan berdasarkan prioritasnya, maka akan didapati queue.
Kelemahan:
algoritma ini pun memiliki kelemahan yang sama
dengan priority scheduling, yaitu suatu proses pada queue dengan prioritas
rendah bisa saja tidak mendapat jatah CPU. Untuk mengatasinya, memodifikasi
algoritma ini dengan adanya jatah waktu maksimal untuk tiap antrian, jika
antrian memakan terlalu banyak waktu, maka prosesnya akan dihentikan dan
digantikan oleh antrian dibawahnya (batas waktu untuk tiap antrian bisa berbeda
tergantung pada prioritas masing-masing antrian)
Multilevel
Feedback Queue 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 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 I/O
dapat terus sibuk. Semakin rendah tingkatannya, panjang CPU burst proses juga
semakin besar. Algoritma ini didefinisikan melalui beberapa parameter, antara
lain:
- Jumlah antrian
- Algoritma penjadwalan tiap antrian
- Kapan menaikkan proses ke antrian yang lebih tinggi
- Kapan menurunkan proses ke antrian yang lebih rendah
- Antrian mana yang akan dimasuki proses yang membutuhkan
Tidak ada komentar:
Posting Komentar