Sobes.tech
Middle+

Mis on Deadlock ja Livelock? Milline on nende erinevus?

sobes.tech AI

Vastus AI-lt

Surnuk (vastastikune lukustamine) — olukord, kus kaks või rohkem protsessi lukustavad üksteist igaveseks, igaüks ootab teise protsessi poolt hõivatud ressursi vabastamist. Näiteks protsess A hoiab ressursi 1 ja ootab ressursi 2, samal ajal kui protsess B hoiab ressursi 2 ja ootab ressursi 1.

Elav lukustus (livelock) — olukord, kus protsessid ei lukustu, kuid pidevalt muudavad oma olekut vastuseks teineteisele, ilma edasiminejata. Näiteks, kaks protsessi vahetavad pidevalt ressursse, kuid kumbki ei saa jätkata.

Erinevus:

  • Deadlock — protsessid ootavad üksteist ega muuda oma olekut.
  • Livelock — protsessid on aktiivsed ja muudavad oma olekut, kuid edasiminekut ei toimu.