Respostas:
Você pode executar um sistema operacional com vários processos, mesmo sem suporte de hardware (sem MMU ), com todos os ponteiros representando um endereço físico. No entanto, você perde vários recursos principais geralmente fornecidos por meio da MMU:
fork
é fazer uma cópia da memória física do processo e criar um novo mapa de memória virtual a partir dos mesmos endereços virtuais para os novos endereços físicos.Existem sistemas operacionais do tipo unix que funcionam em sistemas sem MMU.
vfork
é suportado) e a ausência de proteção de memória; mas há multitarefa preemptiva.¹ Em unices modernos, isso geralmente é feito preguiçosamente (copy-on-write), que por sua vez depende da MMU levantar uma exceção quando não consegue encontrar uma página física.
Certamente é possível com algumas restrições, como proteção de memória, o que seria um problema, como já mencionado. Por exemplo, o µClinux http://www.uclinux.org/ suporta múltiplos processos sem implementar memória virtual. Observe que algumas CPUs, como pelo menos o Analog Devices Blackfin, fornecem uma MPU (Unidade de proteção de memória) http://docs.blackfin.uclinux.org/doku.php?id=bfin:mpu . Isso permite que a memória virtual menos sistemas operacionais ainda permita a partição da memória.
Isso depende de como você define processo versus threads em termos de memória.
Uma das funções da memória virtual é o particionamento. Embora seja possível executar vários processos sem particionamento, seria mais como executar vários threads do que processos - compartilhando o mesmo espaço de endereço.