Erőforrás szivárgás - Resource leak

A számítástechnikában az erőforrás-szivárgás egyfajta erőforrás- felhasználás egy számítógépes programban, ahol a program nem szabadítja fel a megszerzett erőforrásokat. Ez az állapot általában egy program hibája. A jellegzetes erőforrásszivárgások közé tartozik a memóriaszivárgás és a kezelési szivárgás , különösen a fájlkezelő szivárgása, bár a memóriát gyakran külön tekintik más erőforrásoktól.

Az operációs rendszer számára korlátozott számban elérhető erőforrások példái közé tartoznak az internetes foglalatok , a fájlkezelők , a folyamattáblázat- bejegyzések és a folyamatazonosítók (PID). Az erőforrások szivárgása gyakran kisebb problémát jelent, legfeljebb kisebb lassulást okoz, és helyreáll a folyamatok leállítása után. Más esetekben az erőforrások szivárgása komoly problémát jelenthet, ami az erőforrások éhezését és a rendszer súlyos lelassulását vagy instabilitását okozhatja , összeomolhatja a szivárgási folyamatot, más folyamatokat vagy akár a rendszert. Az erőforrások szivárgását gyakran nem veszik észre kis terhelés és rövid futási idő alatt, és ezek a problémák csak nagy rendszerterhelés vagy olyan rendszerek esetén jelentkeznek, amelyek hosszú ideig működnek.

Az erőforrások szivárgása különösen a nagyon alacsony mennyiségben rendelkezésre álló erőforrások problémáját jelenti. Egy egyedi erőforrás, például egy zár szivárgása különösen súlyos, mivel ez azonnali erőforrás-éhezést okoz (megakadályozza más folyamatok megszerzését) és holtpontot okoz . Szándékosan szivárgó erőforrások használhatók szolgáltatásmegtagadási támadásban , például villabomba , és így az erőforrásszivárgások biztonsági hibát jelentenek .

Okoz

Az erőforrások szivárgása általában programozási hibák miatt következik be: a megszerzett erőforrásokat fel kell szabadítani, de mivel a kiadás gyakran jelentősen megtörténik a megszerzés után, és időközben sok minden előfordulhat (pl. Kivetés vagy rendellenes programleállás), könnyű hogy a kiadás elmaradjon.

Nagyon gyakori példa a megnyitott fájlok bezárásának elmulasztása, ami kiszivárogtatja a fájlkezelőt; ez a csöveknél is előfordul . Egy másik gyakori példa: a szülői folyamat nem hívja fel a várakozást egy gyermekprocesszra , ami a befejezett gyermekfolyamat zombi folyamatként hagyja , kiszivárogtatva egy folyamattábla bejegyzést.

Megelőzés és enyhítés

Az erőforrás-szivárgást az erőforrás-menedzsment megakadályozhatja vagy kijavíthatja : a programozási technikák vagy a nyelvi konstrukciók megakadályozhatják a szivárgást az erőforrások azonnali felszabadításával, míg egy külön folyamat visszaszerezheti a kiszivárgott erőforrásokat. Számos erőforrás-szivárgást az erőforrás-visszanyerés javít az operációs rendszer, miután a folyamat befejeződött és exit rendszerhívást kezdeményezett .

Az erőforrásszivárgás tehát elsősorban a hosszú élettartamú folyamatok problémája, mivel a még mindig folyamatban lévő folyamatokban lévő kiszivárgott erőforrásokat gyakran nem igénylik vissza; és olyan folyamatokhoz, amelyek gyorsan megszerzik és sok forrást szivárognak ki.

Lásd még

Hivatkozások