Ответы:
Вы можете запустить многопроцессорную операционную систему даже без аппаратной поддержки (без MMU ) со всеми указателями, представляющими физический адрес. Однако вы теряете несколько ключевых функций, обычно предоставляемых через MMU:
forkсостоит в том, чтобы сделать копию физической памяти процесса и создать новую карту виртуальной памяти из тех же виртуальных адресов в новые физические адреса.Существуют Unix-подобные операционные системы, которые работают на системах без MMU.
vforkподдерживается только ) и отсутствие защиты памяти; но есть вытесняющая многозадачность.¹ В современных Unix'ов, обычно это делается лениво (копирование при записи), что опять - таки зависит от MMU вызывая исключение , когда он не может найти физическую страницу.
Это, конечно, возможно с некоторыми ограничениями, такими как защита памяти, которая, как уже говорилось, будет проблемой. Например, µClinux http://www.uclinux.org/ поддерживает несколько процессов без реализации виртуальной памяти. Обратите внимание, что некоторые ЦП, такие как, по крайней мере, аналоговые устройства Blackfin, предоставляют MPU (модуль защиты памяти) http://docs.blackfin.uclinux.org/doku.php?id=bfin:mpu . Это позволяет виртуальной памяти меньше операционных систем, чтобы все еще позволять разделять память.
Это зависит от того, как вы определяете процесс против потоков с точки зрения памяти.
Одной из функций виртуальной памяти является разбиение. Хотя можно запускать несколько процессов без разделения, это больше похоже на запуск нескольких потоков, чем процессов - использование одного и того же адресного пространства.