Caranya ialah dengan cara
mendeteksi jika terjadi deadlock pada suatu proses maka dideteksi sistem
mana yang terlibat di dalamnya. Setelah diketahui sistem mana saja yang
terlibat maka diadakan proses untuk memperbaiki dan menjadikan sistem berjalan
kembali. Jika sebuah sistem tidak memastikan deadlock akan terjadi, dan juga
tidak didukung dengan pendeteksian deadlock serta pencegahannya, maka kita akan
sampai pada kondisi deadlock yang dapat berpengaruh terhadap performance sistem
karena sumber daya tidak dapat digunakan oleh proses sehingga proses-proses
yang lain juga terganggu. Akhirnya sistem akan berhenti dan harus direstart.
Hal-hal yang terjadi dalam
mendeteksi adanya Deadlock adalah:
·
Permintaan sumber daya dikabulkan selama memungkinkan.
·
Sistem operasi memeriksa
adakah kondisi circular wait secara periodik.
·
Pemeriksaan adanya deadlock
dapat dilakukan setiap ada sumber daya yang hendak digunakan oleh sebuah
proses.
·
Memeriksa dengan
algoritma tertentu.
Ada
beberapa jalan untuk kembali dari Deadlock, yaitu:
1.Lewat Preemption Dengan cara untuk sementara waktu menjauhkan sumber daya dari
pemakainya, dan memberikannya pada proses yang lain. Ide untuk memberi pada
proses lain tanpa diketahui oleh pemilik dari sumber daya tersebut tergantung
dari sifat sumber daya itu sendiri. Perbaikan dengan cara ini sangat sulit atau
dapat dikatakan tidak mungkin. Cara ini dapat dilakukan dengan memilih korban
yang akan dikorbankan atau diambil sumber dayanya untuk sementara, tentu saja harus
dengan perhitungan yang cukup agar waktu yang dikorbankan seminimal mungkin.
Setelah kita melakukan preemption dilakukan pengkondisian proses tersebut dalam
kondisi aman. Setelah itu proses dilakukan lagi dalam kondisi aman tersebut.
2.Lewat Melacak Kembali Setelah melakukan beberapa langkah preemption, maka proses utama
yang diambil sumber dayanya akan berhenti dan tidak dapat melanjutkan
kegiatannya, oleh karena itu dibutuhkan langkah untuk kembali pada keadaan aman
dimana proses masih berjalan dan memulai proses lagi dari situ. Tetapi untuk
beberapa keadaan sangat sulit menentukan kondisi aman tersebut, oleh karena itu
umumnya dilakukan cara mematikan program tersebut lalu memulai kembali proses.
Meski pun sebenarnya lebih efektif jika hanya mundur beberapa langkah saja
sampai deadlock tidak terjadi lagi. Untuk beberapa sistem mencoba dengan cara
mengadakan pengecekan beberapa kali secara periodik dan menandai tempat
terakhir kali menulis ke disk, sehingga saat terjadi deadlock dapat mulai dari
tempat terakhir penandaannya berada
3.Lewat mematikan proses
yang menyebabkan Deadlock Cara yang
paling umum ialah mematikan semua proses yang mengalami deadlock. Cara ini
paling umum dilakukan dan dilakukan oleh hampir semua sistem operasi. Namun,
untuk beberapa sistem, kita juga dapat mematikan beberapa proses saja dalam
siklus deadlock untuk menghindari deadlock dan mempersilahkan proses lainnya
kembali berjalan. Atau dipilih salah satu korban untuk melepaskan sumber
dayanya, dengan cara ini maka masalah pemilihan korban menjadi lebih selektif,
sebab telah diperhitungkan beberapa kemungkinan jika si proses harus melepaskan
sumber dayanya.
dan untuk materi selanjutnya anda bisa melihat :
Tidak ada komentar:
Posting Komentar