Penghindaran DeadLock


Nama Kelompok :
1. Sherly 210.511.013
2. Megga Farah Nazsa 210.511.016
3. Sri Romadhani 210.511.045
4. Kartika Wahyuningtyastuti 210.511.164
Halo. Pada artikel ini kami akan menulis tentang Penghindaran DeadLock Sistem Operasi. Kami minta maaf apabila ada penulisan kami yang kurang berkenan. Semoga artikel ini dapat membantu dan bermanfaat bagi pembaca dan kami untuk lebih menambah ilmu. Amin.
Langsung aja, pada bahasan kali ini saya akan menjelaskan tentang penghindaran, dan pemulihan deadlock. J
Penghindaran Deadlock 

Penghindaran terhadap deadlock adalah Cara penanganan yang selanjutnya. Inti dari penghindaran adalah jangan sembarangan membolehkan proses untuk memulai atau meminta lagi. Maksudnya jangan pernah memulai suatu proses apabila nantinya akan menuju ke keadaan deadlock. Kedua, jangan memberikan kesempatan pada proses untuk meminta sumber daya tambahan jika penambahan tersebut akan membawa sistem pada keadaan deadlock. Tidak mungkin akan terjadi deadlock apabila sebelum terjadi sudah kita hindari.
Langkah lain untuk menghindari adalah dengan cara tiap proses memberitahu jumlah kebutuhan maksimum untuk setiap tipe sumber daya yang ada. Selanjutnya terdapat deadlock-avoidance algorithm yang secara rutin memeriksa state dari sistem untuk memastikan tidak adanya kondisi circular wait serta sistem berada pada kondisi safe state. Safe state adalah suatu kondisi dimana semua proses mendapatkan sumber daya yang dimintanya dengan sumber daya yang tersedia. Apabila tidak bisa langsung, ia harus menunggu selama waktu tertentu, kemudian mendapatkan sumber daya yang diinginkan, melakukan eksekusi, dan terakhir melepas kembali sumber daya tersebut.
Terdapat dua jenis algoritma penghindaran yaitu
·         Resource-Allocation Graph untuk Single Instances Resources
·         Banker's Algorithm untuk Multiple Instances Resources.
Dalam banker's algorithm, terdapat beberapa struktur data yang digunakan, yaitu:
·         Available . Jumlah sumber daya yang tersedia. Max . Jumlah sumber daya maksimum yang diminta oleh tiap proses.
·         Allocation . Jumlah sumber daya yang sedang dimiliki oleh tiap proses.
·         Need . Sisa sumber daya yang masih dibutuhkan oleh proses, didapat dari max- allocation.
Kemudian terdapat safety algorithm untuk menentukan apakah sistem berada pada safe state atau tidak.
Strategi menghindari deadlock:
·         Saat proses melakukan permintaan resource, asumsikan permintaan akan dikabulkan
·         Update sistem
·         Menetapkan apakah hasilnya safe state
·         Jika iya, kabulkan
·         Jika tidak, blokir hingga ditemukan saat yang aman untuk mengabulkan permintaan
Keterbatasan dalam proses penghindaran deadlock:
·         Jumlah kebutuhan resource maksimum tiap proses harus ditetapkan terlebih dahulu
·         Proses harus independen
·         Jumlah resource yang dialokasikan harus tetap
Tidak ada proses yang keluar selama memegang resource.
Pendeteksian Deadlock
Pada dasarnya kejadian deadlock sangatlah 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.
Mekanisme pendeteksian adalah dengan menggunakan detection algorithm yang akan memberitahu sistem mengenai proses mana saja yang terkena deadlock. Setelah diketahui proses mana saja yang terlibat dalam deadlock, selanjutnya adalah dengan menjalankan mekanisme pemulihan sistem yang akan dibahas pada bagian selanjutnya. Berikut ini adalah algoritma pendeteksian deadlock. :
1.      Tandai setiap proses yang memiliki baris dalam matriks allocation yang seluruhnya 0 (nol).
2.      Inisialisasi vektor temporer W sehingga sama dengan  vektor available.
3.      Temukan indeks i dimana nilainya pada matriks claim lebih kecil atau sama dengan W. Jika tidak ditemukan, hentikan algoritma.
4.      Jika ditemukan, tandai proses i dan tambahkan baris matriks alokasi yang bersangkutan ke W.
5.      Ulang langkah 3.
Pemulihan 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.Dalam melakukan terminasi terhadap proses yang deadlock.
Terdapat beberapa faktor yang menentukan proses mana yang akan diterminasi :
·                     Faktor pertama adalah prioritas dari proses-proses yang terlibat deadlock.
·                     Faktor kedua adalah berapa lama waktu yang dibutuhkan untuk eksekusi dan waktu proses menunggu sumber daya. Faktor ketiga adalah berapa banyak sumber daya yang telah dihabiskan dan yang masih dibutuhkan.
·                     Faktor ketiga adlah faktor utilitas dari proses pun menjadi pertimbangan sistem untuk melakukan terminasi pada suatu proses.
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.
Sekian yang saya bahas pada artikel kali ini. Di tunggu ya artikel -artikel kami berikutnya. Keep Update..! J

Referensi :










  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar