21 Januari 2015

Deadlock & Starvation

Definisi Deadlock
-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 pun tidak ada komunikasi lagi antar proses.

Penyebab Deadlock
Kondisi mutual exclusion
-Hanya ada satu proses yang menggunakan suatu sumber daya.
-Proses lain yang juga ingin menggunakannya harus menunggu hingga sumber daya tersebut dilepaskan oleh proses yang telah selesai  menggunakannya.
Kondisi hold and wait
-Suatu proses yang memiliki minimal satu buah sumber daya melakukan request lagi terhadap  sumber daya. Tetapi, sumber daya yang dimintanya sedang dimiliki oleh proses yang lain.

Penanggulangan Deadlock
-Mengabaikan masalah Deadlock.
-Mendeteksi dan memperbaiki.
-Penghindaran yang terus menerus dan pengalokasian yang baik dengan Deadlock avoidance.
-Pencegahan yang secara struktur Deadlock prevention.

Algoritma -Algoritma

Algoritma Bankir
Menurut Dijkstra (1965) algoritma penjadwalan dapat menghindari Deadlock dan algoritma penjadwalan itu lebih dikenal dengan sebutan algoritma bankir.
-Deadlock akan terjadi apabila terdapat seorang peminjam yang belum mengembalikan uangnya dan ingin meminjam kembali, padahal uang yang belum dikembalikan tadi dibutuhkan oleh peminjam lain yang juga belum mengembalikan uang pinjamannya.

Starvation
Starvasion adalah sebuah kondisi dimana ada satu atau lebih proses yang tidak pernah dieksekusi karena tidak pernah mendapat jatah sumber daya.

Ilustrasi Starvation
Terdapat tiga proses, yaitu P1, P2 dan P3.
-P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik
Skenario berikut terjadi :
-P1 sedang diberi sumber daya R sedangkan P2 dan P3 di-blocked menunggu sumber daya R.
-Ketika P1 keluar dari critical section, maka P2 dan P3 diijinkan mengakses R.
-Asumsi P3 diberi hak akses, kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R.
-Jika pemberian hak akses bergantian terus-menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R.

-Dalam kondisi ini memang tidak terjadi deadlock, hanya saja P2 mengalami starvation (tidak ada kesempatan untuk dilayani).


Tidak ada komentar:

Posting Komentar