Sunday, April 21, 2019

Cara memulihkan sistem dari deadlock




Helo sobat, pada kesempatan kali ini kita akan membahas mengenai cara untuk memulihkan sistem dari deadlock, oke semoga artikel ini dapat bermanfaat.

Deadlock merupakan suatu kondisi dimana dua atau lebih proses saling menunggu meminta resources untuk waktu yang tidak terbatas lamanya sampai-sampai program atau aplikasi yang kita jalankan akan stop working karna daya yang kurang didapat. Deadlock adalah efek samping dari sinkronisasi, dimana satu variabel digunakan oleh 2 proses.

Secara sederhana deadlock dapat terjadi dan menjadi hal yang merugikan, jika pada suatu saat ada suatu proses yang memakai sumber daya dan ada proses lain yang berjalan.


Pendeteksian Deadlock


Pada dasarnya kejadian deadlock sangat jarang terjadi. Apabila kondisi tersebut terjadi, masing-masing sistem operasi mempunyai mekanisme penanganan yang berbeda. Ada sistem operasi yang ketika terdapat kondisi deadlock dapat langsung mendeteksinya. 

Namun, ada pula sistem operasi yang bahkan tidak menyadari kalau dirinya sedang mengalami deadlock. Untuk sistem operasi yang dapat mendeteksi deadlock, digunakan algoritma pendeteksi. Secara lebih mendalam, pendeteksian kondisi deadlock adalah cara penanganan deadlock yang dilaksanakan apabila sistem telah berada pada kondisi deadlock. 


Sistem akan mendeteksi proses mana saja yang terlibat dalam kondisi deadlock. Setelah diketahui proses mana saja yang mengalami kondisi deadlock, maka diadakan mekanisme untuk memulihkan sistem dan menjadikan sistem berjalan kembali dengan normal.

Recovery Deadlock

Pemulihan kondisi sistem terkait dengan pendeteksian terhadap deadlock. Apabila menurut algoritma pendeteksian deadlock sistem berada pada keadaan deadlock, maka harus segera dilakukan mekanisme pemulihan sistem. Berbahaya apabila sistem tidak segera dipulihkan dari deadlock, karena sistem dapat mengalami penurunan performance dan akhirnya terhenti.


Cara-cara yang ditempuh untuk memulihkan sistem dari deadlock adalah sebagai berikut:

1.      Terminasi Proses

Pemulihan sistem dapat dilakukan dengan cara melalukan terminasi terhadap semua proses yang terlibat dalam deadlock. Dapat pula dilakukan terminasi terhadap proses yang terlibat dalam deadlock secara satu per satu sampai ‘lingkaran setan’ atau circular wait hilang. Seperti diketahui bahwa circular wait adalah salah satu karakteristik terjadinya deadlock dan merupakan kesatuan dengan tiga karakteristik yang lain. Untuk itu, dengan menghilangkan kondisi circular wait dapat memulihkan sistem dari deadlock.


2.      Rollback and Restart

Dalam memulihkan keadaan sistem yang deadlock, dapat dilakukan dengan cara sistem melakukan preempt terhadap sebuah proses dan kembali ke state yang aman. Pada keadaan safe state tersebut, proses masih berjalan dengan normal, sehingga sistem dapat memulai proses dari posisi aman tersebut. Untuk menentukan pada saat apa proses akan rollback, tentunya ada faktor yang menentukan. Diusahakan untuk meminimalisasi kerugian yang timbul akibat memilih suatu proses menjadi korban. Harus pula dihindari keadaan dimana proses yang sama selalu menjadi korban, sehingga proses tersebut tidak akan pernah sukses menjalankan eksekusi.


Pendekatan Kombinasi untuk Menghindari Deadlock, Kombinasi dari tiga pendekatan dasar


1.      Prevention
Mencegah deadlock dengan membatasi bagaimana permintaan sumber daya dapat dilakukan dalam sistem dan bagaimana mereka ditangani (system design). Tujuannya adalah untuk memastikan bahwa setidaknya salah satu syarat yang diperlukan untuk menciptakan deadlock tidak pernah terjadi.

2.      Avoidance
Sistem secara dinamis mempertimbangkan setiap permintaan dan memutuskan apakah aman untuk memberikannya pada bagian ini, sistem ini memerlukan informasi tambahan mengenai penggunaan potensi keseluruhan dari setiap sumber daya untuk setiap proses. Memungkinkan concurrency lebih. Mirip dengan perbedaan antara lampu lalu lintas dan seorang petugas polisi memimpin lalu lintas.

3.      Detection
Metode deteksi digunakan pada sistem yang mengijinkan terjadinya deadlock. tujuan metode ini adalah memeriksa apakah telah terjadi deadlock dan menentukan proses-proses dan sumber daya-sumber daya yang terlibat deadlock secara presisi. Begitu telah dapat ditentukan, sistem dipulihkan dari deadlock dengan metode pemulihan. 


Sekian pembahasan mengenai cara memulihkan sistem dari deadlock, semoga artikel ini dapat membantu dan menambah wawasan kita. Terimakasih atas kunjungan kalian.
NEXT ARTICLE Next Post
PREVIOUS ARTICLE Previous Post
NEXT ARTICLE Next Post
PREVIOUS ARTICLE Previous Post
 
banner