Sobes.tech
Junior — Middle

Kiek minimaliai reikalingų sriegių, kad įvyktų tarpusavio užblokavimas (Deadlock)?

sobes.tech AI

Atsakymas iš AI

Minimalus sriegių skaičius, reikalingas atsirasti uždarajam užraktui (Deadlock), yra du.

Uždara užraktas įvyksta, kai du ar daugiau sriegių tuo pačiu metu laiko išteklius ir kiekvienas jų laukia, kol kitas išteklius bus atlaisvintas. Pavyzdžiui:

  • Sritis A užrakina išteklių 1 ir laukia išteklių 2.
  • Sritis B užrakina išteklių 2 ir laukia išteklių 1.

Abu sriegi amžinai užblokuoti, nes kiekvienas laukia, kol kitas išlaisvins išteklių, kurį jis laiko.

Pavyzdys pseudokode:

// Sritis 1
lock(išteklius1)
wait()
lock(išteklius2)

// Sritis 2
lock(išteklius2)
wait()
lock(išteklius1)

Taigi, deadlockui pakanka dviejų sriegių ir dviejų išteklių.