Answers:
即使没有硬件支持(没有MMU),您也可以运行多进程操作系统,并且所有指针都代表一个物理地址。但是,您确实会丢失通常通过MMU提供的几个关键功能:
fork
是复制进程的物理内存¹,并创建一个从相同虚拟地址到新物理地址的新虚拟内存映射。有些类unix的操作系统可以在没有MMU的系统上运行。
vfork
受支持),以及缺少内存保护。但是有抢先的多任务处理功能。¹ 在现代的大学中,这通常是懒惰地完成(写时复制),这再次依赖于MMU在找不到物理页面时引发异常。
如前所述,当然可能存在一些限制,例如内存保护。例如,µClinux http://www.uclinux.org/支持多个进程而无需实现虚拟内存。请注意,某些CPU(至少包括Analog Devices Blackfin)确实提供了MPU(内存保护单元)http://docs.blackfin.uclinux.org/doku.php?id=bfin:mpu。这允许虚拟内存较少的操作系统仍允许对内存进行分区。
这取决于您如何在内存方面定义进程与线程。
虚拟内存的功能之一是分区。尽管可以在不进行任何分区的情况下运行多个进程,但这更像是运行多个线程而不是运行多个进程-共享相同的地址空间。