Sisällysluettelo:
- Määritelmä - Mitä segmentointivika (segmentoitu) tarkoittaa?
- Techopedia selittää segmentointivian (Segfault)
Määritelmä - Mitä segmentointivika (segmentoitu) tarkoittaa?
Segmentointivika (segfault) on virhe, jonka palauttaa muistisuojauslaitteisto, joka ilmoittaa käyttöjärjestelmälle, että muistin käyttöoikeusrikkomus on tapahtunut. Käyttöjärjestelmä reagoi yleensä kertomalla loukkaavalle prosessille virheestä signaalin kautta ja sitten käyttöjärjestelmä suorittaa jonkinlaisen korjaavan toimenpiteen. Tämä tapahtuu, koska prosessi tai ohjelma yrittää käyttää muistia, jota ei ole sille osoitettu.
Segmentointivika tunnetaan myös pääsyloukkauksena.
Techopedia selittää segmentointivian (Segfault)
Segmentointivika johtuu usein virheistä prosessin tai sovelluksen ohjelmoinnissa, jossa ohjelma johdetaan pääsymuistiin, jota ei ole allokoitu sille, mutta muille ohjelmille tai itse järjestelmälle. Prosessin ei saa koskea muistiin, jota ei ole varattu sille, koska sen on aina pyydettävä muistia ennen sen käyttöä. Siksi, kun se koskettaa vahingossa muistia, jota ei ole sille osoitettu, tapahtuu käyttöoikeusrikkomus.
Segfaults voi johtua myös rekursiivisesta toiminnosta, joka voi käyttää kaiken sille osoitetun pino-tilan ja nopeasti murtautua muistiin, jota sille ei ole osoitettu. Joissakin järjestelmissä tätä pidetään pinon ylivuodona, mutta toisissa se on yksinkertaisesti eräänlainen käyttöoikeusrikkomus.
Segmentointivika voidaan hoitaa prosessilla mukautetun signaalinkäsittelijän välityksellä, mutta usein käytetään käyttöjärjestelmän oletussignaalinkäsittelijää, mikä johtaa yleensä siihen, että loukkaava prosessi lopetetaan epänormaalisti, jota kutsutaan onnettomuudeksi, tai käyttöjärjestelmä pakottaa ytimen tyhjennyksen. .
