![Deadlock Deadlock](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHvWSwHYTnpJwwc_XA1L8MkpwKQ25yKLR5omlNAaJvMzLbEDKoi5goDnRjDWc4Bk65j00EwmKzYx6FkrfCU3GjLq128fKLYqtsqMHwmGD56jfXqlWLYq7XRtQunxJe98YlGNu2pPMJUub8/s16000/1613999788-picsay.jpg)
Mungkin anda pernah mengalami not responding, lemot, bahkan hang saat anda membuka beberapa aplikasi pada perangkat komputer anda secara bersamaan. Salah satu penyebabnya adalah deadlock, karena deadlock adalah kondisi dimana beberapa program tidak mendapatkan sumber daya yang dibutuhkan sesuai kebutuhan.
Misalnya dua program yang berjalan secara bersamaan saling memegang kontrol sumber daya yang dibutuhkan secara bersamaan, tidak ada yang dapat melanjutkan proses sampai program yang lain memberikan sumber dayanya, tetapi kedua program tersebut tidak ada yang mau mengalah. Maka setiap proses yang berjalan akan mengalami deadlock karena tidak ada yang mendapatkan sumber daya yang dibutuhkan.
Syarat tejadinya deadlock
Sebelum melanjutkan ke syarat terjadinya deadlock anda harus mengetahui sirkulasi deadlock, sirkulasi deadlock yaitu resource atau segala macam sumber daya yang dibutuhkan untuk menjalankan suatu program, berikut adalah contoh bentuk resource:
- RAM (sebagai memori utama untuk menjalankan program komputer)
- CPU (sebagai otak dari komputer yang mengolah masukan menjadi keluaran)
- I/O (input dan output juga termasuk resouce, misalnya printer, speaker,mouse, monitor,dll)
- dan masih banyak lagi bentuk-bentuk resource lainya
Berikut ini adalah beberapa syarat terjadinya deadlock pada sebuah perangkat komputer secara umum.
Mutual exclusion
Mutual exclusion adalah suatu kondisi dimana hanya ada salah satu proses yang diperbolehkan untuk memakai sumber daya, sehingga proses yang lain harus menunggu sampai sumber daya tersebut dilepaskan atau menunggu sampai tidak ada proses lain yang memakai sumber daya.
Hold and wait
Salah satu syarat terjadinya deadlock pada suatu perangkat komputer adalah hold and wait, hold and wait adalah sebuah kondisi dimana sebuah proses yang sedang memakai sumber daya dapat meminta sumber daya lagi. Maksudnya proses tersebut akan menunggu hingga benar-benar sudah tidak ada proses lain yang menggunakan sumber daya. Hal tersebut dapat menyebabkan kelaparan sumber daya bagi proses yang lain karena bisa saja proses lain tidak mendapatkan sumber daya dalam jangka waktu yang lama.
No preemtion
Syarat terjadinya deadlock selanjutnya adalah no preemption,no preemtion adalah kondisi ketika sumber daya yang ada pada sebuah proses tidak dapat diambil oleh proses yang lain. Agar proses yang lain dapat mendapatkan sumber daya tersebut maka proses tersebut harus melepaskan sumber dayanya, atau proses yang sedang memegang sumber daya harus melepaskan sumber dayanya terlebih dahulu. Jika sumber daya belum dilepaskan maka hanya proses yang memiliki sumber daya yang dapat berjalan.
Circular wait
Circular wait adalah sebuah kondisi dimana yang menyatakan adanya rantai saling meminta sumber daya yang dimiliki oleh salah satu proses oleh proses lainya.
Ketiga kondisi pertama adalah syarat utama terjadinya deadlock, tidak mungkin terjadi deadlock jika tidak ada syarat yang terpenuhi dari ketiga syarat di atas. Namun adanya ketiga syarat tesebut belum berarti deadlock akan terjadi, karena deadlock akan benar-benar terjadi bila kondisi keempat terpenuhi. Bila salah satu dari kondisi tidak terpenuhi maka deadlock tidak akan terjadi.
Resourse Allocatopn Graph
Resourse Allocation Graph adalah sebuah cara untuk menentukan apakah ada deadlock, jadi disini dapat menentukan apakah akan terjadi deadlock pada sebuah sistem.
Metode pengendalian deadlock
Ada banyak strategi untuk mengatasi deadlock, namun strategi yang paling tepat dan sering digunakan adalah metode burung unta. Dan berikut adalah beberapa metode atau strategi untuk mengatasi deadlock.
Metode burung unta
Metode burung unta adalah metode yang paling sering digunakan untuk mengatasi deadlock, metode ini mirip dengan kelakuan burung unta yang yang sering memasukan kepalanya ke pasir dan seolah tidak terjadi apa-apa. Jadi banyak orang yang belum mengenal apa itu deadlock dan membiarkanya, jalan ninjannya adalah dengan mereset atau mematikan perangkat komputer mereka.
Memastikan bahwa deadlock tidak pernah ada
Metode yang satu ini adalah metode pencegahan yang mengizinkan empat kondisi deadlock, namun menghentikan setiap proses yang memiliki kemungkinan besar akan menyebabkan deadlock.
Membiarkan deadlock terjadi
Metode ini menggunakan 2 step atau 2 langkah yang dibutuhkan, yaitu membiarkan deadlock terjadi dan melakukan pendeteksian terhadap deadlock. Dan melakukan pemulihan deadlock dengan cara mengembalikan kembali sumber daya yang dibutuhkan kepada proses yang membutuhkannya.
Deadlock prevetion (pencegahan deadlock)
Dradlock prevetion adalah mencegah agar suatu sistem operasi tidak mengalami deadlock, berikut adalah beberapa cara yang bisa dilakukan untuk mencegah terjadinya deadlock.
Mencegah mutual exclusion
Cara yang pertama adalah dengan mencegah mutual exclusion terjadi, seperti yang sudah dijelaskan di atas yaitu memastikan tidak ada 2 proses atau lebih yang menggunakan sumber daya secara bersamaan dan tidak ada yang mau mengahalah. Untuk mengatasinya yaitu dengan melakukan spooling sumber daya dengan mengantrikannya, jadi hanya ada 1 proses yang menggunakan sumber daya dan yang lainya akan mengantri untuk mendapatkan sumber daya.
Mencegah hold and wait
Hold and wait dapat dicegah dengan cara mengharuskan sistem untuk menjamin jika suatu proses meminta sumber daya, maka proses tersebut sedang tidak memegang sumber daya yang lain
Mencegah non preemption
Non preemtion adalah adanya proses yang saling menunggu untuk mendapatkan sumber daya, untuk mencegahnya adalah dengan memastikan tidak ada proses yang saling tunggu. Jika suatu proses yang membutuhkan sumber daya meminta sumber daya lain yang tidak dapat segera dipenuhi untuk dialokasikan ke proses tersebut, maka semua sumber daya yang digunakan pada proses tersebut harus dilepaskan.
Mencegah terjadinya circular wait
Proses hanya boleh dilakukan untuk menggenggam satu sumber daya pada suatu saat penomoran global semua sumber daya.
Deadlock avoidence (menghindari deadlock)
Untuk emghndari terjadinya deadlock diperlukan sistem yang memiliki tambahan priority informasi.
Model yang paling sederhana dan paling bermanfaat, memerlukan pernyataan dari setiap proses mengenai jumlah maksimum sumber daya dari setiap jenis yang membutuhkan.
Deadlock avoidence algorithm adalah algoritma yang berfungsi untuk mengindari deadlock dengan cara menguji status alokasi sumber daya.
Resource allocation status adalah sebuah program yang akan menampilkan pembagian resource dan permintaan resource pada sebuah perangkat komputer, dapat dilihat melalui task manager untuk sistem operasi windows.
Demikian artikel tentang syarat terjadinya deadlock pada sebuah komputer, pada initinya deadlock hanya akan benar-benar terjadi jika keempat syarat terpenuhi (mutual exclusion, hold and wait, no preemption, dan circular wait) anda dapat mencegah terjadinya deadlock dengan cara mencegah salah satu syarat di atas. Semoga artikel ini bisa bermanfaat bagi anda semua, jika ada pertanyaan silahkan cantumkan di kolom komentar.
Komentar
Posting Komentar
Berkomentar dengan baik dan dilarang mencantumkan link aktif, jika ada komentar dengan link aktif akan admin nonaktifkan.