Assalamualaikum! Kali ini saya akan menyampaikan secara umum apa itu algoritma berdasarkan penjadwalan. secara umum ya, untuk secara detail akan saya sampaikan di lain waktu. oke cekidot gan!
Jenis Algoritma Berdasarkan Penjadwalan
Penjadwalan
berkaitan dengan permasalahan memutuskan proses mana yang akan dilaksanakan
dalam suatu sistem. Proses yang belum mendapat jatah alokasi dari CPU akan
mengantri di ready queue. Algoritma penjadwalan berfungsi untuk menentukan
proses manakah yang ada di ready queue yang akan dieksekusi oleh CPU.
STRATEGI DASAR PENJADWALAN
Strategi penjadwalan proses
secara umum dibedakan menjadi dua kelompok besar, yaitu penjadwalan
non-preemptive dan preemptive.
1.
Non-preemptive
(run-to-completion)
Pada strategi ini, begitu proses
telah berjalan maka sistem operasi maupun proses lain tidak dapat mengmabil
alih eksekusi prosesor. Pengalihan hanya dapat terjadi jika proses yang running
sudah selesai, baik secara normal maupun abnormal. Strategi ini membahayakan
sistem dan proses lain, sebab jika proses yang sedang berjalan mengalami
kegagalan, crash ataupun looping tak berhingga maka sistem operasi menjadi
tidak berfungsi dan proses lain tidak mendapatkan kesempatan untuk dieksekusi.
Strategi penjadwalan non-preemptive umumnya digunakan pada sistem batch atau
sekuensial.
2.
Preemptive
Pada strategi ini, sistem operasi
dan proses lain dapat mengambil alih eksekusi prosesor tanpa harus menunggu
proses yang sedang running menyelesaikan tugasnya. Penjadwalan preemptive
merupakan fitur yang penting, terutama pada sistem dimana proses-proses
memerlukan tanggapan prosesor secara cepat. Sebagai contoh adalah sistem
real-time, dimana jika terjadi interupsi dan tidak segera dilayani maka dapat
berakibat fatal. Contoh lain adalah sistem interaktif time-sharing, dimana
pengguna sistem mengharapkan tanggapan yang cepat dari sistem. Secara umum,
sistem konkuren seperti sistem operasi yang multitasking lebih menghendaki
sistem penjadwalan preemptive.
PENJADWALAN PREEMPTIVE
·
Berubah dari running ke waiting
state.
·
Berubah dari running ke ready
state.
·
Berubah dari waiting ke ready
state.
·
Dihentikan.
Penjadwalan Preemptive mempunyai
arti kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang
berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi.
Penjadwalan ini bisa saja termasuk penjadwalan proses atau M/K. Penjadwalan Preemptive memungkinkan
sistem untuk lebih bisa menjamin bahwa setiap proses mendapat sebuah slice waktu
operasi. Dan juga membuat sistem lebih cepat merespon terhadap event dari
luar (contohnya seperti ada data yang masuk) yang membutuhkan reaksi cepat dari
satu atau beberapa proses. Membuat penjadwalan yang Preemptive mempunyai
keuntungan yaitu sistem lebih responsif daripada sistem yang memakai
penjadwalan Non Preemptive.
Dalam
waktu-waktu tertentu, proses dapat dikelompokkan ke dalam dua kategori: proses
yang memiliki Burst M/K yang sangat lama disebut I/O Bound, dan
proses yang memiliki Burst CPU yang sangat lama disebutCPU Bound.
Terkadang juga suatu sistem mengalami kondisi yang disebut busywait, yaitu
saat dimana sistem menunggu request input(seperti disk, keyboard,
atau jaringan). Saat busywait tersebut, proses tidak melakukan
sesuatu yang produktif, tetapi tetap memakan resource dari CPU.
Dengan penjadwalan Preemptive, hal tersebut dapat dihindari.
Dengan kata
lain, penjadwalan Preemptive melibatkan mekanisme interupsi yang
menyela proses yang sedang berjalan dan memaksa sistem untuk menentukan proses
mana yang akan dieksekusi selanjutnya.
Penjadwalan
nomor 1 dan 4 bersifat Non Preemptive sedangkan lainnya Preemptive.
Penjadwalan yang biasa digunakan sistem operasi dewasa ini biasanya bersifat Preemptive.
Bahkan beberapa penjadwalan sistem operasi, contohnya Linux 2.6, mempunyai
kemampuan Preemptive terhadap system call-nya ( preemptible
kernel). Windows 95, Windows XP, Linux, Unix, AmigaOS, MacOS X, dan
Windows NT adalah beberapa contoh sistem operasi yang menerapkan
penjadwalan Preemptive.
Lama waktu
suatu proses diizinkan untuk dieksekusi dalam penjadwalan Preemptive disebut
time slice/quantum. Penjadwalan berjalan setiap satu satuan time
slice untuk memilih proses mana yang akan berjalan selanjutnya. Bila time
slice terlalu pendek maka penjadwal akan memakan terlalu banyak waktu
proses, tetapi bila time slice terlau lama maka memungkinkan proses
untuk tidak dapat merespon terhadap event dari luar secepat yang diharapkan.
PENJADWALAN NON PREEMPTIVE
Penjadwalan Non
Preemptive ialah salah satu jenis penjadwalan dimana sistem operasi tidak
pernah melakukan context switch dari proses yang sedang berjalan ke
proses yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt.
Penjadwalan Non Preemptive terjadi ketika proses
hanya:
·
Berjalan dari running state sampai waiting
state.
·
Dihentikan.
Ini berarti CPU
menjaga proses sampai proses itu pindah ke waiting state ataupun
dihentikan (proses tidak diganggu). Metode ini digunakan oleh Microsoft
Windows 3.1 dan Macintosh. Ini adalah metode yang dapat digunakan untuk platforms hardware tertentu,
karena tidak memerlukan perangkat keras khusus (misalnya timer yang digunakan
untuk menginterupt pada metode penjadwalan Preemptive).
Dispatcher
Komponen
penjadwalan proses lainnya adalah dispatcher. Dispatcher adalah suatu rutin
sistem operasi yang berfungsi untuk melakukan pengalihan eksekusi dari proses
yang running ke proses yang terseleksi oleh short-term scheduler. Rutin ini
memindahkan isi register prosesor, konteks prosesor, ke PCB proses yang
dihentikan, kemudian mengubah statusnya menjadi ready, kemudian menginisiasi
isi register prosesor menggunakan konteks prosesor yang tersimpan dalam PCB
proses terpilih. Durasi waktu yang diperlukan untuk melakukan pengalihan
(switching) disebut dengan dispatch latency.
JENIS-JENIS ALGORITMA PENJADWALAN ADALAH
1.
Nonpreemptive, menggunakan konsep :
a.
FIFO (First In First Out) atau FCFS (First Come
First Serve)
b.
SJF (Shortest Job First)
c.
HRN (Highest Ratio Next)
d.
MFQ (Multiple Feedback Queues)
2.
Preemptive, menggunakan konsep :
a.
RR (Round Robin)
b.
SRF (Shortest Remaining First)
c.
PS (Priority Schedulling)
d.
GS (Guaranteed Schedulling)
Klasifikasi lain selain berdasarkan dapat/tidaknya suatu
proses diambil secara paksa adalah klasifikasi berdasarkan adanya prioritas di
proses-proses, yaitu :
1.
Algoritma penjadwalan tanpa berprioritas.
2.
Algoritma penjadwalan berprioritas, terdiri dari
:
a.
Berprioritas static
b.
Berprioritas dinamis
Terimakasih untuk :
Tidak ada komentar:
Posting Komentar