Deadlock dalam system Operasi
Deadlock
dalam arti sebenarnya adalah kebuntuan. Kebuntuan yang dimaksud dalam sistem
operasi adalah kebuntuan proses. Jadi Deadlock ialah suatu kondisi dimana
proses tidak berjalan lagi atau tidak ada komunikasi lagi antar proses.
Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain, proses lain itu pun sedang menunggu sumber daya yang dipegang olehnya. Dengan kata lain saat proses masuk dalam status menunggu, ia tidak akan pernah selesai menunggu, sebab sumber daya yang dibutuhkan sedang digunakan oleh proses lain yang sedang menunggu pula. Jadi tidak ada satu pun proses yang bisa running, melepaskan sumber daya, atau dibangunkan.
Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain, proses lain itu pun sedang menunggu sumber daya yang dipegang olehnya. Dengan kata lain saat proses masuk dalam status menunggu, ia tidak akan pernah selesai menunggu, sebab sumber daya yang dibutuhkan sedang digunakan oleh proses lain yang sedang menunggu pula. Jadi tidak ada satu pun proses yang bisa running, melepaskan sumber daya, atau dibangunkan.
Deadlock
tidak hanya terjadi pada dua proses dan dua sumber daya, deadlock dapat terjadi
dengan melibatkan lebih dari dua proses dan dua sumber daya.
Syarat terjadinya Deadlock yaitu :
Syarat terjadinya Deadlock yaitu :
1. Mutual
exclusion (mutual exclusion condition)
Sumber
daya saat itu diberikan pada tepat satu proses.
2. Kondisi
genggam dan tunggu (hold and wait condition)
Proses-proses
yang sedang menggenggam sumber daya, menunggu sumber daya-sumber daya baru.
3. Kondisi
non-preemption (non-preemption condition)
Sumber
daya-sumber daya yang sebelumnya diberikan tidak dapat diambil paksa dari
proses yang sedang menggenggamnya. Sumber daya-sumber daya harus secara
eksplisit dilepaskan dari proses yang menggenggamnya.
4. Kondisi
menunggu secara sirkuler (circular wait condition)
Harus
terdapat rantai sirkuler dari dua proses atau lebih, masing-masing menunggu
sumber daya yang digenggam oleh anggota berikutnya pada rantai itu.
Penanganan DeadlockBanyak
cara untuk menanggulangi deadlock:
1. Mengabaikan
masalah deadlock.
2. Mendeteksi
dan memperbaiki
3. Penghindaran
yang terus menerus dan pengalokasian yang baik dengan menggunakan protokol
untuk memastikan sistem tidak pernah memasuki keadaan deadlock . Yaitu dengan
deadlock avoidance sistem untuk men- data informasi tambahan tentang proses
mana yang akan meminta dan menggunakan sumber daya.
4. Pencegahan
yang secara struktur bertentangan dengan 4 kondisi terjadinya deadlockdengan
deadlock prevention sistem untuk memasti- kan bahwa salah satu kondisi yang
penting tidak dapat menunggu.
Penjelasan :
Ø Mengabaikan Masalah deadlock
Metode
ini lebih dikenal dengan Algoritma Ostrich. Dalam algoritma ini dikatakan bahwa
untuk menghadapi deadlock ialah dengan berpura-pura bahwa tidak ada masalah
apapun. Hal ini seakan-akan melakukan suatu hal yang fatal, tetapi sistem
operasi Unix menanggulangi deadlock dengan cara ini dengan tidak mendeteksi
deadlock dan membiarkannya secara otomatis mematikan program sehingga
seakan-akan tidak terjadi apapun. Jadi jika terjadi deadlock, maka tabel akan
penuh, sehingga proses yang menjalankan proses melalui operator harus menunggu
pada waktu tertantu dan mencoba lagi.
Ø Mendeteksi dan Memperbaiki
Caranya
ialah dengan cara mendeteksi jika terjadi deadlock pada suatu proses maka
dideteksi sistem mana yang terlibat di dalamnya. Setelah diketahui sistem mana
saja yang terlibat maka diadakan proses untuk memperbaiki dan menjadikan sistem
berjalan kembali. Ada beberapa jalan untuk kembali dari deadlock:
1.
Lewat Preemption
dengan
cara untuk sementara waktu menjauhkan sumber daya dari pemakainya, dan
memberikannya pada proses yang lain. Ide untuk memberi pada proses lain tanpa
diketahui oleh pemilik dari sumber daya tersebut tergantung dari sifat sumber
daya itu sendiri. Perbaikan dengan cara ini sangat sulit atau bisa dikatakan
tidak mungkin. Cara ini bisa dilakukan dengan memilih korban yang akan
dikorbankan atau diambil sumber dayanya utuk sementara, tentu saja harus dengan
perhitungan yang cukup agar waktu yang dikorbankan seminimal mungkin.
2.
Lewat melacak kembali
setelah
kita lakukan beberapa langkah Preemption, maka proses utama yang diambil sumber
dayanya akan berhenti dan tidak dapat melanjutkan kegiatannya, oleh karena itu
dibutuhkan langkah untuk kembali pada keadaan aman dimana proses masih berjalan
dan memulai proses lagi dari situ. Tetapi untuk beberapa keadaan sangat sulit
menentukan kondisi aman tersebut, oleh karena itu umumnya dilakukan cara
mematikan program tersebut lalu memulai kembali proses. Meskipun sebenarnya lebih
efektif jika hanya mundur beberapa langkah saja sampai deadlock tidak terjadi
lagi. Untuk beberapa sistem mencoba dengan cara mengadakan pengecekan beberapa
kali secara periodik dan menandai tempat terakhir kali menulis ke disk,
sehingga saat terjadi deadlock dapat mulai dari tempat terakhir penandaannya
berada.
3.
Lewat membunuh proses yang menyebabkan deadlock.
Cara
yang paling umum ialah membunuh semua proses yang mengalami deadlock. Cara ini
paling umum dilakukan dan dilakukan oleh hampir semua sistem operasi. Namun,
untuk beberapa sistem, kita juga dapat membunuh beberapa proses saja dalam
siklus deadlockuntuk menghindari deadlock dan mempersilahkan proses lainnya
kembali berjalan. Atau dipilih salah satu korban untuk melepaskan sumber
dayanya, dengan cara ini maka masalah pemilihan korban menjadi lebih selektif,
sebab telah diperhitungkan beberapa kemungkinan jika si proses harus melepaskan
sumber dayanya. Kriteria seleksi korban ialah :
1.
Yang paling jarang memakai prosesor
2.
Yang paling sedikit hasil programnya
3.
Yang paling banyak memakai sumber daya sampai saat ini
4.
Yang alokasi sumber daya totalnya tersedkit
5.
Yang memiliki prioritas terkecil
Pencegahan deadlock
Jika
pada awal bab ini kita membahas tentang ke-empat hal yang menyebabkan terjadinyadeadlock.
Maka pada bagian ini, kita akan membahas cara menanggulangi keempat penyebab
deadlock itu, sehingga dengan kata lain kita mengadakan pencegahan
terhadapdeadlock.
Penanggulangannya
ialah sebagai berikut :
1. Masalah
Mutual Eksklusif Kondisi ini tidak dapat dilarang, jika aksesnya perlu bersifat
spesial untuk satu proses, maka hal ini harus di dukung oleh kemampuan sistem
operasi. Jadi diusahakan agar tidak mempergunakan kondisi spesial tersebut
sehingga sebisa mungkin deadlock bisa dihindari.
2. Masalah
Kondisi Menunggu dan Memegang Penanggulangan deadlock dari kondisi ini lebih
baik dan menjanjikan, asalkan kita bisa menahan proses yang memegang sumber
daya untuk tidak menunggu sumber daya laun, kita bisa 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. Yang mengatur hal ini bisa sistem operasi ataupun sebuah
protokol. Hasil yang bisa terjadi ialah sumber daya lebih di-spesifikasi dan
kelaparan sumber daya, atau proses yang membutuhkan sumber daya yang banyak
harus menunggu sekian lama untuk mendapat sumber daya yang dibutuhkan.
3. Masalah
tidak ada Preemption Hal ketiga ialah jangan sampai ada preemption pada sumber
daya yang telah dialokasikan. Untuk memastikan hal ini, kita bisa menggunakan
protokol. Jadi jika sebuah proses meminta sumber daya yang tidak dapat dipenuhi
saat itu juga, maka proses mengalami preempted. Atau dengan kata lain ada
sumber daya dilepaskan dan diberikan ke proses yang menunggu, dan proses itu
akan menunggu sampai kebutuhan sumber dayanya dipenuhi.
1 komentar:
If you're trying to lose weight then you certainly need to start following this totally brand new custom keto meal plan.
To create this keto diet service, certified nutritionists, personal trainers, and top chefs joined together to develop keto meal plans that are efficient, suitable, economically-efficient, and satisfying.
Since their grand opening in early 2019, thousands of individuals have already transformed their figure and health with the benefits a great keto meal plan can give.
Speaking of benefits: clicking this link, you'll discover 8 scientifically-proven ones provided by the keto meal plan.
Posting Komentar