Respuestas:
Puede ejecutar un sistema operativo multiproceso incluso sin soporte de hardware (sin MMU ), con todos los punteros que representan una dirección física. Sin embargo, pierde varias características clave que generalmente se proporcionan a través de MMU:
fork
es hacer una copia¹ de la memoria física del proceso y crear un nuevo mapa de memoria virtual desde las mismas direcciones virtuales a las nuevas direcciones físicas.Hay sistemas operativos tipo Unix que funcionan en sistemas sin MMU.
vfork
se admite) y la ausencia de protección de memoria; pero hay multitarea preventiva.¹ En las unidades modernas, esto generalmente se hace de manera perezosa (copia en escritura), lo que nuevamente depende de que MMU genere una excepción cuando no puede encontrar una página física.
Ciertamente es posible con algunas restricciones, como la protección de la memoria, que sería un problema como ya se dijo. Por ejemplo, µClinux http://www.uclinux.org/ admite múltiples procesos sin implementar memoria virtual. Tenga en cuenta que algunas CPU, como al menos los dispositivos analógicos Blackfin, proporcionan una MPU (Unidad de protección de memoria) http://docs.blackfin.uclinux.org/doku.php?id=bfin:mpu . Esto permite que la memoria virtual menos sistemas operativos aún permita que la memoria se particione.
Esto depende de cómo defina el proceso frente a los hilos en términos de memoria.
Una de las funciones de la memoria virtual es la partición. Si bien es posible ejecutar múltiples procesos sin ninguna partición, esto sería más como ejecutar múltiples hilos que procesos, compartiendo el mismo espacio de direcciones.