Perbedaan antara kebuntuan dan kelaparan

Perbedaan antara kebuntuan dan kelaparan

Kebuntuan vs kelaparan
 

Perbedaan utama antara kebuntuan dan kelaparan adalah penyebab dan hubungan akibat di antara mereka; itu adalah kebuntuan yang menyebabkan kelaparan. Perbedaan menarik lainnya antara kebuntuan dan kelaparan adalah kebuntuan adalah masalah sementara kelaparan dapat, kadang -kadang, membantu keluar dari kebuntuan. Di dunia komputer, saat menulis program komputer akan ada lebih dari satu proses/utas yang secara bersamaan akan menjalankan satu demi satu untuk memenuhi layanan yang diperlukan ke program. Oleh karena itu, untuk memiliki sistem yang adil, programmer harus memastikan bahwa semua proses/utas akan menerima atau mendapatkan akses yang cukup ke sumber daya yang mereka butuhkan. Jika tidak, akan ada kebuntuan, dan itu akan menyebabkan kelaparan nanti. Secara umum, sistem yang adil tidak mengandung kebuntuan atau kelaparan. Kebuntuan dan kelaparan akan terjadi terutama ketika banyak utas bersaing untuk sumber daya terbatas.

Apa itu kebuntuan?

Kebuntuan adalah Kondisi yang terjadi ketika dua utas atau proses menunggu satu sama lain untuk menyelesaikan tugas. Mereka hanya akan menutup telepon tetapi tidak pernah berhenti atau menyelesaikan tugas mereka. Dalam ilmu komputer, kebuntuan dapat dilihat di mana -mana. Dalam database transaksi, ketika dua proses masing -masing dalam transaksi sendiri memperbarui dua baris informasi yang sama tetapi dalam urutan yang berlawanan, akan menyebabkan kebuntuan. Dalam pemrograman bersamaan, kebuntuan dapat terjadi ketika dua tindakan yang bersaing akan menunggu satu sama lain untuk melanjutkan ke depan. Dalam sistem telekomunikasi, kebuntuan dapat terjadi karena kehilangan atau korupsi sinyal.

Saat ini, kebuntuan adalah salah satu masalah utama dalam sistem multiprosessing dan komputasi paralel. Sebagai solusi, sistem penguncian dipanggil Sinkronisasi proses diimplementasikan untuk perangkat lunak serta perangkat keras.

Apa itu kelaparan?

Dari kamus ilmu kedokteran, kelaparan adalah akibat dari kekurangan nutrisi yang parah atau total yang diperlukan untuk pemeliharaan kehidupan. Demikian pula, dalam ilmu komputer, kelaparan masalah yang ditemui Saat beberapa utas atau proses menunggu sumber daya yang sama, yang disebut kebuntuan.

Untuk keluar dari jalan buntu, salah satu proses atau utas harus menyerah atau memutar kembali sehingga utas atau proses lainnya dapat menggunakan sumber daya. Jika ini terus menerus terjadi dan proses atau utas yang sama harus menyerah atau memutar kembali setiap kali sambil membiarkan proses atau utas lain untuk menggunakan sumber daya, maka proses atau utas yang dipilih, yang digulung kembali akan mengalami situasi yang disebut kelaparan. Karena itu, Untuk keluar dari kebuntuan, kelaparan adalah salah satu solusi. Oleh karena itu, terkadang kelaparan disebut sejenis livelock. Ketika ada banyak proses atau utas prioritas tinggi, proses atau utas prioritas yang lebih rendah akan selalu kelaparan dalam kebuntuan.

Mungkin ada banyak kelaparan seperti kelaparan sumber daya Dan kelaparan di CPU. Ada banyak contoh umum tentang kelaparan. Mereka adalah masalah pembaca-penulis dan masalah filsuf makan, yang lebih terkenal. Ada lima filsuf diam yang duduk di meja bundar dengan mangkuk spageti. Garpu ditempatkan di antara setiap pasangan filsuf yang berdekatan. Setiap filsuf harus berpikir dan makan secara bergantian. Namun, seorang filsuf hanya bisa makan spageti ketika ia memiliki garpu kiri dan kanan.

"Para filsuf makan"

Apa perbedaan antara kebuntuan dan kelaparan?

• Proses:

• Di jalan buntu, kedua utas atau proses akan saling menunggu dan keduanya tidak melanjutkan.

• Dalam kelaparan, ketika dua atau lebih utas atau proses menunggu sumber daya yang sama, satu akan mundur dan membiarkan yang lain menggunakan sumber daya terlebih dahulu dan selanjutnya utas atau proses kelaparan akan mencoba lagi . Oleh karena itu, semua utas atau proses akan terus maju.

• Rolling Back:

• Dalam kebuntuan, kedua utas/proses prioritas tinggi, serta utas/proses prioritas rendah, akan menunggu satu sama lain secara tak terbatas. Tidak pernah berakhir.

• Tetapi, dalam kelaparan, prioritas rendah akan menunggu atau memutar kembali tetapi prioritas tinggi akan dilanjutkan.

• menunggu atau mengunci:

• Kebuntuan adalah penantian melingkar.

• Kelaparan adalah semacam livelock dan terkadang membantu keluar dari kebuntuan.

• kebuntuan dan kelaparan:

• Kebuntuan menyebabkan kelaparan, tetapi kelaparan tidak menyebabkan kebuntuan.

• Penyebab:

• Kebuntuan akan terjadi karena saling mengeksklusi, tahan dan menunggu, tidak ada preemption atau tunggu melingkar.

• Kelaparan terjadi karena kelangkaan sumber daya, manajemen sumber daya yang tidak terkendali, dan prioritas proses.

Ringkasan:

Deadlock vs. Kelaparan

Kebuntuan dan kelaparan adalah beberapa masalah yang terjadi karena balapan data dan kondisi ras yang terjadi selama pemrograman serta menerapkan perangkat keras. Dalam kebuntuan, dua utas akan secara tak terbatas menunggu satu sama lain tanpa mengeksekusi sementara, dalam kelaparan, satu utas akan mundur dan membiarkan utas lainnya menggunakan sumber daya. Kebuntuan akan menyebabkan kelaparan sedangkan kelaparan akan membantu utas keluar dari kebuntuan.

Gambar milik:

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