Livelock: Apa, Contoh, Perbezaan dengan Kebuntuan

Isi kandungan:

Anonim

Apa itu Livelock?

A Livelock adalah satu keadaan di mana permintaan untuk kunci eksklusif ditolak berkali-kali, kerana banyak kunci bertindih dikongsi terus mengganggu satu sama lain. Prosesnya terus mengubah statusnya, yang selanjutnya menghalangnya daripada menyelesaikan tugas. Ini seterusnya menghalang mereka menyelesaikan tugas.

Dalam tutorial sistem operasi ini, anda akan belajar:

  • Apa itu Livelock?
  • Contoh Livelock
  • Apa yang Menuju Livelock?
  • Apakah Kebuntuan?
  • Contoh Kebuntuan
  • Apa itu kelaparan?
  • Perbezaan Antara Kebuntuan, Kelaparan, dan Livelock

Contoh Livelock

Contoh 1:

Contoh Livelock yang paling mudah adalah dua orang yang bertemu secara berhadapan di koridor, dan kedua-duanya bergerak ke tepi untuk membiarkan yang lain lewat. Mereka akhirnya bergerak dari sisi ke sisi tanpa membuat kemajuan kerana mereka bergerak dengan cara yang sama pada waktu itu. Di sini, mereka tidak pernah saling bersilangan.

Contoh 2:

Anda dapat melihat dalam gambar di atas, masing-masing dari dua proses yang diberikan memerlukan dua sumber, dan mereka menggunakan daftar masuk pemilihan primitif untuk berusaha mendapatkan kunci yang diperlukan untuknya. Sekiranya percubaan itu gagal, kaedah ini berfungsi semula.

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

Dengan mengandaikan, proses A berjalan terlebih dahulu dan memperoleh sumber data X dan kemudian proses B berjalan dan memperoleh sumber Y, tidak kira proses mana yang berjalan pertama, tidak ada yang maju lebih lanjut.

Walau bagaimanapun, kedua-dua proses ini tidak dapat disekat. Mereka menggunakan sumber CPU berulang kali tanpa ada kemajuan tetapi juga menghentikan blok pemprosesan.

Oleh itu, keadaan ini bukan masalah kebuntuan kerana tidak ada satu proses yang disekat, tetapi kita menghadapi situasi tersebut yang setara dengan kebuntuan, iaitu KEHIDUPAN.

Apa yang Menuju Livelock?

Livelock berlaku apabila jumlah proses yang dibenarkan dalam sistem tertentu harus ditentukan oleh jumlah entri dalam jadual proses. Oleh itu, slot jadual proses harus disebut sebagai Sumber Terhingga.

Apakah Kebuntuan?

Kebuntuan adalah keadaan yang berlaku di OS ketika mana-mana proses memasuki keadaan menunggu kerana proses menunggu lain menahan sumber yang diminta. Kebuntuan adalah masalah biasa dalam pemprosesan pelbagai di mana beberapa proses berkongsi jenis sumber yang saling eksklusif yang dikenali sebagai soft lock atau perisian.

Contoh Kebuntuan

  • Contoh dunia nyata ialah lalu lintas, yang hanya bergerak dalam satu arah.
  • Di sini, jambatan dianggap sebagai sumber.
  • Oleh itu, apabila kebuntuan berlaku, ia dapat diselesaikan dengan mudah jika satu kereta mundur (Preempt sumber and rollback).
  • Beberapa kereta mungkin terpaksa disandarkan sekiranya berlaku kebuntuan.
  • Oleh itu, kebuluran adalah mungkin.
Contoh kebuntuan

Apa itu kelaparan?

Kelaparan adalah keadaan di mana semua proses keutamaan rendah disekat, dan proses keutamaan tinggi diteruskan. Dalam sistem apa pun, permintaan untuk sumber keutamaan tinggi / rendah terus berlaku secara dinamik. Oleh itu, beberapa polisi adalah untuk menentukan siapa yang mendapat sokongan bila.

Dengan menggunakan beberapa algoritma, beberapa proses mungkin tidak dapat diservis yang diinginkan walaupun tidak menemui jalan buntu. Kelaparan berlaku apabila beberapa utas menjadikan sumber yang dikongsi tidak tersedia untuk jangka masa yang panjang.

Contoh kelaparan:

Sebagai contoh, objek menawarkan kaedah yang disegerakkan yang mungkin memerlukan masa yang lama untuk kembali. Sekiranya satu utas menggunakan kaedah ini dengan kerap, utas lain yang juga memerlukan akses penyegerakan yang kerap ke objek yang sama akan sering disekat.

Perbezaan Antara Kebuntuan, Kelaparan, dan Livelock

  • Kebuntuan adalah keadaan yang berlaku di OS ketika proses masuk dalam keadaan menunggu kerana sumber yang diminta sedang ditahan oleh proses menunggu yang lain.
  • Sebaliknya, kunci hidup hampir serupa dengan kebuntuan, kecuali keadaan proses yang terlibat dalam kunci hidup selalu berubah antara satu sama lain, tidak ada kemajuan.
  • Jadi, Livelock adalah kes kelaparan sumber yang unik.

Ringkasan:

  • Definisi: Livelock adalah keadaan di mana permintaan untuk kunci eksklusif ditolak berulang kali, kerana banyak kunci bersama yang bertindih terus mengganggu satu sama lain.
  • Livelock berlaku apabila jumlah proses yang dibenarkan dalam sistem tertentu harus ditentukan oleh jumlah entri dalam jadual proses
  • Kebuntuan adalah keadaan yang berlaku di OS ketika mana-mana proses memasuki keadaan menunggu kerana proses menunggu lain menahan sumber yang diminta.
  • Contoh dunia nyata ialah lalu lintas, yang hanya bergerak dalam satu arah.
  • Contoh Livelock adalah dua orang yang bertemu secara berhadapan di koridor, dan kedua-duanya bergerak ke tepi untuk membiarkan yang lain berlalu.
  • Kelaparan adalah keadaan di mana semua proses keutamaan rendah disekat, dan proses keutamaan tinggi diteruskan.