23 Januari 2015

tugas: Deadlock dan Starvation



Deadlock
Deadlock adalah suatu kondisi dimana proses tidak berjalan lagi atau puntidak ada komunikasi lagi antar proses. Deadlock juga dapat dikatakan sebgai kebuntuan. maksudnya, kebuntuan proses




Penyebab Deadlock
Kondisi Mutual Deadlock
-          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 menggunakaannya.
Kondisi hold and wait
-          suatu proses yang memiliki minimal satu buah sumber daya melakukan request lagi terhdap sumber daya. tetapi, sumber daya yang dimintanya sedang dimilki oleh proses yang lain.
Kondisi non-preemptive.
-          Sebuah sumber daya hanya dapat dilepaskan oleh proses yang memilikinya secara sukarela setelah ia selesai menggunakannya.
Kondisi circular wait.
-          Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya yang dipegang proses berikutnya.

Penanggulangan Deadlock
-          Mengabaikan masalah Deadlock (Algoritma Ostrich)
Untuk menghadapi Deadlock menurut algoritma ini adalah dengan berpura-pura bahwa tidak ada masalah apa pun.
-           Mendeteksi dan memperbaiki.
Setelah diketahui sistem mana saja yang terlibat maka diadakan proses untuk memperbaiki dan menjadikan sistem berjalan kembali.
-          Penghindaran yang terus menerus dan pengalokasian yang baik dengan Deadlock avoidance.
a.       Jangan memulai proses apa pun jika proses tersebut akan membawa kita pada kondisi Deadlock, sehingga tidak mungkin terjadi Deadlock karena ketika akan menuju Deadlock sudah dicegah.
b.      Jangan memberi kesempatan pada suatu proses untuk meminta sumber daya lagi jika penambahan ini akan membawa kita pada suatu keadaan Deadlock.
-          Pencegahan yang secara struktur Deadlock prevention.
Mutual Exclusion
Kondisi sumber daya yang tidak dapat dibagi (non-sharable). Jadi, pencegahan kondisi yang pertama ini sulit karena memang sifat dasar dari sumber daya yang tidak dapat dibagi.
Hold and Wait
Sistem perlu memastikan bahwa setiap kali proses meminta sumber daya, ia tidak sedang memiliki sumber daya lain. Atau bisa dengan proses meminta dan mendapatkan sumber daya yang dimilikinya sebelum melakukan eksekusi, sehingga tidak perlu menunggu
Non Preemption.
Proses akan mengulang kembali eksekusinya setelah semua sumber daya yang dibutuhkan didapatkan.

STARVATION
Starvasion adalah sebuah kondisi dimana ada satu atau lebih proses yang tidak pernah dieksekusi karena tidak pernah mendapat jatah sumber daya.
Terdapat tiga proses, yaitu P1, P2 dan P3. Ketiga proses ini 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