In un computer moderno, la separazione del processo utente viene applicata con la MMU . La MMU decide per ogni pagina (un blocco di RAM, solitamente 4 o 8 kB, a seconda dell'architettura) i diritti di accesso rilevanti, ma anche dove la pagina si trova effettivamente nella RAM fisica. Sebbene la MMU sia fondamentale per il framework di sicurezza, ha anche molti altri usi che garantiscono funzionalità extra che aumentano la potenza di calcolo, piuttosto che diminuirla:
- supporto per la memoria virtuale;
- caricamento su richiesta di file mappati (in particolare eseguibili);
- biforcazione copy-on-write.
Quando hai una MMU che può fare quanto sopra, espandendola in uno strumento per la sicurezza è fondamentalmente "gratis": hai la MMU per funzionalità e prestazioni, e ottieni anche la sicurezza. In questo senso, "senza sicurezza", i computer non sarebbero più veloci.
Tuttavia ci sono casi d'angolo. Ad esempio, conosco un ricercatore che da tempo si è specializzato nel cracking discreto logaritmo . Gli algoritmi più noti per tali compiti implicano un'attività chiamata setacciamento in cui un computer utilizzerà una grande serie di bit (diversi gigabyte) e vi farà accedere in modo apparentemente casuale. La MMU utilizza le tabelle in memoria per memorizzare i metadati per ogni pagina; sebbene la MMU abbia una cache dedicata (il TLB ) per mantenere le voci della pagina più accessibili, gli accessi casuali in gigabyte di dati implicano che la maggior parte degli accessi accumulerà errori di cache: per i dati stessi, ma anche per le tabelle MMU. La linea di fondo è la seguente: avviando il suo PC su un sistema operativo personalizzato senza utilizzo della MMU, poteva eseguire il suo codice circa tre volte più velocemente che con un sistema operativo "normale". Certamente, senza MMU, neanche la separazione dei processi - che non era un problema nel suo caso, in particolare dal momento che il suo sistema operativo personalizzato non era comunque il multitasking.
Le architetture senza MMU sono comuni nei piccoli sistemi embedded. Non avere una MMU non rende questi sistemi più veloci ; li rende più economici , perché una CPU senza MMU può essere più piccola di qualche migliaio di porte (non importa molto su un PC con i suoi miliardi di porte, sebbene ).