Perbezaan Antara Deadlock dan Starvation

Deadlock vs Starvation
 

Perbezaan utama antara kebuntuan dan kelaparan adalah hubungan sebab dan akibat di antara mereka; ia adalah kebuntuan yang menyebabkan kelaparan. Satu lagi perbezaan yang menarik antara kebuntuan dan kebuluran ialah kebuntuan adalah masalah sementara kelaparan boleh, kadang-kadang, membantu untuk keluar dari kebuntuan. Di dunia komputer, ketika menulis program komputer akan ada lebih dari satu proses / thread yang akan berjalan secara serentak satu demi satu untuk memenuhi layanan yang diperlukan untuk program tersebut. Oleh itu, untuk mempunyai sistem yang adil, pemrogram harus memastikan bahawa semua proses / benang akan menerima atau mendapat akses yang cukup kepada sumber yang mereka perlukan. Jika tidak, akan ada kebuntuan, dan ia akan membawa kepada kelaparan kemudian. Umumnya, sistem adil tidak mengandungi sebarang kebuntuan atau pembalasan. Deadlocks dan starvations akan berlaku terutama apabila banyak benang bersaing untuk sumber yang terhad.

Apa itu Deadlock?

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

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

Apa itu Kelaparan?

Dari kamus sains perubatan, kelaparan adalah akibat kekurangan atau kekurangan nutrien yang diperlukan untuk menjaga kehidupan. Begitu juga, dalam sains komputer, kebuluran adalah masalah yang dihadapi apabila berbilang benang atau proses menunggu sumber yang sama, yang dipanggil kebuntuan.

Untuk keluar dari kebuntuan, salah satu daripada proses atau benang harus menyerah atau melancarkan kembali supaya benang atau proses lain dapat menggunakan sumber. Sekiranya ini berterusan dan proses atau thread yang sama harus diserah atau digulung setiap kali sambil membiarkan proses atau benang lain menggunakan sumber tersebut, maka proses atau benang yang terpilih yang akan dilancarkan akan mengalami situasi yang dinamakan kelaparan. Oleh itu, untuk keluar dari kebuntuan, kebuluran adalah salah satu penyelesaian. Oleh itu, kadang-kadang kebuluran dipanggil sejenis kehidupan malam. Apabila terdapat banyak proses keutamaan atau benang, proses keutamaan yang lebih rendah atau benang akan sentiasa kebuluran dalam kebuntuan.

Terdapat banyak kisah seperti kelaparan terhadap sumber dan kelaparan pada CPU. Terdapat banyak contoh umum mengenai kelaparan. Mereka adalah masalah Pembaca-penulis dan masalah ahli falsafah makan, yang lebih terkenal. Terdapat lima ahli falsafah senyap yang duduk di meja bulat dengan mangkuk spageti. Forks ditempatkan di antara setiap pasangan ahli falsafah bersebelahan. Setiap ahli falsafah harus bergilir-gilir berfikir dan makan. Walau bagaimanapun, seorang ahli falsafah hanya boleh makan spageti apabila dia mempunyai kedua-dua tiri kiri dan kanan.

The "Philosophers Dining"

Apakah perbezaan antara Deadlock dan Starvation??

• Proses:

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

• Dalam kelaparan, apabila dua atau lebih benang atau proses menunggu sumber yang sama, seseorang akan melancarkan kembali dan membiarkan yang lain menggunakan sumber pertama dan seterusnya benang atau proses kelaparan akan mencuba lagi. Oleh itu, semua benang atau proses akan diteruskan.

• Rolling Back:

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

• Tetapi, dalam kebuluran, orang-orang yang rendah keutamaan akan menunggu atau melancarkan tetapi orang-orang yang lebih tinggi akan meneruskannya.

• Menunggu atau Kunci:

• Kebuntuan adalah menunggu pekeliling.

• Kelaparan adalah jenis kehidupan malam dan kadang-kadang membantu untuk keluar dari kebuntuan.

• Deadlock and Starvation:

• Kebuntuan menyebabkan kebuluran, tetapi kebuluran tidak menyebabkan kebuntuan.

• Punca:

• Kebuntuan akan berlaku kerana pengecualian bersama, tahan dan menunggu, tidak ada preemption atau menunggu pekeliling.

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

Ringkasan:

Deadlock vs. Starvation

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 selama satu sama lain tanpa melaksanakan sementara, dalam kelaparan, satu benang akan bergulir kembali dan membiarkan benang yang lain menggunakan sumber. Kebuntuan akan menyebabkan kebuluran sedangkan kelaparan akan membantu benang untuk keluar dari kebuntuan.

Imej Hormat:

  1. Komputer oleh Steve Jurvetson dari Menlo Park, USA (CC BY 2.0)
  2. The "Philosophers Dining" oleh Bdesham (CC BY-SA 3.0)