Perbezaan Antara Deadlock dan Starvation | Deadlock vs Starvation
Deadlock vs Starvation
Perbezaan utama antara kebuntuan dan kebuluran 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 kebuluran kemudian. Secara amnya, sistem adil tidak mengandungi sebarang kebuntuan atau pembalasan. Deadlocks dan starvations akan berlaku terutama apabila banyak benang bersaing untuk sumber yang terhad.
Apakah Deadlock?
Kebuntuan adalah suatu keadaan yang terjadi 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 yang serentak, kebuntuan mungkin berlaku apabila dua tindakan bersaing akan menunggu satu sama lain untuk meneruskan. Dalam sistem telekomunikasi, kebuntuan boleh berlaku disebabkan kehilangan atau kerosakan isyarat.
Pada masa ini, kebuntuan adalah salah satu masalah utama dalam sistem multiprocessing dan pengkomputeran selari. Sebagai penyelesaian, sistem penguncian yang dipanggil proses penyegerakan dilaksanakan untuk perisian serta perkakasan.
Apa itu Kelaparan?
Daripada kamus sains perubatan, kelaparan adalah akibat kekurangan nutrien teruk atau kekurangan 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 disebut kebuntuan .
Untuk keluar dari kebuntuan, salah satu daripada proses atau thread harus menyerah atau melancarkan kembali supaya benang atau proses lain dapat menggunakan sumber. Sekiranya ini berlaku dan proses atau thread yang sama harus diserah atau digulung setiap kali sambil membiarkan proses atau benang lain menggunakan sumber tersebut, proses atau benang yang terpilih yang akan dilancarkan akan mengalami situasi yang dinamakan kelaparan.Oleh itu, untuk keluar dari kebuntuan, kelaparan adalah salah satu solusi . Oleh itu, kadangkala kebuluran dipanggil semacam livelock . Apabila terdapat banyak proses keutamaan atau benang, proses keutamaan yang lebih rendah atau benang akan sentiasa kebuluran dalam kebuntuan.
Terdapat banyak kisah seperti lapar 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 mesti bergilir-gilir berfikir dan makan. Walau bagaimanapun, seorang ahli falsafah hanya boleh makan spageti apabila dia mempunyai kedua-dua garpu kiri dan kanan.
The "Philosophers Dining"
Apa perbezaan antara Deadlock dan Starvation?
• Proses:
• Dalam kebuntuan, kedua-dua benang atau proses akan menunggu 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 biarkan 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 tinggi, serta benang / proses keutamaan yang rendah, akan menunggu satu sama lain tanpa batas. 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 ialah menunggu bulat.
• Kelaparan adalah jenis kehidupan malam dan kadang-kadang membantu untuk keluar dari kebuntuan.
• Deadlock and Starvation:
• Kebuntuan menyebabkan kebuluran, tetapi kelaparan tidak menyebabkan kebuntuan.
• Punca:
• Kebuntuan akan berlaku kerana pengecualian bersama, tahan dan tunggu, tidak ada preemption atau menunggu pekeliling.
• Kelaparan berlaku disebabkan kekurangan sumber, pengurusan sumber yang tidak terkawal, dan memproses keutamaan.
Ringkasan:
Deadlock vs Starvation
Deadlock and 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.
Gambar Courtesy:
- Komputer oleh Steve Jurvetson dari Menlo Park, USA (CC BY 2. 0)
- The "Philosophers Dining" oleh Bdesham (CC BY-SA 3. 0)