Perbedaan Antara Deadlock Dan Starvation

Daftar Isi:

Perbedaan Antara Deadlock Dan Starvation
Perbedaan Antara Deadlock Dan Starvation

Video: Perbedaan Antara Deadlock Dan Starvation

Video: Perbedaan Antara Deadlock Dan Starvation
Video: Deadlock and Starvation 2024, November
Anonim

Kebuntuan vs Kelaparan

Perbedaan utama antara kebuntuan dan kelaparan adalah hubungan sebab dan akibat di antara keduanya; kebuntuanlah yang menyebabkan kelaparan. Perbedaan menarik lainnya antara kebuntuan dan kelaparan adalah bahwa kebuntuan adalah masalah sementara kelaparan terkadang dapat membantu untuk keluar dari jalan buntu. Dalam dunia komputer, saat menulis sebuah program komputer akan terdapat lebih dari satu proses / thread yang secara bersamaan akan berjalan satu persatu guna memenuhi kebutuhan service 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 maka akan terjadi jalan buntu, dan nantinya akan menimbulkan kelaparan. Umumnya, sistem yang adil tidak mengandung kebuntuan atau kelaparan. Kebuntuan dan kelaparan akan terjadi terutama ketika banyak utas bersaing untuk sumber daya yang terbatas.

Apa itu Deadlock?

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 bisa 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, kebuntuan merupakan salah satu masalah utama dalam sistem multiprosesing dan komputasi paralel. Sebagai solusinya, sistem penguncian yang disebut sinkronisasi proses diterapkan untuk perangkat lunak maupun perangkat keras.

Perbedaan Antara Deadlock dan Starvation
Perbedaan Antara Deadlock dan Starvation

Apakah Kelaparan itu?

Dari kamus ilmu kedokteran, kelaparan adalah akibat dari kekurangan atau kekurangan total nutrisi yang dibutuhkan untuk mempertahankan hidup. Demikian pula, dalam ilmu komputer, kelaparan adalah masalah yang ditemui saat beberapa utas atau proses menunggu sumber daya yang sama, yang disebut jalan buntu.

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

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 pendiam yang duduk di meja bundar dengan mangkuk berisi 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 jika ia memiliki garpu kiri dan kanan.

Kebuntuan vs Kelaparan
Kebuntuan vs Kelaparan

The "Dining Philosophers"

Apa perbedaan antara Deadlock dan Starvation?

• Proses:

• Dalam kebuntuan, kedua utas atau proses akan menunggu satu sama lain dan keduanya tidak melanjutkan.

• Dalam 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 kelaparan akan mencoba lagi. Oleh karena itu, semua utas atau proses akan terus berjalan.

• Rolling Back:

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

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

• Menunggu atau Mengunci:

• Kebuntuan adalah menunggu melingkar.

• Kelaparan adalah sejenis mata pencaharian dan terkadang membantu untuk keluar dari jalan buntu.

• Kebuntuan dan Kelaparan:

• Kebuntuan menyebabkan kelaparan, tetapi kelaparan tidak menyebabkan kebuntuan.

• Penyebab:

• Kebuntuan akan terjadi karena saling mengucilkan, menahan dan menunggu, tidak ada preemption atau menunggu melingkar.

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

Ringkasan:

Kebuntuan vs. Kelaparan

Deadlock dan starvations adalah beberapa masalah yang terjadi karena data race dan kondisi balapan yang terjadi selama pemrograman serta perangkat keras implementasi. Dalam kebuntuan, dua utas akan menunggu tanpa batas satu sama lain tanpa mengeksekusi sementara, dalam keadaan kelaparan, satu utas akan berputar kembali dan membiarkan utas lainnya menggunakan sumber daya. Kebuntuan akan menyebabkan kelaparan sedangkan kelaparan akan membantu benang keluar dari jalan buntu.

Gambar Courtesy:

  1. Komputer oleh Steve Jurvetson dari Menlo Park, AS (CC BY 2. 0)
  2. The "Dining Philosophers" oleh Bdesham (CC BY-SA 3. 0)

Direkomendasikan: