Perbezaan antara kebuntuan dan kelaparan

Perbezaan antara kebuntuan dan kelaparan

Deadlock vs kelaparan
 

Perbezaan utama antara kebuntuan dan kelaparan adalah hubungan punca dan kesan di antara mereka; ia adalah kebuntuan yang menyebabkan kebuluran. Satu lagi perbezaan menarik antara kebuntuan dan kelaparan adalah bahawa kebuntuan adalah masalah sementara kelaparan dapat, kadang -kadang, membantu keluar dari kebuntuan. Di dunia komputer, ketika menulis program komputer akan ada lebih dari satu proses/benang yang akan secara serentak berjalan satu demi satu untuk memenuhi perkhidmatan yang diperlukan untuk program tersebut. Oleh itu, untuk mempunyai sistem yang adil, pengaturcara harus memastikan bahawa semua proses/benang akan menerima atau mendapatkan akses yang cukup untuk sumber yang mereka perlukan. Sekiranya tidak, akan ada kebuntuan, dan ia akan membawa kebuluran kemudian. Umumnya, sistem yang adil tidak mengandungi sebarang kebuntuan atau starvasi. Kebuntuan dan starvations akan berlaku terutamanya apabila banyak benang bersaing untuk sumber yang terhad.

Apa itu kebuntuan?

Kebuntuan adalah keadaan yang berlaku apabila dua benang atau proses menunggu satu sama lain untuk menyelesaikan tugas. Mereka hanya akan digantung tetapi tidak pernah berhenti atau menyelesaikan tugas mereka. Dalam sains komputer, kebuntuan dapat dilihat di mana sahaja. Dalam pangkalan data urus niaga, apabila dua proses masing -masing dalam mengemas kini urus niaga sendiri, dua baris maklumat yang sama tetapi dalam urutan yang bertentangan, akan menyebabkan kebuntuan. Dalam pengaturcaraan serentak, kebuntuan mungkin berlaku apabila dua tindakan bersaing akan menunggu satu sama lain untuk meneruskan ke hadapan. Dalam sistem telekomunikasi, kebuntuan boleh berlaku akibat kehilangan atau rasuah isyarat.

Pada masa ini, kebuntuan adalah salah satu masalah utama dalam sistem multiprocessing dan pengkomputeran selari. Sebagai penyelesaian, sistem penguncian yang dipanggil Penyegerakan proses dilaksanakan untuk perisian serta perkakasan.

Apa itu kelaparan?

Dari kamus sains perubatan, kelaparan adalah hasil daripada kekurangan nutrien yang teruk atau jumlah yang diperlukan untuk penyelenggaraan kehidupan. Begitu juga, dalam sains komputer, kelaparan adalah masalah yang dihadapi Apabila pelbagai utas atau proses menunggu sumber yang sama, yang dipanggil kebuntuan.

Untuk keluar dari kebuntuan, salah satu proses atau benang harus berputus asa atau digulung supaya benang atau proses yang lain dapat menggunakan sumbernya. Sekiranya ini terus berlaku dan proses atau benang yang sama perlu menyerah atau digulung setiap kali sambil membiarkan proses atau benang lain menggunakan sumber, maka proses atau benang yang dipilih, yang dilancarkan kembali akan menjalani situasi yang disebut kelaparan. Oleh itu, Untuk keluar dari kebuntuan, kelaparan adalah salah satu penyelesaian. Oleh itu, kadang -kadang kelaparan dipanggil sejenis livelock. Apabila terdapat banyak proses atau benang keutamaan yang tinggi, proses keutamaan atau benang yang lebih rendah akan sentiasa kelaparan dalam kebuntuan.

Boleh ada banyak starvations seperti kelaparan sumber dan Kelaparan pada CPU. Terdapat banyak contoh umum mengenai kebuluran. Mereka adalah masalah pembaca-penulis dan masalah falsafah makan, yang lebih terkenal. Terdapat lima ahli falsafah senyap yang duduk di meja bulat dengan mangkuk spageti. Garpu diletakkan di antara setiap sepasang ahli falsafah bersebelahan. Setiap ahli falsafah mesti berfikir dan makan secara bergantian. Walau bagaimanapun, seorang ahli falsafah hanya boleh makan spageti ketika dia mempunyai garpu kiri dan kanan.

"Ahli falsafah makan"

Apakah perbezaan antara kebuntuan dan kebuluran?

• Proses:

• Dalam kebuntuan, kedua -dua benang atau proses akan menunggu satu sama lain dan kedua -duanya tidak meneruskan ke hadapan.

• Dalam kebuluran, apabila dua atau lebih benang atau proses menunggu sumber yang sama, seseorang akan berguling dan membiarkan yang lain menggunakan sumber terlebih dahulu dan seterusnya benang atau proses kelaparan akan cuba lagi . Oleh itu, semua utas atau proses akan terus maju.

• Melancarkan kembali:

• Dalam kebuntuan, kedua -dua benang/proses keutamaan yang tinggi, serta benang/proses keutamaan yang rendah, akan saling menunggu satu sama lain. Ia tidak pernah berakhir.

• Tetapi, dalam kebuluran, keutamaan yang rendah akan menunggu atau menggulung kembali tetapi keutamaan yang tinggi akan diteruskan.

• Menunggu atau Kunci:

• Kebuntuan adalah penantian bulat.

• Kelaparan adalah sejenis livelock dan kadang -kadang membantu keluar dari kebuntuan.

• Kebuntuan dan kelaparan:

• Kebuntuan menyebabkan kebuluran, tetapi kebuluran tidak menyebabkan kebuntuan.

• Punca:

• Kebuntuan akan berlaku kerana pengecualian bersama, memegang dan tunggu, tidak ada preemption atau menunggu bulat.

• Kelaparan berlaku kerana kekurangan sumber, pengurusan sumber yang tidak terkawal, dan keutamaan proses.

Ringkasan:

Deadlock vs. Kelaparan

Deadlock dan Starvations adalah beberapa masalah yang berlaku disebabkan oleh perlumbaan data dan keadaan perlumbaan yang berlaku semasa pengaturcaraan serta melaksanakan perkakasan. Dalam kebuntuan, dua benang akan menunggu satu sama lain tanpa melaksanakan sementara, dalam kelaparan, satu benang akan bergulir dan membiarkan benang lain menggunakan sumber. Kebuntuan akan menyebabkan kelaparan manakala kelaparan akan membantu benang keluar dari kebuntuan.

Gambar ihsan:

  1. Komputer oleh Steve Jurvetson dari Menlo Park, Amerika Syarikat (CC oleh 2.0)
  2. "Ahli falsafah makan" oleh Bdesham (CC BY-SA 3.0)