Deadlock menurut pengertian bahasa adalah kebuntuan atau terkunci, jadi deadlock adalah kejadian dimana sebuah proses yang membutuhkan sumber daya tidak dapat dipenuhi dikarenakan sumber daya yang dibutuhkan masih digunakan oleh proses lain. Jika peristiwa deadlock terjadi maka akan memicu stravation adalah sebuah kejadian dimana banyak proses yang berjalan dan membutuhkan sumber daya lebih dari satu dan ada kemungkinan membutuhkan sumber daya yang sama.
Model Sistem
Sebuah proses akan melakukan beberapa tahap dan kegiatan dalam mengolah proses yaitu terbagi menjadi tiga bagian,
Request ( Meminta ) : langkah awal, sebuah proses akan meminta kepada tempat penyimpanan sumber daya, dan memberikan laporan mengenai jumlah sumber daya yang dibutuhkan.
Use ( Menggunakan ) : setelah memperoleh sumber daya, kemudian proses akan mengolah sumber daya hingga selesai.
Release ( Melepaskan ) : kemudian sumber daya akan dikembalikan kepada tempat penyimpanan sumber daya.
Karakteristik
Untuk memenuhi kejadian deadlock tentunya harus memenuhi beberapa tingkah laku yang memicu kejadian tersebut, terdapat empat kondisi yang memicu deadlock.
Mutual exclusion adalah hak yang dimiliki oleh sebuah proses untuk menggunakan sumber daya hingga selesai, dan apabila ada proses yang membutuhkan sumber daya yang sama maka harus menunggu hingga selesai.
Hold and wait adalah ketika sebuah proses sudah memegang sumber daya dan akan melakukan eksekusi tapi untuk melakukan eksekusi, proses masih membutuhkan sumber daya lain, maka proses tersebut akan menunggu sumber daya yang digunakan oleh proses lain hingga selesai.
No-preemption adalah sebuah proses tidak dapat memaksa proses lain untuk segera menyelesaikan eksekusi dan kemudian melepaskan sumber daya tersebut.
Circular wait adalah kondisi terakhir apabila ketiga kondisi diatas terjadi secara terus menerus, maka akan terjadi peristiwa dimana beberapa proses saling membutuhkan sumber daya yang sama digunakan oleh proses lain secara menerus hingga membentuk siklus dan setiap proses akan terus menunggu sumber daya itu selesai.
Cara Menghadapi Situasi Deadlock
Terdapat empat teknik untuk menghadapi kejadian deadlock yaitu :
1. Pengabaian
Ketika sebuah sistem melakukan pengeksekusian proses lebih dari satu maka ada kemungkinan akan terjadi deadlock, maka digunakan teknik pengabaian maksud dari teknik ini adalah menghentikan semua proses yang sedang berjalan dan ada kemungkinan akan memicu terjadinya kondisi awal deadlock tanpa memperdulikan sumber daya sedang digunakan oleh proses tersebut. teknik ini disebut dengan ostrich alogrithim.
Kelebihan
• Proses deadlock dapat dicegah lebih dini dan tidak terjadi stravation.
• Kondisi proses dapat kembali seperti semula.
Kekurangan
• hasil sumber daya yang akan dieksekusi hilang
• ada kemungkinan sumber daya hilang.
2. Mencegah
Menghentikan salah satu kondisi yang memicu deadlock. Yaitu dengan memberikan sumber daya lain kepada proses yang membutuhkan atau menghentikan proses lain untuk sementara dan digantikan pada proses yang dapat menjalankan sumber daya tersebut tanpa membutuhkan sumber daya yang lain.
Kelebihan
• Mengurangi resiko deadlock.
• Sumber daya tidak rusak.
Kekurangan
• Tertundanya proses eksekusi sumber daya.
• Proses harus mengulang dari awal lagi untuk melengkapi proses eksekusi.
3. Menghindari
Teknik ini memberikan peluang keamanan pada sumber daya yang lebih aman dari pada teknik yang ada diatas. Karena teknik memberikan tanda state safe yaitu memberikan tanda dan tempat kepada prose bahwa sumber daya yang ini dapat digunakan dan belum ada yang menggunakan dan state unsafe yaitu memberikan tanda bahwa sumber daya ini telah digunakan oleh proses lain dan jika masih mau menunggu maka akan terjadi deadlock.
Kelebihan
• Proses dapat menjalankan eksekusi tanpa harus menunggu.
• Sumber daya digunakan sesuai dengan permintaan proses.
Kekurangan
• Waktu terbatas, proses dituntut untuk segera menyelesaikan eksekusi tepat waktu.
• Hasil dari eksekusi masih belum berhasil dan harus diulang lagi.
4. Mendeteksi dan Memulihkan
Teknik ini akan melakukan pendeteksian deadlock sesuai dengan procedure detection alogrithm sehingga kondisi – kondisi yang memicu deadlock dapat diketahui, selanjutnya melakukan teknik pemulihan sistem yang akan terjadi deadlcok dengan dua langkah yaitu:
• Terminasi Proses yaitu menghentikan proses secara paksa jika proses tersebut akan menimbulkan deadlock. Atau menghentikan salah satu kondisi yang akan memicu deadlock.
• Rollback dan Restart yaitu menghentikan proses secara paksa kemudian meletakan kembali sumber daya kepada tempatnya dan memberikan status state safe, maka proses dapat meminta dan menggunakan sumber daya. Dan jika teknik rollback tidak berhasil maka langkah selanjutnya yaitu me-restrat sistem agar kembali kepada kondisi awal.
Kelebihan
• Deadlock jarang terjadi.
• Proses dapat berjalan sesuai keinginan sistem.
Kekurangan
• Proses eksekusi terlambat.
Studi kasus
Kasus yang sering terjadi ketika kita menjalankan dua aplikasi lebih dari satu yang memperlukan proses yang cepat dan sumber daya ( berupa data yang ada diharddisk, flashdisk, listrik pada baterai dan kepada device lain ) yang banyak pula, maka akan terjadi peristiwa deadlock yaitu ditandai dengan aplikasi tidak dapat berjalan, PC akan berhenti sejenak atau terus menerus, untuk mencegah hal itu berlangsung lama, maka harus mengambil langkah untuk menghentikan salah satu aplikasi yang sedang berjalan lambat dengan ditutup, jika tidak berhasil klik taskmanager ( ctrl+alt+del ) kemudian klik proses dan cari nama aplikasi yang ingin ditutup agar dapat mencegah terjaidnya deadlock.
Rujukan
[Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005 . Operating Systems Concepts. Seventh Edition. John Wiley & Sons.
[Tanenbaum1997] Andrew S Tanenbaum dan Albert S Woodhull. 1997 . Operating Systems Design and Implementation . Second Edition. Prentice-Hall.
[WEBRpi2004] Computer Science RPI. 2004 . Deadlock http://www.cs.rpi.edu/academics/courses/fall04/os/c10/index.html. Diakses 28 Maret 2007.
[WEBWiki2006a] Wikipedia. 2006 . Deadlock http://en.wikipedia.org/wiki/Deadlock. Diakses 05 Februari 2007.
[WEBWiki2006b] Wikipedia. 2006 . Banker's Algorithm http://en.wikipedia.org/wiki/Banker%27s_algorithm. Diakses 16 Februari 2007.
Tidak ada komentar:
Posting Komentar