ALGORITMA
OSTRICH
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.
Algoritma
ostrich merupakan strategi penanganan deadlock dengan cara mengabaikan masalah
yang mungkin terjadi atas dasar bahwa masalah itu mungkin sangat jarang
terjadi.dalam hal ini berarti diasumsikan bahwa tidak ada masalah. Dengan
begitu mengasumsikan bahwa tidak ada masalah lebih efektif daripada untuk
memungkinkan masalah itu terjadi dibandingkan upaya pencegahannya.
Trade-offs
- 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
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 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.
0 Comments
Bagaimana Pendapat Anda ?