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:
- Kölcsönös kizárás — egy erőforrást csak egy folyamat foghat el egyszerre.
- Tartás és várakozás — egy folyamat tart egy erőforrást és vár egy másikra.
- 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.
- 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.