Skip to content

Algoritma Task Scheduling

Raditya P edited this page May 27, 2024 · 2 revisions

Task Scheduling Algorithm

Beberapa algorithm yang bisa diterapkan dalam load balancing di cloud adalah:

  1. Round Robin Task diberi secara 'melingkar'. Bisa menangani banyak pekerjaan, tetapi throughput bisa kecil dan waktu tunggu yang lama pada beberapa task.
  2. Shortest Job First (SJF) Melihat jumlah waktu proses terkecil. Waktu turnaround cepat, tetapi memrlukan estamis wktu proses yang akurat agar menjadi efektif.
  3. First Come First Serve (FCFS) Memproses task sesuai dengan urutan kedatangan. Sederhana dan mudah diimplementasikan, tetapi bisa menyebabkan waktu tunggu yang lama jika ada task yang besar di depan antrian.
  4. Particle Swarm Optimization (PSO) Algoritma berbasis kecerdasan swarm yang mengoptimalkan distribusi beban kerja berdasarkan posisi dan kecepatan partikel dalam ruang pencarian. Efektif dalam menemukan solusi yang mendekati optimal dalam waktu yang relatif singkat, terutama dalam lingkungan yang dinamis.

Tes di dalam cloudsim

Untuk mencontohkan algoritma tersebut di dalam cloudsim, teman-teman bisa mendownload repository ini : https://github.com/michaelfahmy/cloudsim-task-scheduling/tree/master

Setelah itu isi dari folder src dari repo yang di download tadi (FCFS, PSO, RoundRobin, SJF, dan utils) dimasukkan ke folder example di dalam eclipse

image

Untuk contoh ini akan saya jelaskan untuk yang round robin. Buka folder RoundRobin lalu klik RoundRobinScheduler.java

image

Disini kita bisa lihat kode untuk membuat vm, mengatur cloudlet (tugas yang dijalankan), membuat datacenter, dan menjalankan simulasi. Tapi ada kode yang membuat hasil round robin tidak konsisten.

image

Di saat pembuatan cloudlet, ID cloudlet yang akan dijalankan oleh vm ada perintah randomnya int dcId = (int) (Math.random() * Constants.NO_OF_DATA_CENTERS); karena ada random itu maka hasilnya tidak akan konsisten untuk itu kita perlu menggantinya menjadi int dcId = i % Constants.NO_OF_DATA_CENTERS;

Setelah itu untuk mengatur jumlah dari data center dan jumlah tugas yang dilakukan bisa ke folder utils -> constants.java

image

Untuk melihat bagaimana cara algoritma RoundRobinnya bekerja bisa dilihat di RoundRobinDataCenterBroker.java

image

Setelah itu kita tinggal menjalankan kodenya dengan kembali lagi ke file RoundRobinScheduler.java dan pencet ctrl + F11. Hasilnya akan ada di console seperti ini:

image

Sekilas itu dari RoundRobin, selanjutnya bisa dipelajari sendiri untuk yang algoritma FCFS dan SJF.

Cloudsim ini akan sangat berguna untuk menyimulasikan Final Project kalian nanti karena bisa mengatur spek vm dengan cepat tanpa perlu menghapus dan membuat VM lagi di cloud provider dan juga mudah untuk setting load balancing nya.

Clone this wiki locally