a.
FIFO (First In
First Out) atau FCFS (First Come
First Serve)
Algoritma ini merupakan algoritma penjadwalan yang paling
sederhana yang digunakan CPU. Dengan menggunakan algoritma ini setiap proses
yang berada pada status ready dimasukkan kedalam FIFO queue atau
antrian dengan prinsip first in first out, sesuai dengan waktu
kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi.
Terdapat kelemahan pada saat menggunakan algoritma
ini, yaitu:
1. Waiting time rata-ratanya cukup lama.
2. Terjadinya convoy effect,
yaitu proses-proses menunggu lama untuk menunggu 1 proses besar yang sedang
dieksekusi oleh CPU. Algoritma ini juga menerapkan konsep non-preemptive, yaitu
setiap proses yang sedang dieksekusi oleh CPU tidak dapat di-interrupt (suatu permintaan khusus pada mikroprocessor untuk
melakukan sesuatu) oleh proses yang lain.
b. SJF
(Shortest Job First)
Pada algoritma ini
setiap proses yang ada di ready queue 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.
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 burst M/K dengan CPU burst.
- Tingkat kepentingan proses.
d. Round Ronin
Algoritma
ini 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. Tentu proses ini cukup adil karena tak
ada proses yang diprioritaskan, semua proses mendapat jatah waktu yang sama
dari CPU yaitu (1/n), dan tak akan menunggu lebih lama dari (n-1)q dengan q adalah
lama 1 quantum. 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. Urutan Kejadian Algoritma Round
Robin:
PENJADWALAN PADA SISTEM OPERASI LINUX
Algortima penjadwalan
Linux adalah preemptive, priority based dengan dua range prioritas yang
terpisah; range real-time dari 0-99 dan yang lainnya dengan range dari 100-140.
Dua range ini memetakan skema prioritas global dimana semakin kecil angka
prioritasnya memiliki arti prioritas lebih tinggi. Linux memberikan quantum
waktu yang lebih panjang pada proses dengan prioritas tinggi dan sebaliknya.
Sebuah proses dapat running pada CPU jika proses tersebut memiliki waktu sisa
pada slot waktunya. Saat slot waktunya habis, proses tersebut dianggap
kadaluarsa dan tidak akan dieksekusi sampai seluruh proses slot waktunya habis
juga. Saat ini terjadi, list proses aktif akan menjadi kosong, maka list proses
kadaluarsa akan menjadi aktif dan eksekusi akan dimulai kembali. Penjadwalan
real-time Linux mengimplementasikan dua penjadwalan real-time, yaitu:
- FIFO (First In First Out) atau FCFS (First Come First Serve)
2. Round Robin.
Pada kedua kasus, setiap proses memiliki prioritas. Penjadwal akan
memilih proses dengan prioritas paling besar pada penjadwalan real-time. Di
antara dua proses dengan prioritas yang sama, penjadwal akan menjalankan proses
yang telah menunggu paling lama. Penjadwalan real-time Linux adalah soft
real-time. Pada algoritma soft real-time fitur yang paling penting dari adalah
merespon dengan segera sebuah proses waktu nyata secepat proses yang
membutuhkan CPU. Algoritma penjadwalan berdasarkan prioritas memberikan prioritas
kepada masing-masing proses berdasarkan tingkat kepentingannya; proses yang
lebih penting di berikan prioritas lebih tinggi daripada proses lain yang
dianggap kurang penting. Apabila penjadwalan yang digunakan juga mendukung
preemption dan tersedia sebuah proses berprioritas tinggi, maka sebuah proses
yang berjalan sekarang ini di CPU akan didahulukan.
PENJADWALAN PADA SISTEM OPERASI WINDOWS XP
Windows XP menggunakan algoritma, prioritas
penjadwalan quantum. Jumlah thread yang dibuat oleh process dapat lebih dari
satu. Thread-thread yang dibuat oleh process harus dapat dijalankan sesuai
dengan kebutuhan process tersebut. Tugas sistem operasi untuk mengatur dan
melakukan penjadwalan agar thread-thread yang dibutuhkan mendapat waktu yang
cukup untuk dieksekusi oleh CPU. Windows XP dalam melakukan penjadwalan
thread memakai pendekatan prioritas dan bersifat preemptive. Thread dengan
prioritas tertinggi pasti dijalankan dan dapat menghentikan/menginterupsi
jalannya thread lain yang prioritasnya lebih rendah. Ketika menggunakan CPU
thread menghabiskan sejumlah waktu, ini disebut dengan quantum. Quantum adalah
sejumlah waktu yang diberikan kepada thread untuk menggunakan CPU. Sifat
penjadwalan windows yang preemtive memungkinkan suatu thread untuk diinterupsi,
meskipun waktu quantumnya belum habis.
Windows XP menggunakan algoritma, prioritas
penjadwalan quantum-based yang berbasis reemptive priority scheduling. Terdapat
6 kemungkinan state dari sebuah thread, yaitu ready, standby, running, waiting,
transition dan terminated. Ready state yaitu thread yang siap untuk dieksekusi.
Thread yang berada pada ready state dengan prioritas tertinggi akan berpindah menjadi
standby state. Ketika thread dieksekusi, thread tersebut berada pada running
state. State waiting dimasuki thread ketika thread menunggu untuk dijadwalkan
ulang. Ketika thread akan dieksekusi tetapi sumber daya yang diperlukan belum
tersedia, maka thread tersebut akan berpindah pada state transition. Terminated
state dimasuki thread ketika thread selesai dieksekusi.
Gambar Proses Pada Windows Xp Threads dijadwalkan
dalam proses, Karena prioritas preemptive algoritma diimplementasikan dengan
beberapa queue, dapat dianggap sebagai algoritma multiple feedback-queue .
Namun, masing-masing Threads biasanya terbatas pada kelompok kecil dari 5 level
prioritas, Preemption dapat terjadi karena salah satu dari 4 alasan:
- thread menjadi prioritas lebih tinggi-siap
- thread berakhir
- kuantum habis waktu
- thread melakukan panggilan sistem pemblokiran, seperti untuk I / O, dalam hal ini meninggalkan keadaan ready menjadi keadaan menunggu.
Gambaran Quatum pada windows XP 32 tingkat prioritas
digunakan, di mana prioritas 31 merupakan prioritas tertinggi dan prioritas 0
adalah prioritas terendah,
- memori manajemen thread: prioritas 0
- variabel kelas prioritas (1-15)
- real-time kelas prioritas (16-31)
- Threads di kelas real-time telah tetap prioritasnya.
Threads yang berjalan selalu dengan tingkat prioritas
tertinggi. Jika tidak ada thread yang ready, Threads idle dijalankan. Ketika
waktu quantum thread habis, prioritasnya diturunkan, tetapi prioritasnya tidak
pernah diturunkan terlalu jauh. Ketika Threads menjadi ready setelah keadaan
menunggu, maka diberikan prioritas tertinggi setiap threads dari proses yang
terkait dengan program yang saat ini pengguna gunakan diberikan prioritas
lebih.
Sumber:
Tidak ada komentar:
Posting Komentar