Livelock: Apa itu, Contoh, Perbedaannya dengan Deadlock
⚡ Ringkasan Cerdas
Livelock adalah situasi konkurensi di mana proses terus mengubah statusnya sebagai respons satu sama lain namun tidak membuat kemajuan nyata, tetap aktif dan mengonsumsi siklus CPU tanpa pernah menyelesaikan tugasnya atau menjadi terblokir.
Apa itu Livelock?
A livelock adalah situasi di mana permintaan untuk penguncian eksklusif ditolak berulang kali, karena banyak yang tumpang tindih.ping Kunci bersama terus saling mengganggu. Proses terus mengubah statusnya, yang mencegah mereka menyelesaikan tugas.
Contoh Livelock
Contoh 1:
Contoh paling sederhana dari Livelock adalah dua orang yang bertemu langsung di koridor, dan keduanya minggir untuk memberi jalan kepada yang lain. Mereka terus bergerak dari sisi ke sisi tanpa membuat kemajuan apa pun karena mereka bergerak dengan cara yang sama pada waktu yang bersamaan. Di sini, mereka tidak pernah berpapasan satu sama lain.
Contoh 2:
Pada gambar di atas, masing-masing dari dua proses membutuhkan dua sumber daya, dan mereka menggunakan polling primitif untuk mencoba memperoleh kunci yang mereka butuhkan. Jika suatu upaya gagal, metode tersebut akan mencoba lagi.
- Proses A memiliki sumber daya Y
- Proses B menampung sumber daya X
- Proses A membutuhkan sumber daya X
- Proses B membutuhkan sumber daya Y
Misalkan proses A berjalan terlebih dahulu dan memperoleh sumber daya X, kemudian proses B berjalan dan memperoleh sumber daya Y. Tidak peduli proses mana yang berjalan terlebih dahulu, keduanya tidak akan mengalami kemajuan lebih lanjut.
Namun, tidak satu pun dari kedua proses tersebut yang terblokir. Mereka berulang kali menggunakan sumber daya CPU tanpa membuat kemajuan apa pun, namun mereka tidak pernah berhenti untuk pemblokiran pemrosesan.
Oleh karena itu, situasi ini bukanlah sebuah jalan buntu, karena tidak ada satu pun proses yang terblokir; sebaliknya, kita menghadapi situasi yang setara dengan kebuntuan (deadlock), yang disebut LIVELOCK.
Apa yang Menyebabkan Livelock?
Livelock terkait dengan jumlah proses yang diizinkan oleh suatu sistem, yang ditentukan oleh jumlah total entri dalam tabel proses. Oleh karena itu, slot tabel proses ini diperlakukan sebagai sumber daya yang terbatas. Ketika proses berulang kali mencoba untuk mendapatkan sumber daya yang terbatas ini sambil terus mengalah satu sama lain, tidak ada satu pun yang berhasil maju, dan sistem memasuki kondisi livelock.
Apa itu Deadlock?
A jalan buntu Deadlock adalah situasi yang terjadi dalam sistem operasi ketika suatu proses memasuki keadaan menunggu karena proses lain yang sedang menunggu sedang memegang sumber daya yang dibutuhkan. Deadlock adalah masalah umum dalam multiprocessing, di mana beberapa proses berbagi jenis sumber daya eksklusif bersama yang dikenal sebagai soft lock atau software lock.
Contoh Deadlock
- Contoh nyata di dunia nyata adalah lalu lintas yang hanya bergerak ke satu arah.
- Di sini, jembatan dianggap sebagai sumber daya.
- Ketika terjadi kebuntuan, hal itu dapat diselesaikan dengan mudah jika salah satu mobil mundur (mengambil alih sumber daya dan melakukan rollback).
- Beberapa mobil mungkin harus mundur jika terjadi situasi buntu.
- Oleh karena itu, kelaparan mungkin terjadi.
Contoh Deadlock
Apa itu Kelaparan?
Kelaparan (starvation) adalah situasi di mana proses berprioritas rendah terblokir sementara proses berprioritas tinggi terus berjalan. Dalam sistem apa pun, permintaan untuk sumber daya berprioritas tinggi dan rendah terus terjadi secara dinamis. Oleh karena itu, diperlukan kebijakan tertentu untuk memutuskan siapa yang dilayani dan kapan.
Pada beberapa algoritma, proses tertentu mungkin tidak mendapatkan layanan yang diinginkan meskipun tidak mengalami kebuntuan (deadlock). Kelaparan terjadi ketika beberapa thread membuat sumber daya bersama tidak tersedia untuk jangka waktu yang lama.
Contoh Kelaparan
Sebagai contoh, sebuah objek menawarkan metode sinkronisasi yang kemungkinan membutuhkan waktu lama untuk memberikan nilai kembali. Jika satu thread sering menggunakan metode ini, thread lain yang juga membutuhkan akses sinkronisasi yang sering ke objek yang sama sering kali akan terblokir.
Perbedaan Antara Deadlock, Starvation, dan Livelock
- Deadlock adalah situasi yang terjadi dalam sistem operasi ketika suatu proses memasuki keadaan menunggu karena sumber daya yang dibutuhkan sedang dipegang oleh proses lain yang juga sedang menunggu.
- Sebaliknya, livelock hampir mirip dengan deadlock, kecuali bahwa keadaan proses yang terlibat dalam livelock selalu berubah sebagai respons satu sama lain, tanpa ada yang mengalami kemajuan.
- Jadi, livelock adalah kasus unik dari kekurangan sumber daya.



