Speicherschutz ist die Eigenschaft von Betriebssystemen, den verfügbaren Arbeitsspeicher so aufzuteilen und laufende Programme so voneinander zu trennen, dass ein Programmierfehler/Absturz eines einzelnen Programms nicht die Stabilität anderer Programme oder des Gesamtsystems beeinträchtigt. Programme werden zwangsweise daran gehindert, versehentlich oder absichtlich auf den Speicherbereich anderer Programme zuzugreifen oder das Betriebssystem anders als durch standardisierte „Eingänge“ zu benutzen. Hardwareseitig kann eine Speicherverwaltungseinheit (MMU) oder eine einfachere Speicherschutzeinheit (MPU) den Speicherschutz unterstützen. Es sind aber auch reine softwaretechnische Lösungen möglich.
Moderne Vielzweck-Betriebssysteme verfügen durchgehend über diese Eigenschaft, mit wenigen Ausnahmen, wie etwa Betriebssystemen, auf denen nur einzelne Applikationen laufen -- zum Beispiel in eingebetteten Systemen.
Durch Sicherheitslücken in der Konstruktion der diversen Betriebssysteme, insbesondere auf x86-Prozessoren, wird der Speicherschutz jedoch immer häufiger unterlaufen. So besteht ein Trick beispielsweise darin, Pufferüberläufe zu erzeugen und so den Programmfluss zu verändern. Dies ist aber nur auf Betriebssystemen möglich, die ein Flat Memory Modell benutzen. Allerdings unterstützen immer mehr Prozessoren das so genannte NX-Bit, mit dem sich bestimmte Speicherbereiche als nicht ausführbar markieren lassen um damit zu versuchen, das Ausnutzen von Pufferüberläufen zu verhindern. Dies funktioniert, solange der Pufferüberlauf in einem Datenbereich erfolgt. OS/2 ist das einzige Betriebssystem, das den linearen Speicher in einzelne Segmente teilt, statt diesen an einem Stück zu nutzen und somit einen optimalen Speicherschutz über die Hardware benutzt.
Siehe auch: Real Mode, Protected Mode