Monday, 19 January 2015

pengertian deadlock,pencegahannya

A. PENGERTIAN DEADLOCK

Dalam Sistem Operasi, suatu proses disebut deadlock jika:

Suatu proses menunggu suatu kejadian tertentu yang tidak akan pernah terjadi, karena kejadian itu hanya bisa dilakukan oleh proses lain. Atau suatu keadaan menunggu yang tidak akan pernah berakhir (kebuntuan).

Setiap proses yang menggunakan sumber daya menjalankan urutan
operasi sebagaiberikut :
• meminta (request) : meminta sumber daya
• memakai (use) : memakai sumber daya
• melepaskan (release) : melepaskan sumber day
Akibat deadlock pada sistem operasi:
Sistem akan menjadi kacau
Syarat perlu terjadinya deadlock:
  • Mutual exclusion (kondisi mutual exclusion), yaitu hanya satu proses pada satu waktu yang dapat menggunakansumber daya.
  • Kondisi genggam dan tunggu (hold wait and wait condition), yaitu proses-proses yang sedang menggenggam sumber daya, menunggu sumber daya-sumber daya baru dari proses lain.
  • Kondisi non-preemption (non preemption condition), yaitu sumber daya-sumber daya yang sebelumnya diberikan tidak dapat diambil paksa dari proses itu.
  • Kondisi menunggu secara sirkular (circular wait condition), yaitu terdapat rantai sirkular dari dua proses atau lebih, masing-masing menunggu sumber daya yang digenggam oleh anggota berikutnya pada rantai itu.
NB:
Ketiga syarat pertama merupakan syarat perlu bagi terjadinya deadlock, kondisi keempat merupakan keharusan bagi terjadinya deadlock. Bila deadlock terjadi berarti terdapat 3 kondisi pertama, tetapi bila terdapat 3 kondisi pertama belum tentu terjadi deadlock.

Pencegahan Deadlock:

Strategi untuk mencegah terjadinya deadlock sistem operasi adalah:
1. Mencegah mutual exclusion
Mutual exclusion tidak dapat dihindari. jika tidak ada sumber daya yang secara khusus diperuntukkan bagi suatu proses maka tidak akan pernah terjadi deadlock. Namun jika membiarkan ada dua atau lebih proses mengakses sebuah sumber daya yang sama akan menyebabkan chaos. Langkah yang digunakan adalah dengan spooling sumber daya, yaitu dengan mengantrikan.
2. Mencagah hold and wait
Dilakukan dengan cara:
•sistem harus menjamin bila suatu proses meminta sumber daya, maka proses tersebut tidak sedang memegang sumber daya yang lain.
. Hold and release (genggam dan lepas)
3. Mencegah Non Preemption
Peniadaan non preemption mencegah proses-proses lain harus menunggu. Seluruh proses menjadi preemption, sehingga tidak ada tunggu menunggu. Cara mencegah kondisi non preemption :
  • Jika suatu proses yang membawa beberapa sumber daya meminta sumber dayalain yang tidak dapat segera dipenuhi untuk dialokasikan pada proses tersebut,maka semua sumber daya yang sedang dibawa proses tersebut harusdibebaskan.
  • Proses yang sedang dalam keadaan menunggu, sumber daya yang dibawanya ditunda dan ditambahkan pada daftar sumber daya.
  • Proses akan di restart hanya jika dapat memperoleh sumber daya yang lama dan sumber daya baru yang diminta.
4. Mencegah kondisi menunggu sirkular
Dilakukan dengan cara:
  • Proses hanya boleh dilakukan menggenggam satu sumber daya pada suatu saat
  • Penomoran global semua sumber daya

Penghindaran Deadlock

Penghindaran deadlock dengan cara hanya memberi akses ke permintaan sumber daya yang tidak mungkin menimbulkan deadlock. Strategi ini diimplementasikan dengan pengalokasian sumber daya memeriksa dampak-dampak pemberian akses kesuatu permintaan
  • Jika pemberian akses sumber daya tidak mungkin menuju deadlock, sumber daya diberi ke peminta
  • Jika tidak aman, proses yang diminta di tunda sampai suatu waktu permintaannya aman diberikan

No comments:

Post a Comment