Sidfel
Den här artikeln behöver källhänvisningar för att kunna verifieras. (2023-02) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. |
Ett sidfel är ett avbrott som uppstår när ett program försöker komma åt en virtuell minnescell som inte finns i RAM. 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 minnesadress 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.