Sidfel

Från Wikipedia
Hoppa till: navigering, sök

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 minnesaccess.

Orsaker till sidfel[redigera | redigera wikitext]

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.