Apa itu Livelock?
Sebuah Livelock adalah situasi di mana permintaan untuk kunci eksklusif ditolak berulang kali, karena banyak yang tumpang tindih bersama kunci terus mengganggu satu sama lain. Proses terus mengubah status mereka, yang selanjutnya mencegah mereka menyelesaikan tugas. Ini semakin mencegah mereka menyelesaikan tugas.
Dalam tutorial sistem operasi ini, Anda akan mempelajari:
- Apa itu Livelock?
- Contoh Livelock
- Apa yang Menyebabkan Livelock?
- Apa itu Deadlock?
- Contoh Deadlock
- Apakah Kelaparan itu?
- Perbedaan Antara Deadlock, Starvation, dan Livelock
Contoh Livelock
Contoh 1:
Contoh termudah dari Livelock adalah dua orang yang bertatap 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:
Anda dapat melihat pada gambar di atas, masing-masing dari dua proses yang diberikan membutuhkan dua sumber daya, dan mereka menggunakan polling primitif masuk ke registri untuk mencoba mendapatkan kunci yang diperlukan untuk mereka. Jika upaya tersebut gagal, metode ini berfungsi kembali.
- Proses A tahan sumber daya Y
- Proses B memegang sumber daya X
- Proses A membutuhkan sumber daya X.
- Proses B membutuhkan sumber daya Y.
Dengan asumsi, proses A berjalan terlebih dahulu dan memperoleh sumber daya data X dan kemudian proses B berjalan dan memperoleh sumber daya Y, tidak peduli proses mana yang berjalan lebih dulu, tidak ada yang maju 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 kebuntuan karena tidak ada satu proses pun yang terhalang, tetapi kami menghadapi situasi yang setara dengan kebuntuan, yaitu LIVELOCK.
Apa yang Menyebabkan Livelock?
Livelock terjadi ketika jumlah total proses yang diizinkan dalam sistem tertentu harus ditentukan oleh jumlah entri dalam tabel proses. Oleh karena itu, slot tabel proses harus disebut sebagai Sumber Daya Hingga.
Apa itu Deadlock?
Kebuntuan adalah situasi yang terjadi di OS ketika proses apa pun memasuki status menunggu karena proses menunggu lain menahan sumber daya yang diminta. Kebuntuan adalah masalah umum dalam multi-pemrosesan di mana beberapa proses berbagi jenis sumber daya yang saling eksklusif yang dikenal sebagai kunci lunak atau perangkat lunak.
Contoh Deadlock
- Contoh dunia nyata adalah lalu lintas, yang hanya menuju ke satu arah.
- Di sini, jembatan dianggap sebagai sumber daya.
- Jadi, ketika Deadlock terjadi, dapat dengan mudah diselesaikan jika salah satu mobil melakukan backup (Preempt resource and rollback).
- Beberapa mobil mungkin harus di-backup jika terjadi situasi deadlock.
- Jadi kelaparan mungkin terjadi.
Apakah Kelaparan itu?
Kelaparan adalah situasi di mana semua proses berprioritas rendah diblokir, dan proses berprioritas tinggi dilanjutkan. Di sistem apa pun, permintaan sumber daya dengan prioritas tinggi / rendah terus terjadi secara dinamis. Oleh karena itu, diperlukan beberapa kebijakan untuk menentukan siapa yang mendapat dukungan kapan.
Menggunakan beberapa algoritme, beberapa proses mungkin tidak mendapatkan layanan yang diinginkan meskipun proses tersebut tidak mengalami kebuntuan. Kelaparan terjadi ketika beberapa utas membuat sumber daya bersama tidak tersedia untuk jangka waktu yang lama.
Contoh Kelaparan:
Misalnya, sebuah objek menawarkan metode tersinkronisasi yang kemungkinan membutuhkan waktu lama untuk ditampilkan. Jika satu utas sering menggunakan metode ini, utas lain yang juga memerlukan akses tersinkronisasi yang sering ke objek yang sama akan sering diblokir.
Perbedaan Antara Deadlock, Starvation, dan Livelock
- Kebuntuan adalah situasi yang terjadi di OS ketika proses apa pun masuk dalam status menunggu karena sumber daya yang diminta sedang ditahan oleh proses menunggu lain.
- Livelock, di sisi lain, hampir mirip dengan deadlock, kecuali bahwa status proses yang terlibat dalam livelock selalu terus berubah satu sama lain, tidak ada yang berkembang.
- Jadi, Livelock adalah kasus unik dari kekurangan sumber daya.
Ringkasan:
- Definisi: Livelock adalah situasi di mana permintaan untuk 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 entri dalam tabel proses
- Kebuntuan adalah situasi yang terjadi di OS ketika proses apa pun memasuki status menunggu karena proses menunggu lain menahan sumber daya yang diminta.
- Contoh dunia nyata adalah lalu lintas, yang hanya menuju ke satu arah.
- Contoh dari Livelock adalah dua orang yang bertatap muka di koridor, dan keduanya bergerak ke samping untuk membiarkan yang lain lewat.
- Kelaparan adalah situasi di mana semua proses berprioritas rendah diblokir, dan proses berprioritas tinggi dilanjutkan.