Sobes.tech
Junior — Middle

Mi az erőforrás-állásfoglalás és milyen helyzetekben fordul elő a rendszerekben?

sobes.tech MI

Válasz az MI-től

Deadlock (akadályozás) olyan helyzet a többfeladatos rendszerekben, amikor két vagy több folyamat (vagy szál) örökre blokkolja egymást, várva, hogy felszabadítsák egymás által foglalt erőforrásokat.

Ez akkor fordul elő, amikor mind a négy feltétel egyidejűleg teljesül:

  1. Kölcsönös kizárás — egy erőforrást csak egy folyamat foghat el egyszerre.
  2. Tartás és várakozás — egy folyamat tart egy erőforrást és vár egy másikra.
  3. Kényszerített felszabadítás lehetetlensége — egy erőforrást nem lehet elvenni egy folyamattól, amíg az nem szabadon nem szabadul.
  4. Ciklikus várakozás — folyamatok ciklusa van, mindegyik egy erőforrást vár, amit a következő foglal el.

Példa: az A folyamat elfoglalta az 1-es erőforrást és vár a 2-esre, míg a B folyamat elfoglalta a 2-es erőforrást és vár az 1-esre — mindkettő örökre blokkolva van.

Az iOS és más rendszerek esetében a deadlockok gyakran a szinkronizáció helytelen használata miatt fordulnak elő, például több zárolás különböző sorrendben történő megszerzésekor.

A deadlockok megelőzése érdekében alkalmazzák:

  • az erőforrások megszerzésének sorrendjét;
  • várakozási időkorlátokat;
  • az erőforrások tartásának elkerülését, miközben másokat várnak;
  • speciális szinkronizációs mechanizmusokat.