Perbedaan Antara Kebuntuan dan Kelaparan

Daftar Isi:

Perbedaan Antara Kebuntuan dan Kelaparan
Perbedaan Antara Kebuntuan dan Kelaparan

Video: Perbedaan Antara Kebuntuan dan Kelaparan

Video: Perbedaan Antara Kebuntuan dan Kelaparan
Video: SOCIAL ENTERPRENEUR (KEWIRAUSAHAAN SOSIAL) 2024, November
Anonim

Deadlock vs Kelaparan

Perbedaan utama antara kebuntuan dan kelaparan adalah hubungan sebab dan akibat di antara keduanya; itu adalah kebuntuan yang menyebabkan kelaparan. Perbedaan lain yang menarik antara kebuntuan dan kelaparan adalah bahwa kebuntuan adalah masalah sementara kelaparan kadang-kadang dapat membantu untuk keluar dari kebuntuan. Di dunia komputer, ketika menulis program komputer akan ada lebih dari satu proses/utas yang akan berjalan secara bersamaan satu demi satu untuk memenuhi layanan yang diperlukan untuk program tersebut. 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 terjadi kebuntuan, dan nantinya akan berujung pada kelaparan. Umumnya, sistem yang adil tidak mengandung kebuntuan atau kelaparan. Kebuntuan dan kelaparan akan terjadi terutama ketika banyak utas bersaing untuk mendapatkan sumber daya yang terbatas.

Apa itu Deadlock?

Deadlock adalah kondisi yang terjadi ketika dua thread 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 transaksinya 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 maju. Dalam sistem telekomunikasi, kebuntuan dapat terjadi karena hilangnya atau rusaknya sinyal.

Saat ini, deadlock merupakan salah satu masalah utama dalam sistem multiprosesor dan komputasi paralel. Sebagai solusi, sistem penguncian yang disebut sinkronisasi proses diimplementasikan untuk perangkat lunak maupun perangkat keras.

Perbedaan Antara Kebuntuan dan Kelaparan
Perbedaan Antara Kebuntuan dan Kelaparan
Perbedaan Antara Kebuntuan dan Kelaparan
Perbedaan Antara Kebuntuan dan Kelaparan

Apa itu Kelaparan?

Dari kamus ilmu kedokteran, kelaparan adalah akibat dari kekurangan gizi yang parah atau total yang dibutuhkan untuk mempertahankan hidup. Demikian pula, dalam ilmu komputer, kelaparan adalah masalah yang dihadapi ketika beberapa utas atau proses menunggu sumber daya yang sama, yang disebut kebuntuan.

Untuk keluar dari kebuntuan, salah satu proses atau utas harus menyerah atau mundur sehingga utas atau proses lain dapat menggunakan sumber daya. Jika ini terus terjadi dan proses atau thread yang sama harus menyerah atau mundur setiap kali membiarkan proses atau thread lain menggunakan sumber daya, maka proses atau thread yang dipilih, yang digulung kembali akan mengalami situasi yang disebut kelaparan. Oleh karena itu, agar bisa keluar dari kebuntuan, kelaparan menjadi salah satu solusinya. Karena itu, terkadang kelaparan disebut semacam livelock. Ketika ada banyak proses atau utas dengan prioritas tinggi, proses atau utas dengan prioritas lebih rendah akan selalu mengalami kebuntuan.

Ada banyak kelaparan seperti kelaparan pada sumber daya dan kelaparan pada CPU. Ada banyak contoh umum tentang kelaparan. Mereka adalah masalah Pembaca-penulis dan masalah filsuf makan, yang lebih terkenal. Ada lima filsuf bisu yang duduk di meja bundar dengan semangkuk spageti. Garpu ditempatkan di antara setiap pasangan filsuf yang berdekatan. Setiap filsuf harus bergantian berpikir dan makan. Namun, seorang filsuf hanya bisa makan spageti jika dia memiliki garpu kiri dan kanan.

Kebuntuan vs Kelaparan
Kebuntuan vs Kelaparan
Kebuntuan vs Kelaparan
Kebuntuan vs Kelaparan

The "Filsuf Makan"

Apa perbedaan antara Deadlock dan Starvation?

Proses:

• Dalam keadaan deadlock, kedua thread atau proses akan saling menunggu dan keduanya tidak maju.

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

Memutar Kembali:

• Dalam kebuntuan, baik utas/proses prioritas tinggi, maupun utas/proses prioritas rendah, akan menunggu satu sama lain tanpa batas. Itu tidak pernah berakhir.

• Tapi, dalam keadaan kelaparan, prioritas rendah akan menunggu atau mundur tetapi prioritas tinggi akan dilanjutkan.

Menunggu atau Mengunci:

• Kebuntuan adalah menunggu melingkar.

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

Deadlock dan Kelaparan:

• Kebuntuan menyebabkan kelaparan, tetapi kelaparan tidak menyebabkan kebuntuan.

Penyebab:

• Deadlock akan terjadi karena mutual exception, hold and wait, no preemption atau circular waiting.

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

Ringkasan:

Deadlock vs. Kelaparan

Deadlock dan kelaparan adalah beberapa masalah yang terjadi karena ras data dan kondisi balapan yang terjadi selama pemrograman serta mengimplementasikan perangkat keras. Dalam kebuntuan, dua utas akan saling menunggu tanpa batas 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 untuk keluar dari kebuntuan.

Direkomendasikan: