Arsip Tag: distributed system

Di dalam dunia distributed system ada beberapa istilah yang mirip-mirip tapi sebenarnya digunakan dalam konteks yang berbeda.

Load sharing bertujuan untuk membagi-bagikan pekerjaan dari satu atau beberapa sumber pekerjaan kepada satu atau beberapa pekerja sehingga tidak ada satupun pekerja yang tidak mendapat pekerjaan dalam suatu waktu.

Load balancing bertujuan untuk menyamakan workload pada seluruh mesin pekerja.

Task scheduling adalah kegiatan untuk membagikan pekerjaan ke pada banyak mesin pekerja secara optimal dengan memperhitungkan beban kerja, kecepatan kerja, dan lain-lain.

Parallel computing bertujuan untuk melakukan sebuah pekerjaa dengan membagi-bagi pekerjaan besar tersebut menjadi pekerjaan-pekerjaan yang lebih kecil dan mengerjakannya secara paralel.

Apa mereka itu dan bedanya di mana akan gw coba jabarkan satu per satu di postingan selanjutnya. ^_^ (ntar kalo sempet)

Sistem terdistribusi adalah sebuah koleksi dari entitas-entitas yang saling independen dan bekerja sama untuk menyelesaikan sebuah masalah yang tidak mampu diselesaikan oleh sebuah entitas sendiri.

Karakteristik dari sebuah sistem terdistribusi adalah

  1. Tidak memiliki pemrosesan fisik (physical clock) yang sama.
  2. Tidak saling membagi memory (shared memory)
  3. Terpisah secara geografi.
  4. Autonomity dan Heterogenity.

Sistem distribusi digunakan karena ada banyak sekali motivasi

  1. Kebutuhan akan komputasi terdistribusi secara natural. Misalnya perhitungan transfer uang dari dua buah komputer milik dua bank yang berbeda.
  2. Berbagi sumber daya (resource sharing). Contohnya adalah berbagi data di dalam basis data.
  3. Akses ke data yang terpisah secara geografis.
  4. Meningkatkan reliabilitas.  Sebuah sistem terdistribusi meningkatkan reliabilitas karena adanya replikasi sumber daya sehingga jika sebuah sumber daya mengalami crash terdapat back up dari sumber daya lain. Reliabilitas dinilai dari
    1. Availability. Sumber daya dapat diakses kapan pun.
    2. Integrity.  Nilai dari sebuah data tetap benar sesuai yang diharapkan secara semantik selama pengaksesan secara konkuren dari banyak prosesor.
    3. Fault-tolerant. Kemampuan untuk mengembalikan diri dari kegagalan sistem.
  5. Meningkatkan rasio performa/biaya.
  6. Skalabilitas. Karena prosesor biasanya terkoneksi pada wide area network, maka menambahkan sebuah prosesor tidak akan menyebabkan bottleneck.
  7. Modularitas dan expandibility. Prosesor dapat dengan mudah ditambahkan ke dalam sistem yang sedang berjalan selama prosesor tersebut berjalan dengan algoritma middleware yang sama dengan prosesor lain. Prosesor yang telah ada juga dapat diganti dengan prosesor lain.