Grafik perbandingan
Dasar untuk perbandingan | Jalan buntu | Kelaparan |
---|---|---|
Dasar | Jalan buntu adalah di mana tidak ada proses dilanjutkan, dan diblokir. | Kelaparan adalah tempat proses berprioritas rendah diblokir, dan proses berprioritas tinggi berlangsung. |
Kondisi yang timbul | Terjadinya mutual mutual, Hold and wait, No preemption dan Circular menunggu secara bersamaan. | Penegakan prioritas, pengelolaan sumber daya yang tidak terkendali. |
Nama lain | Tunggu melingkar. | Lifelock. |
Sumber daya | Di jalan buntu, sumber daya yang diminta diblokir oleh proses lainnya. | Dalam kelaparan, sumber daya yang diminta terus digunakan oleh proses prioritas tinggi. |
Pencegahan | Menghindari saling pengecualian, tahan dan tunggu, dan bundar menunggu dan memungkinkan preemption. | Penuaan |
Definisi Deadlock
Deadlock adalah situasi di mana beberapa proses dalam CPU bersaing untuk sumber daya terbatas yang tersedia dalam CPU. Di sini, setiap proses memegang sumber daya dan menunggu untuk mendapatkan sumber daya yang dimiliki oleh beberapa proses lainnya. Semua proses menunggu sumber daya secara melingkar. Pada gambar di bawah ini, Anda dapat melihat bahwa Proses P1 telah memperoleh sumber daya R2 yang diminta oleh proses P2 dan Proses P1 meminta sumber daya R1 yang lagi-lagi dipegang oleh R2. Jadi proses P1 dan P2 membentuk jalan buntu.
- Pengecualian bersama: Hanya satu proses pada satu waktu yang dapat menggunakan sumber daya jika proses lain meminta sumber daya yang sama, harus menunggu sampai proses menggunakan sumber daya melepaskannya.
- Tahan dan Tunggu: Suatu proses harus memegang sumber daya dan menunggu untuk mendapatkan sumber daya lain yang dimiliki oleh beberapa proses lainnya.
- Tanpa Preemption: Proses memegang sumber daya tidak dapat dicegah. Proses memegang sumber daya harus melepaskan sumber daya secara sukarela ketika telah menyelesaikan tugasnya.
- Circular wait: Proses harus menunggu sumber daya secara melingkar. Misalkan kita memiliki tiga proses {P0, P1, P2}. P0 harus menunggu sumber daya yang dimiliki oleh P1; P1 harus menunggu untuk mendapatkan sumber daya yang dimiliki oleh proses P2, dan P2 harus menunggu untuk mendapatkan proses yang dimiliki oleh P0.
Meskipun ada beberapa aplikasi yang dapat mendeteksi program yang mungkin menemui jalan buntu. Tetapi sistem operasi tidak pernah bertanggung jawab untuk mencegah kebuntuan. Merupakan tanggung jawab programmer untuk merancang program bebas kebuntuan. Ini dapat dilakukan dengan menghindari kondisi di atas yang diperlukan untuk terjadinya kebuntuan
Definisi Kelaparan
Kelaparan dapat didefinisikan sebagai ketika suatu proses meminta sumber daya dan sumber daya itu telah digunakan secara terus-menerus oleh proses-proses lainnya, maka proses permintaan itu menghadapi kelaparan. Dalam kelaparan, suatu proses siap untuk mengeksekusi menunggu CPU mengalokasikan sumber daya. Tetapi proses tersebut harus menunggu tanpa batas waktu karena proses-proses lain terus-menerus memblokir sumber daya yang diminta.
Masalah kelaparan umumnya terjadi dalam algoritma penjadwalan prioritas . Dalam algoritma penjadwalan prioritas, proses dengan prioritas yang lebih tinggi selalu dialokasikan sumber daya, mencegah proses prioritas yang lebih rendah dari mendapatkan sumber daya yang diminta.
Penuaan bisa menyelesaikan masalah kelaparan. Penuaan secara bertahap meningkatkan prioritas proses yang telah lama menunggu sumber daya. Penuaan mencegah proses dengan prioritas rendah untuk menunggu sumber daya tanpa batas.
Perbedaan utama antara kebuntuan dan kelaparan di OS
- Dalam kebuntuan, tidak ada proses yang berjalan untuk eksekusi, setiap proses akan diblokir menunggu sumber daya yang diperoleh oleh proses lain. Di sisi lain, kelaparan adalah suatu kondisi di mana proses-proses yang memiliki prioritas lebih tinggi diizinkan untuk memperoleh sumber daya secara terus-menerus dengan mencegah proses-proses dengan prioritas rendah untuk memperoleh sumber daya yang mengakibatkan pemblokiran tak terbatas dari proses-proses berprioritas rendah.
- Kebuntuan muncul ketika empat kondisi saling pengecualian, tahan dan tunggu, tidak ada preemption, dan menunggu melingkar terjadi secara bersamaan. Namun, kelaparan terjadi ketika prioritas proses telah ditegakkan saat mengalokasikan sumber daya, atau ada manajemen sumber daya yang tidak terkendali dalam sistem.
- Jalan buntu sering disebut dengan nama menunggu melingkar, sedangkan kelaparan disebut kunci hidup .
- Di Deadlock sumber daya diblokir oleh proses sedangkan, dalam kelaparan, proses terus digunakan oleh proses dengan prioritas tinggi.
- Jalan buntu dapat dicegah dengan menghindari kondisi seperti saling pengecualian, Tahan dan tunggu, dan menunggu melingkar dan dengan memungkinkan preemption dari proses yang memegang sumber daya untuk waktu yang lama. Di sisi lain, kelaparan bisa dicegah dengan penuaan .
Kesimpulan:
Deadlock dan Starvation menunda eksekusi proses dengan memblokirnya. Di satu sisi di mana kebuntuan dapat menyebabkan proses kelaparan, dan di sisi lain kelaparan bisa membuat proses keluar dari kebuntuan.