Gambar

Senin, 05 Juli 2010

KOMPUTER ANDA HANG atau tidak bisa digerakkan?? IT’S CALLED DEADLOCK

Mungkin diantara kita sering mengalami hal ini, komputer menjadi macet, tidak bisa melakukan proses apapun bahkan pergerakan mouse saja tidak ada. Inilah yang dinamakan deadlock atau istilah gaulnya adalah hang atau menggantung. Banyak dari kita yang langsung melakukan gerak cepat seperti menekan tombol CTRL + ALT + DEL untuk menampilkan task manager dan mematikan proses yang sekiranya menjadi penyebab terjadinya deadlock tersebut. Atau mungkin ada diantara kita yang ketika melihat komputernya macet, menunggu hingga berjam-jam berharap komputernya akan bekerja kembali, ternyata tidak. Bahkan ada pula yang langsung menekan tombol power lama-lama kemudian menyalakannya kembali atau me-restart-nya. Lalu apakah yang dimaksud dengan deadlock, penyebabnya dan bagaimana untuk menyelesaikannya akan dibahas pada artikel di bawah ini.


Pengertian Deadlock secara harfiah artinya adalah jalan buntu. Di dalam sistem operasi berarti suatu kondisi di mana tidak adanya komunikasi antar proses dimana sekumpulan proses itu tidak dapat berjalan kembali. Penyebab terjadinya adalah karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain yang sedang menunggu sumber daya yang dipegang oleh proses tersebut. Penyebab utama terjadinya deadlock adalah terbatasnya sumber daya yang akan digunakan oleh proses-proses. Tiap proses berkompetisi untuk memperebutkan sumber daya yang ada. Jadi deadlock berhubungan erat dengan tersedianya sumber daya dari komputer.
Karakteristik Deadlock
Menurut Coffman(1971) ada empat kondisi yang dapat menyebabkan terjadinya deadloock. Dan keempat kondisi tersebut tidak dapat berdiri sendiri, saling mendukung. Jadi jika tidak ada salah satu dari bagian ini maka tidak akan terjadi deadlock.
1.Mutual Eksklusif
Hanya ada satu proses yang bisa menggunakan sumber daya tersebut. Jika ada proses lain yang meminta sumber daya tersebut, maka proses itu harus menunggu sampai sumber daya dilepaskan.
2.Memegang dan Menunggu
Proses yang meminta sumber daya sudah memegang sumber daya lainnya(meminta sumber daya tambahan).
3.Tidak ada Preemption
Sumber daya yang sudah dialokasikan untuk sebuah proses tidak bisa diminta oleh proses lain. Sumber daya hanya bisa dilepaskan secara sukarela atau setelah proses tersebut selesai menggunakannya.
4.Circular Wait (menunggu berputar)
Kondisi seperti rantai yaitu saling menunggu sumber daya yang dipakai oleh proses yang menunggu sumber daya tersebut.

Pencegahan Deadlock
Pencegahan deadlock dapat dilakukan dengan cara sebagai berikut :
1.Masalah Mutual Eksklusi
Kondisi ini tidak dapat dilarang, jika aksesnya perlu bersifat spesial untuk satu proses,maka hal ini harus didukung oleh kemampuan sistem operasi. Jadi diusahakan agar tidak menggunakan kondisi spesial tersebut sehingga sedapat mungkin deadlock dapat dihindari.
2.Masalah Kondisi Menunggu dan Memegang
Penanggulangan deadlock dari kondisi ini lebih baik dan menjanjikan, asalkan kita dapat memegang sumber daya untuk menunggu sumber daya lain, kita dapat mencegah deadlock. Caranya ialah dengan meminta semua sumber daya yang ia butuhkan sebelum proses berjalan. Tetapi masalahnya sebagian proses tidak mengetahui keperluannya sebelum ia berjalan. Jadi untuk mengatasi hal ini, kita dapat menggunakan algoritma bankir. Sistem operasi atau sebuah protokol mengatur hal ini. Hasil yang dapat terjadi adalah sumber daya lebih harus dispesifikasikan dan kelaparan sumber daya, atau proses yang membutuhkan sumber daya yang banyak harus menunggu sekian lama untuk mendapatkan sumber daya yang ia butuhkan.
3.Masalah tidak preemption
Hal ketiga ialah jangan sampai ada preemption pada sumber daya yang telah dialokasikan. Untuk memastikan hal ini, kita dapat menggunakan protocol. Jadi jika sebuah proses meminta sumber daya yang tidak dapat ia penuhi saat itu juga, maka proses mengalami preempted. Dengan kata lain ada sumber daya dilepaskan dan diberikan ke proses yang menunggu, dan proses itu akan menunggu sampai kebutuhan sumber dayanya dipenuhi. Cara lain yaitu dengan mengecek apakah sumber daya yang dicari proses tersedia atau tidak. Jika ada maka langsung dialokasikan tetapi jika tidak maka kita cek apakah ada proses lain yang sedang menunggu sumber daya juga. Jika ya maka kita ambil sumber daya dari proses yang sedang menunggu tersebut dan memberikan kepada proses yang meminta sumber daya tersebut. Jika tidak tersedia juga maka proses tersebut harus menunggu. Dalam menunggu beberapa dari sumber dayanya dapat saja dipreempted jika ada proses yang memintanya. Cara ini efektif untuk proses yang menyimpan dalam memory atau register.
4.Masalah lingkaran tunggu
Masalah ini dapat ditangani oleh sebuah protocol yang menjaga agar sebuah proses tidak membuat lingkaran sikus yang dapat mengakibatkan deadlock dengan cara memberikan penomoran kepada sumber daya, dan bila suatu proses meminta sumber daya lagi maka ia hanya dapat meminta sumber daya yang nomornya lebih tinggi dari yang ia minta sebelumnya.

Metode untuk Menangani Deadlock
Pada prinsipnya kita dapat menangani deadlock dengan beberapa cara:
1.Menggunakan protokol untuk pencegahan atau penghindaran deadlock, memastikan bahwa sistem tidak akan memasuki kondisi deadlock.
2.Kita bisa mendeteksi terjadinya deadlock lalu memperbaiki.
3.Kita juga bisa mengabaikan deadlock, hal ini dilakukan pada sistem operasi berbasis UNIX.
Untuk memastikan sistem tidak memasuki deadlock, sistem dapat menggunakan pencegahan deadlock atau penghindaran deadlock. Penghindaran deadlock membutuhkan informasi tentang sumber daya yang mana yang akan suatu proses meminta dan berapa lama akan digunakan. Dengan informasi tersebut dapat diputuskan apakah suatu proses harus menunggu atau tidak. Hal ini disebabkan oleh keberadaan sumber daya, apakah ia sedang digunakan oleh proses lain atau tidak.  Jika sebuah sistem tidak memastikan deadlock akan terjadi, dan juga tidak didukung dengan pendeteksian deadlock serta pencegahannya, maka kita akan sampai pada kondisi deadlock yang dapat berpengaruh terhadap performance system karena sumber daya tidak dapat digunakan oleh proses sehingga proses-proses yang lain juga terganggu. Akhirnya sistem akan berhenti dan harus direstart.

Comments :

0 komentar to “KOMPUTER ANDA HANG atau tidak bisa digerakkan?? IT’S CALLED DEADLOCK”

Posting Komentar

 

Copyright © 2009 by All About Computer Science