ALGORITMA
**Pengertian Algoritma
Algoritma
adalah langkah-langkah yang disusun secara tertulis dan berurutan untuk
menyelesaikan suatu masalah. Sedangkan Algoritma Pemrograman adalah
langkah-langkah yang ditulis secara berurutan untuk menyelesaikan masalah
pemrograman komputer.
Pada awalnya, algoritma ini dianggap
cukup mengatasi masalah tentang pergantian halaman, sampai pada tahun 70-an,
Belady menemukan keanehan pada algoritma ini yang dikenal kemudian dengan
anomali Belady. Anomali Belady adalah keadaan di mana page fault rate
meningkat seiring dengan pertambahan jumlah frame , seperti yang bisa
dilihat pada contoh di bawah ini.
Algoritma berbeda dengan Logaritma. Logaritma
merupakan operasi Matematika yang merupakan kebalikan dari eksponen atau
pemangkatan. Contoh Logaritma seperti bc=
a ditulis sebagai blog a = c (b disebut basis).
Contoh nyata Algoritma dalam kehidupan
sehari-hari adalah "Cara Membuat Mie Instan". Berikut langkah-langkah
cara membuat mie instan:
- Ambil goreng di dalam lemari yang terletak di dapur.
- Siapkan peralatan yang diperlukan seperti panci, gunting,
piring, serta sendok dan garpu.
- Masukkan bumbu mie instan pada piring
- Hidupkan kompor, kemudian tuangkan air kurang lebih tiga gelas
air ke dalam panci kemudian tunggu hingga air mendidih.
- Masukkan mie instan ke dalam air mendidih, lalu aduk dan
tunggu hingga tiga menit.
- Tiriskan air di dalam panci, kemudian tuangkan mie pada
piring.
- Aduk mie agar bumbu tercampur merata pada mie kemudian sajikan
dengan keadaan hangat.
AlGORITME
PREMPTIVE DAN NON PREMPTIV
|
|
|
|
|
|
|
|
|
|
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.
Tabel 14.1. Contoh Shortest Job
First
Process
|
Arrival Time
|
Burst Time
|
P1
|
0.0
|
7
|
P2
|
2.0
|
4
|
P3
|
4.0
|
1
|
P4
|
5.0
|
4
|
Contoh: Ada 4 buah proses yang datang berurutan yaitu P1 dengan arrival
time pada 0.0 ms dan burst time 7 ms, P2 dengan arrival time
pada 2.0 ms dan burst time 4 ms, P3 dengan arrival time pada
4.0 ms dan burst time 1 ms, P4 dengan arrival time pada 5.0 ms
dan burst time 4 ms. Hitunglah waiting time rata-rata dan turnaround
time dari keempat proses tersebut dengan mengunakan algoritma SJF.
Average waiting time rata-rata untuk ketiga proses tersebut adalah
sebesar (0 +6+3+7)/4=4 ms.
Average waiting time rata-rata untuk ketiga prses tersebut adalah
sebesar (9+1+0+2)/4=3 ms.
Ada beberapa kekurangan dari algoritma ini yaitu:
- Susahnya untuk memprediksi
burst time proses yang akan dieksekusi selanjutnya.
- Proses yang mempunyai burst
time yang besar akan memiliki waiting time yang besar pula
karena yang dieksekusi terlebih dahulu adalah proses dengan burst
time yang lebih kecil.
Algoritma ini dapat dibagi menjadi
dua bagian yaitu :
- Preemptive . Jika ada proses yang sedang
dieksekusi oleh CPU dan terdapat proses di ready queue dengan burst time
yang lebih kecil daripada proses yang sedang dieksekusi tersebut, maka
proses yang sedang dieksekusi oleh CPU akan digantikan oleh proses yang
berada di ready queue tersebut. Preemptive SJF sering
disebut juga Shortest-Remaining- Time-First scheduling.
- Non-preemptive . CPU tidak memperbolehkan
proses yang ada di ready queue untuk menggeser proses yang sedang
dieksekusi oleh CPU meskipun proses yang baru tersebut mempunyai burst
time yang lebih kecil.
Algoritma Penjadwalan
Algoritma – algoritma yang menerapkan strategi
nonpreemptive :
- FIFO ( First-in, First-out ).
- SJF ( Shortest Job First ).
- HRN ( Highest Ratio Next ).
- MFQ ( Multiple Feedback
Queues).
Algortima – algoritma yang
menerapkan strategi preemptive :
- SRF (
Shortest-Remaining-First ).
- PS ( Priority Schedulling ).
- GS ( Guaranteed Schedulling
).
Penjadwalan Round Robin (RR)
Penjadwalan preemptive , bukan di- preempt oleh proses lain tapi terutama
oleh penjadwal berdasarkan waktu berjalannya proses, disebut preempt-by-time.
Penjadwalan tanpa prioritas.
Penjadwalan FIFO ( First In First Out )
Penjadwalan non-preemptive (run to completion). Penjadwalan tidak
berprioritas.
Penjadwalan Berprioritas (PS)
Ide penjadwalan adalah tipa proses diberi prioritas dan proses berprioritas
tertinggi running (mendapat jatah waktu pemroses). Prioritas dapat diberikan
secara :
- Prioritas statis ( static
priorities ).
- Prioritas dinamis (dynamic
priorities ) .
- Prioritas statis berarti
prioritas tak berubah.
Penjadwalan dengan Banyak Antrian
(MFQ) : Penjadwalan preemptive (by time ). Penjadwalan berprioritas dinamis.
Penjadwalan Sisa Waktu Terpendek, Duluan ( SRF ) Penjadwalan ini merupakan :
Penjadwalan preemptive dan Penjadwalan berprioritas dinamis
Penjadwalan Rasio Tanggapan Tertinggi, Duluan (HRN) Penjadwalan ini merupakan
: Penjadwalan non-preemptive Penjadwalan berprioritas dinamis.
Penjadwalan Terjamin ( GS ) Penjadwalan ini merupakan : Penjadwalan
preemptive menjadwalan berprioritas dinamis.
Penjadwalan Earliest Deadline First (EDP) : Variasi yang diterpakan
pada Sistem Waktu Nyata Karena sistem waktu nyata sering mempunyai deadline
absolut, maka penjadwalan dapat berdasarkan deadline. Proses yang dijalankan
yang mempunyai deadline terdekat. Proses yang lebih dalam bahaya kehilangan
deadline dijalankan lebih dulu. Proses yang harus berakhir 10 detik lagi
mendapat prioritas di atas proses yang harus berakhir 10 menit lagi.
|
Sumber
:
Tidak ada komentar:
Posting Komentar