Thursday, June 9, 2011

Deadlock

Deadlock menurut bahasa adalah buntut atau kebuntuan, terkunci.
Sedangkan menurut pengertian deadlock adalah sebuah proses yang memerlukan satu sumber daya atau lebih mengalami penundaan ataupun menunggu sumber daya digunakan oleh proses yang lain.
Sumber daya bersifat :
  • Preemptible : dapat mengambil dari proses lain tanpa ada efek lain, contoh : memori CPU.
  • Non-preemptible : tidak boleh mengambil sumber daya yang masih digunakan oleh proses lain, contoh : printer.


Akibat dari Deadlock!!!
Apabila peristiwa deadlock terjadi dalam kurung waktu yang lama maka akan terjadi “starvation”. Hal-hal yang membuat peristiwa startvation terjadi adalah satu proses, dua proses atau lebih yang memerlukan sumber daya secara bersamaan dan sumber daya yang dibutuhkan tidak sedikit sehingga menyebabkan proses lain tidak memperoleh sumber daya dan menunggu lama atau lebih buruknya lagi proses tersebut diabaikan oleh sumber daya.

Deadlock memiliki Model Sistem
Sebuah proses melakukan tiga hal yang dilakukan ketika menggunakan sumber daya :
  • Meminta (Request) : sebuah proses mengajukan permohonan kepada sumber daya untuk menggunakan jasa sumber daya sebagai alat transportasi.
  • Menggunakan (Use) : proses menggunakan jasa sumber daya sebagai alat transportasi.
  • Melepas (Release) : proses melepas sumber daya sebagai jasa pengantar.

Syarat terjadinya dan penyebab deadlock

Mutual Exclusion : sebuah proses memiliki hak pribadi untuk menggunakan sumber daya yang digunakan selama proses berjalan hingga sampai tujuan dan proses lain baru bisa menggunakan sumber daya tersebut.

Hold and Wait : sebuah proses pertama yang membutuhkan dua sumber daya dimana proses tersebut sudah memperoleh satu sumber daya dan membutuhkan satu sumber daya lagi tapi untuk menambah sumber daya proses pertama harus menunggu proses kedua melepas sumber daya dan sedangkan proses ketiga membutuhkan sumber daya yang sama dengan proses kedua dan pada akhirnya salah satu proses diatas akan menahan sumber daya yang dibutuhkan dan menunggu sumber daya yang lain dilepas oleh proses lain.

No Preemption : selanjutnya adalah sebuah proses yang menggunakan sumber daya terlebih dahulu hingga selesai kemudian diberikan kepada proses lain yang membutuhkan sumber daya,apabila proses tersebut belum selesai menggunakan maka proses yang lain harus menunggu hingga proses tersebut selesai.

Circular Wait : adalah sebuah siklus yang membentuk sebuah lingkaran dimana sebuah proses disimbolkan dengan titik kecil, proses pertama memerlukan sumber daya yang dimiliki oleh proses kedua sedangkan proses kedua juga memerlukan sumber daya yang dimiliki oleh proses ketiga dan bahkan proses ketiga juga memerlukan sumber daya yang dimiliki oleh proses pertama. Dan siklus ini disebut dengan “lingkaran setan buntu”.


Cara Penanganan Deadlock.

Mengabaikan : tidak menunggu peristiwa deadlock selesai yang kemungkinan tidak akan selesai, mematikan proses yang sedang berjalan yaitu dengan menekan ctrl + alt + del atau restart sehingga dapat menghentikan proses deadlock.

Pencegahan : mencegah salah satu karakteristik yang dimiliki oleh deadlock sehingga peristiwa deadlock tidak akan terjadi. karena peristiwa deadlock akan terjadi apabila dipengaruhi oleh keempat karakteristik deadlock.

Penghindaran : memperkirakan terjadinya peristiwa deadlock di OS pada waktu menjalankan aplikasi yang memiliki kemungkinan terjadi deadlock, menghentikan arus sumber daya dengan proses yang memiliki sumber daya lebih dan mengalihkan sumber daya kepada proses yang membutuhkan, dan untuk menghindari sebuah deadlock perlu digunakan state safe (tidak terjadi deadlock) dan unsafe (terjadi deadlock), banker's algorithm.

Pendeteksian dan Pemulihan : cara terakhir ini merupakan langkah lanjut dari langkah kedua dan ketiga yang tidak berhasil sehingga menghasilkan data mengenai letak terjadinya deadlock kemudian mengambil langkah pemulihan dengan melakukan terminasi proses pada keempat karakteristik deadlock atau menggunakan teknik rollback (mengembalikan kegunaan proses keadaan semula ) dan restart ( merefresh OS dari proses yang error sehingga dapat mengembalikan keadaan proses seperti semula ) pada peristiwa deadlock.

Banker's Algoritma
memodelkan banker di sebuah kota kecil yang berurusun dengan sekumpulan nasabah memohon kredit. Dan mengizinkan ketiga kondisi terjadinya deadlock aktif yaitu : mutual exclusion, hold-wait, dan non-preemption. Untuk tidak terjadinya deadlock, seorang nasabah atau proses dapat melakukan kondisi mutual exclusion dan hold –wait secara bersamaan apabila nasabah dapat menggunakan dengan tepat. Dan ada kemungkinan sebuah proses akan melanjutkan kondisi ketiga jika sumber daya yang dibutuhkan kurang mencukupi, untuk mecegah hal itu diperlukan state safe dan state unsafe. Sehingga sebuah proses akan mendapat pemberitahuan bahwa akan terjadi deadlock dan segara menyelesaikan sumber daya yang dipegang atau memberikan alternatif dalam memberikan sumber daya yang dibutuhkan oleh proses tersebut.

Kelemahan
  • Proses-proses jarang mengetahui di awal proses jumlah maksimum sumber daya yang dibutuhkan.
  • Jumlah proses tidak tetap, secara dinamis beragam begitu pemakai login dan logout.
  • Algoritma menghendaki client-client mengembalikan sumber daya sesuai dengan waktu yang ditentukan.
  • Algoritma menghnedaki memberikan semua permintaan selama waktu yang berhingga.
  • Proses-proses harus independen, yaitu urutan proses-proses dieksekusi tidak dibatasi kebutuhan sinkronisasi antarproses.
  • Persediaan sumber daya sewaktu-waktu dapat berupa sesuai dengan permintaan proses yang membutuhkan.

State Safe and State Unsafe
  • State safe adalah cara mengatur kebutuhan sebuah proses menurut sumber daya yang paling dibutuhkan oleh proses tersebut sehingga sumber daya tersebut dapat dilepaskan oleh proses.
  • State unsafe adalah terjadinya kesalahan dalam pengaturan pengambilan sumber daya oleh proses sehingga sebuah proses mengalami hold and wait, non-preemption.

Kesimpulan
Deadlock : sebuah kejadian dimana terjadi penumpukan proses yang sedang menunggu proses yang lain menggunakan sumber daya.

Startvation : kejadian yang disebabkan oleh deadlock yang terjadi lama sehingga membuat proses yang menunggu atau tidak memperoleh giliran untuk memperoleh sumber daya.

Karakteristik terjadinya deadlock :
  • Mutual Exclusion . 
  • Hold and Wait . 
  • No Preemption . 
  • Circular Wait . 

Mekanisme penanganan deadlock :
  • Pengabaian.  Ostrich Algorithm.
  • Pencegahan. Mencegah terjadinya salah satu kondisi deadlock.
  • Penghindaran. Memastikan sistem berada pada safe state dan dengan menggunakan deadlock avoidance algorithm.
  • Pendeteksian dan Pemulihan. Mekanisme pendeteksian menggunakan detection algorithm, sedangkan pemulihan dengan cara rollback and restart sistem ke safe state.

1 comment: