Turinys:
- Apibrėžimas - ką reiškia segmentacijos gedimas (segfault)?
- „Techopedia“ paaiškina segmentacijos klaidą („segfault“)
Apibrėžimas - ką reiškia segmentacijos gedimas (segfault)?
Segmentų gedimas (segmentinis) yra aparatūros su atminties apsauga grąžinta klaida, kuri nurodo operacinei sistemai, kad įvyko prieigos prie atminties pažeidimas. Paprastai operacinė sistema reaguoja pranešdama pažeidžiamam procesui apie klaidą per signalą ir tada OS atlieka tam tikrus taisomuosius veiksmus. Taip atsitinka todėl, kad procesas ar programa bando pasiekti nepriskirtą atmintį.
Segmentų gedimas taip pat žinomas kaip prieigos pažeidimas.
„Techopedia“ paaiškina segmentacijos klaidą („segfault“)
Segmentavimo klaidą dažnai sukelia klaidos, susijusios su proceso ar programos programavimu, kai programa yra nukreipiama į prieigos atmintį, kuri buvo skirta ne jai, o kitoms programoms ar pačiai sistemai. Procesui neleidžiama liesti jam nepriskirtos atminties, nes prieš naudodamas jį visada turite paprašyti atminties. Todėl, netyčia palietus jai nepriskirtą atmintį, įvyksta prieigos pažeidimas.
Sutrikimus taip pat gali sukelti rekursinė funkcija, kuri gali sunaudoti visą jai skirtą krūvos vietą ir greitai įsiterpti į jai nepriskirtą atmintį. Kai kuriose sistemose tai laikoma kamino perpildymu, tačiau kitoms tai yra tiesiog tam tikras prieigos pažeidimas.
Segmentavimo klaidą procesas gali pašalinti naudojant pasirinktinę signalų tvarkyklę, tačiau dažnai naudojama OS numatytoji signalų tvarkyklė, dėl kurios paprastai pažeidžiantis procesas nutraukiamas neįprastai, vadinamas gedimu, arba OS, verčiant pagrindinį duomenų kaupiklį. .
