Carta Perbandingan
Asas untuk Pembandingan | Deadlock | Kelaparan |
---|---|---|
Asas | Deadlock adalah di mana proses tidak berjalan, dan dapat disekat. | Kelaparan adalah di mana proses keutamaan rendah dapat disekat, dan proses keutamaan tinggi diteruskan. |
Keadaan yang timbul | Terjadi pengecualian Mutual, Pegang dan tunggu, Tidak ada preemption dan Pekeliling menunggu serentak. | Penguatkuasaan keutamaan, pengurusan sumber tidak terkawal. |
Nama lain | Tunggu Pekeliling. | Lifelock. |
Sumber | Dalam deadlocked, sumber yang diminta disekat oleh proses lain. | Dalam kelaparan, sumber yang diminta terus digunakan oleh proses keutamaan yang tinggi. |
Pencegahan | Mengelakkan pengecualian bersama, tahan dan tunggu, dan menunggu pekeliling dan membolehkan pengecualian. | Penuaan. |
Definisi Deadlock
Deadlock adalah situasi di mana beberapa proses dalam CPU bersaing untuk jumlah sumber yang terbatas yang ada dalam CPU. Di sini, setiap proses memegang sumber dan menunggu untuk memperoleh sumber yang dipegang oleh beberapa proses lain. Semua proses menunggu sumber daya dalam bentuk pekeliling. Dalam imej di bawah, anda dapat melihat bahawa Proses P1 telah memperoleh sumber R2 yang diminta oleh proses P2 dan Proses P1 meminta sumber R1 yang sekali lagi dipegang oleh R2. Jadi proses P1 dan P2 membentuk kebuntuan.
- Pengecualian bersama: Hanya satu proses pada satu masa boleh menggunakan sumber jika proses lain meminta sumber yang sama, ia harus menunggu sehingga proses menggunakan sumber mengeluarkannya.
- Pegang dan Tunggu: Proses mesti memegang sumber dan menunggu untuk memperoleh sumber lain yang dipegang oleh beberapa proses lain.
- No Preemption: Proses yang memegang sumber tidak dapat dipertimbangkan. Proses yang memegang sumber harus melepaskan sumber secara sukarela apabila ia telah menyelesaikan tugasnya.
- Tunggu Pekeliling: Proses mesti menunggu sumber dalam bentuk pekeliling. Katakan kita mempunyai tiga proses {P0, P1, P2}. P0 mesti menunggu sumber yang dipegang oleh P1; P1 mesti menunggu untuk memperoleh sumber yang dipegang oleh proses P2, dan P2 mesti menunggu untuk memperoleh proses yang dipegang oleh P0.
Walaupun terdapat beberapa aplikasi yang dapat mengesan program yang mungkin mendapat buntu. Tetapi sistem operasi tidak bertanggungjawab untuk mencegah kebuntuan. Adalah menjadi tanggungjawab pengaturcara untuk merekabentuk program bebas kebuntuan. Ia boleh dilakukan dengan mengelakkan keadaan di atas yang diperlukan untuk kejadian kebuntuan
Definisi Kelaparan
Kelaparan boleh ditakrifkan sebagai apabila permintaan proses untuk sumber dan sumber itu terus digunakan oleh proses-proses lain maka proses permintaan menghadapi kelaparan. Dalam kelaparan, satu proses yang bersedia untuk melaksanakan menunggu CPU untuk memperuntukkan sumber. Tetapi proses itu perlu menunggu selama-lamanya kerana proses lain terus menghalang sumber yang diminta.
Masalah kelaparan umumnya berlaku dalam algoritma penjadualan keutamaan . Dalam algoritma penjadualan keutamaan, proses dengan keutamaan yang lebih tinggi sentiasa diperuntukkan sumber, menghalang proses keutamaan yang lebih rendah daripada mendapatkan sumber yang diminta.
Penuaan dapat menyelesaikan masalah kelaparan. Penuaan secara beransur-ansur meningkatkan keutamaan proses yang telah lama menunggu sumber daya. Penuaan menghalang proses yang mempunyai keutamaan rendah untuk menunggu selama-lamanya untuk sumber.
Perbezaan Utama Antara Deadlock dan Starvation dalam OS
- Dalam kebuntuan, tidak ada proses untuk pelaksanaan, setiap proses dapat disekat menunggu sumber yang diperoleh oleh proses lain. Sebaliknya, kebuluran adalah satu keadaan di mana proses yang mempunyai keutamaan yang lebih tinggi dibenarkan untuk memperoleh sumber-sumber secara berterusan dengan menghalang proses keutamaan rendah untuk memperoleh sumber yang mengakibatkan proses menghalang proses keutamaan yang tidak terbatas.
- Deadlock timbul apabila empat syarat Pengecualian Mutual, Pegang dan tunggu, No preemption, dan menunggu Pekeliling terjadi serentak. Walau bagaimanapun, kebuluran berlaku apabila keutuhan proses telah dikuatkuasakan semasa memperuntukkan sumber, atau terdapat pengurusan sumber yang tidak terkawal dalam sistem.
- Deadlock sering dipanggil dengan menunggu pekeliling nama sedangkan kelaparan dipanggil Lived lock .
- Di Deadlock, sumber-sumber disekat oleh proses sedangkan, dalam kelaparan, proses-proses tersebut terus digunakan oleh proses-proses dengan prioritas tinggi.
- Deadlock boleh dicegah dengan mengelakkan syarat-syarat seperti pengecualian bersama, Pegang dan tunggu, dan tunggu pekeliling dan dengan membenarkan pengecualian proses yang memegang sumber daya untuk waktu yang lama. Sebaliknya, Pemberhentian dapat dicegah oleh penuaan .
Kesimpulan:
Kedua-dua Deadlock dan Starvation menangguhkan pelaksanaan proses dengan menyekatnya. Di satu pihak di mana kebuntuan boleh menyebabkan proses menjadi kelaparan, dan kelaparan tangan yang lain boleh mendapatkan proses keluar dari kebuntuan.