Sideerstatning er en hukommelseshåndteringsteknik, der erstatter hukommelsessider fra RAM for at gøre plads til nye sider. Når en proces skal have adgang til en side, der ikke er i RAM, vælger operativsystemet en side, der skal udskiftes, og skriver dens indhold til disken. Den erstattede side fjernes derefter fra RAM, og den nye side indlæses i RAM.
Sideudskiftning er nødvendig, fordi fysisk hukommelse er en begrænset ressource og ikke kan indeholde alle de sider, som en proces kan have brug for at få adgang til på én gang. Derfor skal styresystemet beslutte, hvilke sider der skal opbevares i RAM, og hvilke sider der skal erstattes, når der er behov for nye sider.
Målet med sideerstatning er at minimere antallet af sidefejl, som opstår, når en proces får adgang til en side, der ikke er i RAM. Sidefejl kan bremse en proces, fordi operativsystemet skal tage sig tid til at læse siden fra disken, før den kan tilgås.
Der er en række forskellige sideerstatningsalgoritmer, hver med sine egne fordele og ulemper. Nogle af de mest almindelige sideerstatningsalgoritmer inkluderer:
* Først ind, først ud (FIFO) :Denne algoritme erstatter den ældste side i RAM, når en ny side er nødvendig.
* Senest brugt (LRU) :Denne algoritme erstatter den side, der ikke har været brugt i længst tid, når en ny side er nødvendig.
* Optimal sideerstatning :Denne algoritme erstatter altid den side, der ikke vil blive brugt i den længste periode i fremtiden.
Den optimale sideerstatningsalgoritme er ikke praktisk at implementere, fordi den kræver viden om fremtiden. LRU-algoritmen er dog en god tilnærmelse af den optimale algoritme og er meget udbredt i operativsystemer.