Skip navigation

Tag Archives: distributed system


Crash Failure dan Crash Recovery adalah 2 buah model di dalam bidang sistem terdistribusi. Di dalam crash failure ketika sebuah proses mengalami crash maka proses tersebut tidak akan dapat beroperasi kembali di dalam sistem. Model ini adalah model pertama yang diperkenalkan ketika belajar mengenai algoritma terdistribusi. Akan tetapi di dalam kenyataannya, proses-proses dapat kembali bekerja setelah mengalami crash.

Di dalam model Crash Recovery, sebuah proses miliki dua buah keadaan yakni up dan down. Up adalah keadaan di mana proses sedang beroperasi dan sebaliknya down adalah keadaan di mana proses sedang tidak beroperasi. Perubahan keadaan dari up menjadi down disebut crash dan perubahan sebaliknya disebut recovery. Sebuah proses dikatakan always up jika di dalam melakukan aktivitasnya proses tidak pernah sekalipun mengalami down hingga selesai. Di sisi lain, ada sebuah keadaan yakni unstable jika proses tersebut mengalami crash dan recovery secara berturut-turut dalam jumlah yang sangat banyak. Ketika itu proses dianggap tidak beroperasi dengan baik.

Berbeda pada model Crash Failure, pada Crash Recovery sebuah correct process adalah proses yang pada suatu waktu akan up secara permanen (dalam hal ini dianggap memiliki waktu yang cukup untuk menyelesaikan aktivitasnya). Sedangkan sebuah faulty process adalah proses yang pada suatu waktu akan always down atau unstable.

Di dalam melakukan aktivitasnya sebuah proses akan dilengkap dengan 2 buah tempat penyimpanan: volatile memory dan stable storage. Ketika sebuah proses mengalami crash maka data yang disimpan pada volatile memory akan terhapus sedangkan data yang disimpan pada stable storage akan tetap utuh. Oleh karena itu stable storage ini digunakan untuk mengembalikan state atau data-data yang diperlukan pada saat proses melakukan recovery.

Iklan

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.
%d blogger menyukai ini: