Livelock: Apa itu, Contoh, Perbedaannya dengan Deadlock

Apa itu Livelock?

A livelock adalah situasi di mana permintaan untuk kunci eksklusif ditolak berulang kali, karena banyak kunci bersama yang tumpang tindih terus mengganggu satu sama lain. Proses terus mengubah statusnya, yang selanjutnya menghalangi mereka menyelesaikan tugas. Hal ini semakin menghalangi mereka menyelesaikan tugas.

Contoh Livelock

Contoh 1:

Contoh Livelock yang paling mudah adalah dua orang yang bertemu tatap muka di koridor, dan keduanya menyingkir untuk membiarkan yang lain lewat. Mereka akhirnya bergerak dari sisi ke sisi tanpa membuat kemajuan apa pun karena mereka bergerak dengan cara yang sama pada saat itu. Di sini, mereka tidak pernah saling bersilangan.

Contoh 2:

Contoh Livelock

Anda dapat melihat pada gambar di atas, masing-masing dari dua proses yang diberikan memerlukan dua sumber daya, dan mereka menggunakan polling masuk registri primitif untuk mencoba mendapatkan kunci yang diperlukan untuk mereka. Jika upaya gagal, metode ini berfungsi kembali.

  1. Proses A tahan sumber daya Y
  2. Proses B menampung sumber daya X
  3. Proses A memerlukan sumber daya X
  4. Proses B memerlukan sumber daya Y

Dengan asumsi, proses A berjalan terlebih dahulu dan memperoleh sumber daya data X, kemudian proses B berjalan dan memperoleh sumber daya Y, tidak peduli proses mana yang berjalan terlebih dahulu, tidak ada satupun yang mengalami kemajuan lebih lanjut.

Namun, tidak satu pun dari kedua proses tersebut yang diblokir. Mereka menggunakan sumber daya CPU berulang kali tanpa kemajuan apa pun, tetapi juga menghentikan blok pemrosesan apa pun.

Oleh karena itu, situasi ini bukanlah a jalan buntu karena tidak ada satu proses pun yang terblokir, tetapi kita menghadapi situasi yang ekuivalen dengan deadlock, yaitu LIVELOCK.

Apa yang Menyebabkan Livelock?

Livelock terjadi ketika jumlah total proses yang diizinkan dalam sistem tertentu harus ditentukan oleh jumlah total entri dalam tabel proses. Oleh karena itu, slot tabel proses harus disebut sebagai Sumber Daya Terbatas.

Apa itu Deadlock?

Deadlock adalah situasi yang terjadi di OS saat suatu proses memasuki status menunggu karena proses lain yang menunggu sedang memegang sumber daya yang diminta. Deadlock adalah masalah umum dalam multiprosesor di mana beberapa proses berbagi jenis sumber daya yang saling eksklusif yang dikenal sebagai soft lock atau perangkat lunak.

Contoh Deadlock

  • Contoh dunia nyata adalah lalu lintas yang hanya menuju satu arah.
  • Di sini, jembatan dianggap sebagai sumber daya.
  • Jadi, bila terjadi Deadlock, bisa dengan mudah diatasi jika satu mobil mundur (Preempt sumber daya dan rollback).
  • Beberapa mobil mungkin harus mundur jika terjadi situasi buntu.
  • Jadi kelaparan mungkin saja terjadi.
Contoh Deadlock
Contoh Deadlock

Apa itu Kelaparan?

Starvation adalah situasi di mana semua proses berprioritas rendah diblokir, dan proses berprioritas tinggi dilanjutkan. Dalam sistem apa pun, permintaan sumber daya berprioritas tinggi/rendah terus terjadi secara dinamis. Oleh karena itu, diperlukan kebijakan untuk memutuskan siapa yang mendapat dukungan dan kapan.

Dengan menggunakan beberapa algoritma, beberapa proses mungkin tidak mendapatkan layanan yang diinginkan meskipun tidak mengalami deadlock. Starvation terjadi ketika beberapa thread membuat sumber daya bersama tidak tersedia untuk jangka waktu yang lama.

Contoh Kelaparan

Misalnya, sebuah objek menawarkan metode yang disinkronkan yang kemungkinan memerlukan waktu lama untuk kembali. Jika satu utas sering menggunakan metode ini, utas lain yang juga memerlukan akses yang disinkronkan ke objek yang sama akan sering diblokir.

Perbedaan Antara Deadlock, Starvation, dan Livelock

  • Kebuntuan merupakan situasi yang terjadi dalam OS saat suatu proses memasuki status menunggu karena sumber daya yang diminta sedang dipegang oleh proses lain yang sedang menunggu.
  • Sebaliknya, livelock hampir mirip dengan deadlock, kecuali bahwa status proses yang terlibat dalam livelock selalu berubah satu sama lain, tidak ada yang mengalami kemajuan.
  • Jadi, Livelock adalah kasus unik dari kekurangan sumber daya.

Kesimpulan

  • Definisi: Livelock adalah situasi di mana permintaan kunci eksklusif ditolak berulang kali, karena banyak kunci bersama yang tumpang tindih terus mengganggu satu sama lain.
  • Livelock terjadi ketika jumlah total proses yang diizinkan dalam sistem tertentu harus ditentukan oleh jumlah total entri dalam tabel proses
  • Kebuntuan merupakan situasi yang terjadi dalam OS saat suatu proses memasuki status menunggu karena proses lain yang menunggu sedang memegang sumber daya yang diminta.
  • Contoh dunia nyata adalah lalu lintas yang hanya menuju satu arah.
  • Contoh Livelock adalah dua orang yang bertemu tatap muka di koridor, dan keduanya menyingkir untuk membiarkan yang lain lewat.
  • Starvation adalah situasi di mana semua proses berprioritas rendah diblokir, dan proses berprioritas tinggi dilanjutkan.