Risposte:
È possibile eseguire un sistema operativo multi-processo anche senza supporto hardware (senza MMU ), con tutti i puntatori che rappresentano un indirizzo fisico. Tuttavia, perdi diverse funzionalità chiave di solito fornite tramite MMU:
fork
è fare una copia¹ della memoria fisica del processo e creare una nuova mappa di memoria virtuale dagli stessi indirizzi virtuali ai nuovi indirizzi fisici.Esistono sistemi operativi unix-like che funzionano su sistemi senza MMU.
vfork
è supportato solo ) e l'assenza di protezione della memoria; ma esiste un multitasking preventivo.¹ Nei moderni unici, questo di solito viene fatto pigramente (copia su scrittura), che si basa ancora sulla MMU sollevando un'eccezione quando non riesce a trovare una pagina fisica.
È certamente possibile con alcuni vincoli come la protezione della memoria che sarebbe un problema come già affermato. Ad esempio µClinux http://www.uclinux.org/ supporta più processi senza implementare memoria virtuale. Si noti che alcune CPU come almeno Analog Devices Blackfin forniscono una MPU (Memory Protection Unit) http://docs.blackfin.uclinux.org/doku.php?id=bfin:mpu . Ciò consente ai sistemi operativi meno memoria virtuale di consentire comunque la partizione della memoria.
Ciò dipende da come si definiscono i processi rispetto ai thread in termini di memoria.
Una delle funzioni della memoria virtuale è il partizionamento. Sebbene sia possibile eseguire più processi senza partizionamento, sarebbe più come eseguire più thread che processi, condividendo lo stesso spazio di indirizzi.