DEADLOCK DAN ALGORITMA OSTRICH

Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock dalam arti sebenarnya adalah kebuntuan. Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses. Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu. Jadi deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada komunikasi lagi antar proses.

Misalnya, pada diagram di bawah ini, Proses 1 menahan Sumber daya 1 dan menunggu sumber daya 2 yang diperoleh oleh proses 2, dan proses 2 menunggu sumber daya 1.


Salah satu contoh sebuah deadlock:
- Proses A menggunakan CD-ROM.
- Proses B menggunakan Scanner.
- Proses A meminta Scanner (tanpa melepas CD-ROM) → menunggu.
- Proses B meminta CD-ROM (tanpa melepas Scanner) → menunggu.
- Menunggu... menunggu... DEADLOCK.


Deadlock bisa muncul jika kondisi berikut berlangsung secara bersamaan.
a. Mutual Exclusion
Satu atau lebih dari satu sumber daya tidak dapat dibagikan (Hanya satu proses yang dapat digunakan dalam satu waktu).
b. Hold and Wait
Sebuah proses menahan setidaknya satu sumber daya dan menunggu sumber daya.
c. No Preemption
Sumber daya tidak dapat diambil dari proses kecuali proses tersebut melepaskan sumber daya.
d. Circular Wait
Serangkaian proses menunggu satu sama lain dalam bentuk melingkar.


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.


Deadlock dan Algoritma Ostrich
Dalam algoritma ini dikatakan bahwa untuk menghadapi Deadlock dengan berpura-pura tidak ada masalah apa pun. Diibaratkan seperti burung unta yang menempelkan kepalanya di pasir dan berpura-pura tidak terjadi masalah apa pun. Hal ini seakan-akan melakukan suatu hal yang fatal, tetapi sistem operasi menanggulangi Deadlock dengan cara ini dengan tidak mendeteksi Deadlock dan membiarkannya secara otomatis mematikan program sehingga seakan-akan tidak terjadi apa pun. Jadi jika terjadi Deadlock, maka tabel akan penuh, sehingga proses yang menjalankan proses melalui operator harus menunggu pada waktu tertentu dan mencoba lagi.


Algortima Ostrich Digunakan Dua Metode Berikut :
1. Trade-offs : merupakan metode penanganan deadlock dengan sistem dimana ada asumsibahwa suatu masalah (dalam hal ini deadlock) jarang terjadi atau masalah tersebut belum tentu benar bisa saja sewaktu-waktu berubah atau bahkan akan kembali terjadi, sehingga jangan terlalu terpaku akan satu masalah yang ada.
2. Pendekatan Hybird : merupakan metode yang mengasumsikan masalah (dalam hal ini misal deadlock) sangat jarang terjadi atau bahkan tidak akan pernah terjadi sama sekali dan biasanya bisa saja beralih pada algoritma yang lebih kompleks untuk mengetahui masalah tersebut benar-benar terjadi atau tidak.


Meskipun menggunakan algoritma ostrich adalah salah satu metode untuk mengatasi deadlock, metode lainnya juga ada seperti dynamic avoidance, banker's algorithm, detection and recovery, dan prevention.





Video penjelasannya bisa di cek disini :



Referensi :
https://www.geeksforgeeks.org/introduction-of-deadlock-in-operating-system/
https://www.gurupendidikan.co.id/deadlock-dan-starvation/
https://id.wikipedia.org/wiki/Algoritme_Ostrich
https://docplayer.info/60750429-Deadlock-algoritma-ostrich.html

Komentar

Postingan populer dari blog ini

MASALAH KLASIK SINKRONISASI

SISTEM OPERASI DAN IOS