Sidfel
Från Rilpedia
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
- sidan inte finns i primärminnet
- programmet har inte läs- eller skrivrättigheter för den sidan
- 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.