Algoritma Ostrich

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Langsung ke: navigasi, cari

Dalam ilmu komputer, algoritma ostrich adalah strategi mengabaikan masalah yang mungkin terjadi atas dasar bahwa masalah itu mungkin sangat jarang terjadi - "menempel kepala di pasir dan berpura-pura bahwa tidak ada masalah". Dengan mengasumsikan bahwa lebih efektif untuk memungkinkan masalah itu terjadi dibandingkan upaya pencegahannya.

Pendekatan ini dapat digunakan dalam menangani deadlock pada pemrograman concurrent jika deadlock diyakini sangat jarang terjadi, dan jika biaya untuk mendeteksi atau pencegahan lebih tinggi.

Trade-offs[sunting | sunting sumber]

  • Kenyamanan
  • Kebenaran

Ini adalah salah satu metode untuk menangani deadlock. Metode lainnya adalah: penghindaran ('s algoritma bankir), pencegahan, deteksi dan pemulihan.

Beberapa algoritma dengan kinerja yang buruk banyak digunakan karena mereka hanya menunjukkan kinerja yang buruk pada kasus yang sengaja dibuat dan jarang terjadi dalam praktik sesungguhnya, contoh-contoh yang khas adalah algoritma simplex dan algoritma pengecekan tipe Standard ML. Masalah seperti integer overflow dalam bahasa pemrograman tetap juga sering diabaikan karena mereka hanya terjadi dalam kasus luar biasa yang tidak muncul untuk input sederhana.

Pendekatan Hybrid[sunting | sunting sumber]

Pendekatan Hybrid menggunakan algoritma Ostrich adalah menentukan bahwa kasus sangat jarang tidak terjadi, dan kemudian beralih dari algoritma lain yang lebih kompleks. Trade-off di sini adalah bahwa jika keadaan berubah atau belum ditemukan, masalah langka dapat kembali terjadi.

Contohnya dapat ditemukan di Hard Mengunci Non-ReadWriteLocker [1] situs ini, di mana Anda memiliki pilihan untuk menentukan di mana deadlock mungkin terjadi, dan kemudian mematikan deteksi kebuntuan setelah Anda menentukan tidak perlu digunakan.

Referensi[sunting | sunting sumber]

Templat:Algorithm-stub