Kazalo:
- Opredelitev - Kaj pomeni napaka segmentacije (Segfault)?
- Tehopedia razlaga napako segmentacije (Segfault)
Opredelitev - Kaj pomeni napaka segmentacije (Segfault)?
Napaka segmentacije (segfault) je napaka, ki jo vrne strojna oprema z zaščito pomnilnika, ki operacijskemu sistemu sporoči, da je prišlo do kršitve dostopa do pomnilnika. Operacijski sistem ponavadi reagira tako, da napačnemu postopku sporoči napako s signalom in nato OS izvede neke popravne ukrepe. To se zgodi, ker postopek ali program poskuša dostopati do pomnilnika, ki mu ni dodeljen.
Napaka segmentacije je znana tudi kot kršitev dostopa.
Tehopedia razlaga napako segmentacije (Segfault)
Napaka segmentacije je pogosto posledica napak pri programiranju procesa ali aplikacije, pri kateri se program vodi do dostopa do pomnilnika, ki mu ni bil dodeljen, temveč drugim programom ali samemu sistemu. Proces se ne sme dotikati pomnilnika, ki zanj ni rezerviran, saj mora pred uporabo vedno zahtevati pomnilnik. Zato se ob nenamernem dotiku pomnilnika, ki mu ni dodeljen, zgodi kršitev dostopa.
Segfaults lahko povzroči tudi rekurzivna funkcija, ki lahko porabi ves dodeljen prostor zlaganja in hitro posega v pomnilnik, ki mu ni dodeljen. V nekaterih sistemih se to šteje za preliv skladov, pri drugih pa gre za neke vrste kršitev dostopa.
Napako segmentacije lahko obravnava postopek prek prilagojenega upravljavca signalov, vendar je pogosto uporabljen privzeti upravljavec signala OS, ki običajno povzroči, da se prekrškovni postopek konča nenormalno, se imenuje zrušitev ali OS prisili jedrino jedra .
