Perbedaan Kunci: Deadlock mengacu pada situasi ketika proses terjebak dalam lingkaran menunggu sumber daya. Di sisi lain, kelaparan terjadi ketika suatu proses menunggu sumber daya tanpa batas. Kebuntuan menyiratkan kelaparan tetapi kelaparan tidak menyiratkan kebuntuan.
Contoh sederhana dari itu adalah sistem dengan dua tape drive, dan dua proses masing-masing menempati satu tape drive dan menunggu yang lain sebagai persyaratan untuk melanjutkan lebih jauh.
Penting untuk menyebutkan bahwa situasi kebuntuan terjadi jika keempat kondisi ini berlaku secara bersamaan -
- Pengecualian bersama - sumber daya hanya dapat digunakan oleh suatu proses pada suatu waktu
- Tahan dan tunggu - suatu proses yang menempati setidaknya satu sumber daya perlu mendapatkan sumber daya tambahan yang ditempati oleh beberapa proses lain, dan oleh karena itu proses ini menunggu agar sumber daya tersebut dirilis.
- Tanpa preemption - sumber daya dibebaskan hanya dengan proses yang menanganinya, setelah menyelesaikan tugasnya.
- Circular wait - semua proses dalam set menunggu sumber daya yang dipegang oleh proses lain, yang termasuk bahkan proses terakhir dalam set.
Ini terjadi ketika proses prioritas yang lebih buruk, Nevers mendapatkan sumber daya karena aliran konstan dari proses prioritas yang lebih baik daripada itu, dan karena itu proses mungkin harus menunggu selamanya. Solusi untuk mengatasi kelaparan adalah memastikan bahwa manajer independen harus mengelola alokasi sumber daya, memastikan bahwa setiap proses mendapatkan sumber daya pada suatu titik waktu tertentu. Pilihan atau kompetisi acak dan tidak terkendali harus dihindari untuk mencegah kelaparan. Kebuntuan menyiratkan kelaparan tetapi kelaparan tidak menyiratkan kebuntuan.
Oleh karena itu, jalan buntu dan kelaparan berbeda satu sama lain. Kebuntuan terjadi ketika tidak ada proses di set yang dapat bergerak maju karena hunian sumber daya yang diperlukan oleh beberapa proses lainnya. Di sisi lain, kelaparan terjadi ketika suatu proses menunggu untuk jangka waktu yang tidak terbatas untuk mendapatkan sumber daya yang dibutuhkannya.
Perbandingan antara Deadlock dan Starvation:
Jalan buntu | Kelaparan | |
Definisi | Kebuntuan terjadi ketika tidak ada proses di set yang dapat bergerak maju karena hunian sumber daya yang diperlukan oleh beberapa proses lainnya | Kelaparan terjadi ketika suatu proses menunggu untuk jangka waktu yang tidak terbatas untuk mendapatkan sumber daya yang dibutuhkannya. |
Nama lain | Menunggu melingkar | Kunci hidup |
Kondisi yang timbul | Keempat kondisi ini muncul secara bersamaan - saling mengucilkan, tahan dan tunggu, tanpa preemption dan edaran | Pengelolaan sumber daya yang tidak terkendali Prioritas proses ditegakkan dengan ketat Kelangkaan sumber daya |
Teknik Penghindaran / Pencegahan |
|
|
Kemajuan | Tidak ada proses yang dapat membuat kemajuan | Terlepas dari proses korban, proses-proses lain dapat berkembang atau dilanjutkan |
Akhir | Membutuhkan intervensi eksternal | Mungkin atau mungkin tidak memerlukan intervensi eksternal |