Satu Antrian Untuk Tiap Partisi (banyak antrian Untuk Seluruh Partisi) . Keuntungan :
Meminimalkan pemborosan memori
Kelemahan : Dapat terjadi antrian panjang di suatu partisi sementara antrian partisi - partisi lain
kosong
2.
Manajemen dengan swapping atau paging
Swapping : pemindahan proses dari memori utama ke disk dan kembali lagi.
PENJADWALAN
a1. First-Come First- Serve (FCFS)
Merupakan algoritma yang paling sederhana dalam penjadwalan proses. Proses yang
melakukan request terhadap CPU akan diproses oleh CPU. Implementasinya dengan menggunakan
algoritma First In First Out FIFO. FCFS bersifat non-preemptive yaitu proses yang dikerjakan oleh
CPU tidak dapat diinterupsi oleh proses yang lainnya.
Proses diasumsikan datang bersamaan dan masuk dalam antrian penggunaan CPU. Proses akan
dikerjakan berdasarkan nomor urutan proses, sedangkan yang lainnya menunggu sampai proses
diatasnya selesai dikerjakan.
Dari Gant Chart dapat diperoleh waktu tunggu proses dari CPU yang dapat diambil waktu rataratanya.
Waiting Time P1 = 0, Waiting Time P2 = 10, Waiting Time P3 = 11, Waiting Time P4 = 13, Waiting
Time P5 = 14.
Avarage Waiting Time (AWT) = (WT P1 + WT P2 + WT P3 + WT P4 + WT P5)/5
Avarage Waiting Time (AWT) = (0 + 10 + 11 + 13 + 14)/5 = 9.6 ms
FCFS dapat juga bekerja dengan adanya prioritas terhadap proses, prioritas dengan nilai terkecil akan
diberi status sebagai prioritas tinggi dan akan dikerjakan terlebih dahulu.
Avarage Waiting Time (AWT) = (0 + 1 + 6 + 16 + 18)/4 = 8.2 ms
Masalah utama pada FCFS adalah adanya antrian dari proses yang menjadi panjang karena waiting
time yang rata-rata panjang. Proses-proses yang telah berada dalam posisi ready akan tetapi CPU
belum dapat memprosesnya. Hal ini yang disebut dengan starvation.
2. Shortest Job First (SJF)
Pendekatan SJF berbeda dengan FCFS, algoritma SJF tergantung dengan panjang proses yang ada
pada queue. Ketika CPU akan melakukan proses, CPU akan memilik proses dengan CPU burst paling
kecil. SJF dapat bekerja dengan mode preemptive maupun non-preemptive.
Gant chat :
Waiting Time P1 = 3
Waiting Time P2 = 16
Waiting Time P3 = 9
Waiting Time P4 = 0
Avarage Waiting Time = (3 + 16 + 9 + 0)/4 = 7 ms
b. Preemptive
SJF dengan waktu kedatangan (arrival time) berbeda.
Proses akan di-preemptive jika ada proses masuk, dah penjadwalan dilakukan ulang dengan
membandingkan proses yang masuk dengna proses yang sedang dijalankan. Sebaga contoh pada tabel
ketika P1 dijalankan dengna membutuhkan 8 ms, akan tetapi datang burst dari proses P2 dengan burst
time 4 ms pada deti ke-1. Proses akan berhenti pada detik 1 kemudian membandingkan proses P1
dengan P2. Karena P2 < P1 maka proses P1 akan dikembalikan ke ready queue dengan P1 = 7 dan
memproses P2. Demikian seterusnya.
Gant chart :
Waiting Time P1 = 0 + (10-1) = 9
Waiting Time P2 = 1-1 = 0
Waiting Time P3 = 17-2 = 15
Waiting Time P4 = 5-3 = 2
Average Waiting Time = (9 + 0 + 15 + 2 )/4 = 6.5 ms
3. Round Robin (RR)
Round Robin hampir mirip dengan FCFS akan tetapi terdapat proses perpindahan antar proses dimana
satu proses melakukan interupsi terhadap proses yang lainnya atau disebut juga dengan preemptive.
Proses preemptivedengan menggunakan time quantum atau time slice.
Sebagai contoh :
Proses
Burst
P1
24
P2
3
P3
3
Dengan time slice sebesar 4 ms, penjadwalan yang terjadi adalah sebagai berikut:
P1 mendapatkan kesempatan pada 4 ms (time slice) pertama, karena P1 > time slice maka P1 hanya
akan diproses selama time slice, sisa P1 sebesar P1 time slice akan di preemptive-kan. Selanjutnya
penjadwalan akan beralih ke P2, karena P2 < time slice maka P2 diproses hingga selesai, setelah itu
penjadwalan beralih ke P3 dan seterusnya.
Waiting Time P1 = 0 + (10 4) = 6
Waiting Time P2 = 4
Waiting Time P3 = 7
Average Waiting Time = (6 + 4 + 7 )/3 = 5.66 ms
Pada algoritma RR, tidak ada proses yang dikerjakan dalam satu waktu lebih dari time slice yang
disediakan. Jika terdapat n proses pada queue dengan time slice sebesar q, maka setiap proses akan
mendapatkan waktu 1/n dengan masing-masing proses sebesar q .Setiap proses akan menunggu
setidaknya sebanyak (n-1)x q untuk proses selanjutnya. Sebagai contoh terdapat 5 proses dengan time
slice sebesar 20 ms maka masing-masing proses akan mendapatkan waktu sebanyak 20 ms setiap 100
ms.
Performance dari RR tergantung pada ukuran time slice. Jika time slice terlalu besar maka RR akan
sama atau mendekati performance FCFS. Akan tetapi jika time slice kecil maka muncul
problem context switch yang terlalu banyak, yaitu proses perpindahan dari satu proses ke proses lain
yang akan menimbulkan permasalahan. Hal ini terjadi karena perbedaan kecepatan processor dan
memori, dengan terjadinya perpindahan yang terlalu sering proses pembacaan CPU ke memori dan
sebaliknya akan membebani sistem.
HRRN (highest Response Ratio Next)
merupakan penjadwalan non-preemptive, mengunakan proritas dinamis. Penjadwalan ini
memperbaiki Shortest Job Frist perioritas proses tidak hanya merupakan fungsi waktu layanan,tetapi
jumlah waktu tunggu proses. HRRN dihitung berdasarkan rumus :
Prioritas=(waktu tunggu + waktu layanan)/waktu layanan
Algoritma ini merupakan Penjadwalan berprioritas dinamis Penjadwalan untuk mengoreksi
kelemahan SJF. Adalah strategi penjadwalan dengan prioritas proses tidak hanya merupakan
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 = (waktu tunggu + waktu layanan ) / 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 dilayan
GS (Guaranteed Schedulling )
merupakan penjadawalan preemptive menggunakan prioritas dinamis. Jika terdapat N pemakai, setiap
pemakai diusahakan senantiasa mendapatkan(1/N) waktu Prosesor. Pada saat terjadi penjadwalan
dihitung rasio waktu running semenjak login setiap pemakai dan waktu pemakai prosesor secara
keseluruhan.
Penjadwalan ini memberikan janji yang realistis (memberi daya pemroses yang sama) untuk membuat
dan menyesuaikan performance adalah jika ada N pemakai, sehingga setiap proses (pemakai) akan
mendapatkan 1/N dari daya pemroses CPU. Untuk mewujudkannya, sistem harus selalu menyimpan
informasi tentang jumlah waktu CPU untuk semua proses sejak login dan juga berapa lama pemakai
sedang login. Kemudian jumlah waktu CPU, yaitu waktu mulai login dibagi dengan n, sehingga lebih
mudah menghitung rasio waktu CPU. Karena jumlah waktu pemroses tiap pemakai dapat diketahui,
maka dapat dihitung rasio antara waktu pemroses
yang sesungguhnya harus diperoleh, yaitu 1/N waktu pemroses seluruhnya dan waktu pemroses yang
telah diperuntukkan proses itu. Rasio 0,5 berarti sebuah proses hanya punya 0,5 dari apa yang waktu
CPU miliki dan rasio 2,0 berarti sebuah proses hanya punya 2,0 dari apa yang waktu CPU miliki.
Algoritma akan menjalankan proses dengan rasio paling rendah hingga naik
ketingkat lebih tinggi diatas pesaing terdekatnya. Ide sederhana ini dapat diimplementasikan ke sistem
real-time dan memiliki penjadwalan berprioritas dinamis.
MLQ ( Multi LeveL Queues )
merupakan penjadwalan preemptive, Peroses-proses dibagi atas group dan ditempatkan pada antrian
yang berbeda.
Dari gambar tersebut terlihat bahwa akan terjadi pengelompokan proses-proses berdasarkan
prioritasnya. Kemudian muncul ide untuk menganggap kelompok-kelompok tersbut sebagai sebuah
antrian-antrian kecil yang merupakan bagian dari antrian keseluruhan proses, yang sering disebut
dengan algoritma multilevel queue.
Dalam hal ini, dapat dilihat bahwa seolah-olah algoritma dengan prioritas yang dasar adalah algoritma
multilevel queue dimana setiap queue akan berjalan dengan algoritma FCFS yang memiliki banyak
kelemahan. Oleh karena itu, dalam prakteknya, algoritma multilevel queue memungkinkan adanya
penerapan algoritma internal dalam masing-masing sub-antriannya yang bisa memiliki algoritma
internal yang berbeda untuk meningkatkan kinerjanya.
Berawal dari priority scheduling, algoritma ini pun memiliki kelemahan yang sama dengan priority
scheduling, yaitu sangat mungkin bahwa suatu proses pada queue dengan prioritas rendah bisa saja
tidak mendapat jatah CPU. Untuk mengatasi hal tersebut, salah satu caranya adalah dengan
memodifikasi algoritma ini dengan adanya jatah waktu maksimal untuk tiap antrian, sehingga jika
suatu antrian memakan terlalu banyak waktu, maka prosesnya akan dihentikan dan digantikan oleh
antrian dibawahnya, dan tentu saja batas waktu untuk tiap antrian bisa saja sangat berbeda tergantung
pada prioritas masing-masing antrian.
9. MFQ (Multi Level feedback Queues)
merupakan algoritma penjadwalan preemptive berprioritas dinamis berdasarkan jumlah Quantum
Time, MFQ menggunakan sejumlah antrian dengan prioritas dan Quantum Time yang
berbeda.Algoritma ini merupakan penjadwalan berprioritas dinamis Penjadwalan ini bertujuan untuk
mencegah (mengurangi) banyaknya swapping dengan proses-proses yang sangat banyak
menggunakan pemroses (karena menyelesaikan tugasnya memakan waktu lama) diberi jatah waktu
(jumlah kwanta) lebih banyak dalam satu waktu. Penjadwalan ini juga 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.
Proses yang masuk untuk pertama kali ke sistem langsung diberi kelas tertinggi. Mekanisme ini
mencegah proses yang perlu berjalan lama swapping berkali-kali dan mencegah proses-proses
interaktif yang singkat harus menunggu lama.
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.
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.
Waktu Tanggap (Response Time)
Waktu tanggap berbeda untuk :
Sistem interaktif
Sistem waktu nyata
Waktu tanggap pada sistem interaktif (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.
Turn Arround Time
Turn arround time adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke system
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
Penjadwalan Nonpreemptive
Begitu proses diberi jatah waktu pemroses maka pemroses tidak dapat diambil alih oleh proses lain
sampai proses itu selesai.
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.
5.4 Algoritma Penjadwalan
Terdapat banyak algoritma penjadwalan ,baik nonpreemptive maupun preemptive.
Algoritma-algoritma yang menerapkan strategi nonpreemptive diantaranya:
FIFO (Frist In First Out)
SJF (Shortest Job First)
HRN (Highest Ratio Net)
MFQ (Multiple Feedback Queues).
Algoritma-algoritma yang menerapkan strategi preemptive diantaranya:
RR (Round Robin)
SRF (Shortest remaining First)
PS (Priority Schedulling)
GS (Guaranteed Schedulle)
Penjadwalan Round Robin (RR)
Penjadwalan ini merupakan:
Penjadwalan preemptive, buka dipreempt oleh proses lain tapi terutama oleh penjadwal berdasarkan
lama waktu berjalannya proses, disebut preempt-by-time.
Penjadwalan tanpa protes.
Semua Proses dianggap penting dan diberi sejumlah waktu pemroses yang disebut kwata (quantum)
atau time slice dimana proses itu berjalan.
Ketentuan
Ketentuan algoritma round robin adalah sebagai berikut:
1.Jika kwanta habis dan proses belum selesai maka proses menjadi runable dan pemroses dialihkan ke
poses lain.
2.Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses
menjadi blocked dan pemroses dialihkan ke proses lain.
3.Jika kwanta belum habis tapi proses telah selesai maka proses diakhiri dan pemroses dialihkan ke
proses lain.
Algoritma penjadwalan ini dapat diimplementasi sebagai berikut:
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.
Penjadwalan Berprioritas (PS)
Ide penjadwalan adalah tiap proses diberikan prioritas dan proses berprioritas tinggi running
(mendapat jatah waktu proses).
Prioritas dapat diberikan secara :
Prioritas statis
Prioritas dinamis
Prioritas Statis
Prioritas statis berarti rioritas tak berubah
Keunggulan
mudah diimplementasikan
mempunyai overhead relatif kecil
Kelemahan
Penjadwalan tak tanggap perbuhana lingkungan yang mungkin menghendaki penyesuaian prioritas.
Prioritas Dinamis
Prioritas dinamis merupakan mekanisme menanggapi perubahan lingkungan sistem beroperasi.
Prioritas awal diberikan ke proses mungkin hanya berumur pendek setelah disesuaikan ke nilai
yanglebih tepat sesuai lingkungan.
Kelemahan
Implementasi mekanisme prioritas dinamis lebih kompeks dan mempunyai overhead lebih besar.
Overhead ini diimbangi dengan peningkatan daya tanggap sistem.
Contoh penjadwalan berprioritas
Proses-proses yang sangat banyak operasi I/O menghabiskan kebanyakan waktu menunggu selesainya
operasi I/O. Proses-proses ini diberi prioritas sangat tinggi sehingga begitu proses memerlukan
pemroses segera diberikan, proses akan segera memulai permintaan I/O berikutnya hingga
mengakibatkan proses blocked menunggu selesainya operasi I/O. Dengan demikian pe mroses dapat
dipergunakan proses-proses lain. Proses-proses I/O bound berjalan paralel bersama proses-proses lain
yang benar-benar memerlukan pemroses, sementara proses-proses I/O bound itu menunggu selesainya
operasi DMA.
Proses-proses yang sangat banyak operasi I/O kalau harus menuggu lama untuk memakai pemroses
(karena prioritas rendah) hanya akan membebani meori karena harus disimpan tanpa perlu
prosesproses itu dimemori karena tidak selesai-selesai menunggu operai I/O dan menunggu jatah
pemroses.
Algoritma Prioritas Dinamis
Algoritma dituntun oleh keputusan untuk memenuhi kebijaksanaan tertentu yang menjadi tujuan.
Algoritma sederhana yang memberi layanan bagus adalah men-set prioritas dengan nilai 1/f dimana f
adalah ratio kwanta terakhir yang digunakan proses.