Sidfel

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

Ett sidfel är ett avbrott som uppstår när ett program försöker komma åt en virtuell minnescell som inte finns i fysiskt minne. Den mjukvara som hanterar avbrottet är oftast del av ett operativsystem och hårdvaran som orsakar avbrottet är oftast MMU-enheten i en processor. Operativsystemet kan försöka åtgärda sidfelet genom att hämta sidans innehåll från sekundärminnet och lagra det i tillgängligt primärminne eller avsluta programmet om det rör sig om en illegal minnessaccess.

Orsaker till sidfel

Ett sidfel kan uppstå när ett program försöker att läsa eller skriva en minnessadress och

  1. sidan inte finns i primärminnet
  2. programmet har inte läs- eller skrivrättigheter för den sidan
  3. adressen är illegal (nollpekare eller på annat sätt utanför programmets tillgängliga adresser.

Om sidan redan finns i primärminnet kallas det ett mjukt sidfel; om sidan inte finns i primärminnet är det ett hårt sidfel och tar mycket lång tid att åtgärda eftersom läsning från ett typiskt sekundärminne kan ta cirka 10 millisekunder -- under denna tid skulle en processor med 1 GHz klockfrekvens grovt räknat kunna utföra 10 miljoner maskininstruktioner.

Sidfel som orsakats av illegala minnesaccesser kan resultera i en programkrasch, ett segmenteringsfel eller core dump beroende på operativsystemsmiljön.

Personliga verktyg